From 3be83f350319b7fe5d2a200300e9a08aaecfc06a Mon Sep 17 00:00:00 2001 From: wilson Date: Sun, 15 Mar 2026 17:31:39 +0000 Subject: [PATCH] Blog: Add tags to several previous posts --- ...026-02-20-immich-object-storage-upgrade.md | 234 +++++++++--------- ...-27--started-reading-the-other-pandemic.md | 49 ++-- ...book-review-the-evening-and-the-morning.md | 37 +-- ...6-03-13--book-review-the-other-pandemic.md | 1 + 4 files changed, 166 insertions(+), 155 deletions(-) diff --git a/src/content/blog/2026-02-20-immich-object-storage-upgrade.md b/src/content/blog/2026-02-20-immich-object-storage-upgrade.md index 042e85a..cf2f2e1 100644 --- a/src/content/blog/2026-02-20-immich-object-storage-upgrade.md +++ b/src/content/blog/2026-02-20-immich-object-storage-upgrade.md @@ -5,120 +5,124 @@ title: >- date: 2026-02-20T17:26:06.111Z slug: 2026-02-20-immich-object-storage-upgrade author: Thomas Wilson-Cook +tag: + - technical + - self-hosting + - immich --- -In my 2026 effort to write more about my personal computing setup, I want to document the switchover from Volume Mount SSD to Object Storage for my personal photo storage. - -I have been using [Immich](https://immich.app) as a self-hosted Apple/Google photos alternative for several months now. I grew concerned that images I took with a device I owned could (quite easily) be taken away from me. - -I have long used Immich for photo sharing with my (Android-using) spouse, largely for building a shared album of our cat but also for its great collaborative tools for friends/family ("everyone add all your photos/videos from the holiday here"). - -I run a lot of my personal software on a Virtual Private Server (a VPS), a small linux "computer" in a data centre somewhere, and [Coolify](https://coolify.io) as my platform. I'm running a couple of web services and databases from it, and it's working great. I'm paying ~£15/mo for my server, and the relevant space. - -Over time I've watched my storage use increase. Especially as a hobbyist and [freelance](https://www.wilsoncookphotography.com) photographer, a couple of gigabytes can fill up pretty fast. - -I was previously using an SSD volume mounted to my VPS (because it was the easiest option to expand the storage with my host). However, as I put more media onto the server, I wanted a way to increase capacity without the (steep) linear price increase. - -Over a morning I was able to migrate from a mounted SSD volume on my VPS to an S3 compatible object storage. The result is cheaper storage (per gb/month), and a pragmatically higher limit. - -## 1: Create your Object Storage - -Simpleton that I am, I did this through click-ops. I went to my cloud provider and created a new bucket on their S3-compatible storage. - -I created the access credentials so that my VPS could access it. - -If you want to access your Object Storage from elsewhere (like your personal workstation, or through another service) - create another set of credentials for them. - -## 2: Connect through rclone - -For simplicity, we want our VPS to treat the storage bucket as if it's just another directory on the file system. Luckily, there's an open source tool for that: [rclone](https://github.com/rclone/rclone), a CLI for connecting to cloud-storage providers (including S3 compatible storage). - -After installing it (my VPS runs the Ubuntu distro, so `sudo apt install rclone`). You can set it up with the command line: - -```sh -$ rclone config -``` - -Which will take you through a nice interactive installer. Or you can just update the config: - -```txt -# ~/.config/rclone/rclone.conf -[s3] -type = s3 -provider = Other -access_key_id = $ACCESS_KEY -secret_access_key = $SECRET_KEY -endpoint = $REGION_NAME.some-provider.com -acl = private -``` - -Replace all those `$VARIABLE_NAMES` with your own values. - -**Important**: note how your bucket name isn't there? You'll need to provide your bucket name specifically when running rclone from the terminal. In the examples below, I'll be using `my-bucket-name`. This is the (globally unique) name you gave your S3-compatible bucket when you created it in step 1. - -As a proof of life, I created a "directory" (S3 doesn't have "real" directories so to speak) in my bucket at `/immich` (more click-ops in my cloud provider's web UI), and then: - -```sh -$ rclone lsd s3:my-bucket-name -``` - -...and expected to see the directory (of size 0) listed out. - - -## 3: Clone your data - -Because I have an in-flight Immich instance, I need to make an exact copy of my immich data within my Object Store bucket: - -```sh -$ rclone sync $CURRENT_IMMICH_LOCATION s3:my-bucket-name/immich -p -``` - -- `-p` is the Progress flag, shows what's uploading and how far through you are. I had several GB of data, so it was useful for knowing it hadn't got stuck. - -## 4: Mount your volume - -I wanted to create a clean mount to the `/immich` directory in the root of my bucket. I'm trying to put these commands in my `/usr/local/bin` directory, instead of just hitting `UP` enough times in my terminal until I find the right thing. - -Here's a script for mounting: - -```sh -# /usr/local/bin/mount-s3-immich -rclone mount hetzner:my-bucket-name/immich /mnt/s3-immich \ - --allow-other \ - --vfs-cache-mode writes \ - --daemon -``` - -* `--allow-other`: Allows other users on the VPS to access the mount (like our containerised Immich service). -* `--vfs-cache-mode` Immich's write patterns may not be atomic, and this creates a buffer for those writes before they're uploaded. -* `--daemon` runs the process as a daemon (in the background). If you're a tmux wiz, you can use that but I'm not. - -You'll need to make sure that `user_allow_other` is enabled in your `/etc/fuse.conf`. Because this will be a Fuse mount, the `--allow-other` flag for rclone needs to be cleared by the filesystem itself. - -And then for unmounting: - -```sh -# /usr/local/bin/unmount-s3-immich -fusermount -u /mnt/s3-immich -``` - -## 5: Update your Immich docker-compose - -Over to your Coolify dashboard now (I'm assuming you have an Immich service running there). - -You need to update the Volume on your Docker Compose to use your new mount as the source of data. That means mapping that new mounted volume to `/usr/src/app/upload`: - -```yaml -# Immich Service Dockerfile (e.g. in Coolify) -services: - immich: - image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}' - volumes: - - '/mnt/s3-immich:/usr/src/app/upload' - #...rest of docker-compose.yaml - -``` - -## 6: 🎉 - -Y'all good! You're now storing photos at a _very_ cheap £/GB _and_ you have a little more ownership. \ No newline at end of file +In my 2026 effort to write more about my personal computing setup, I want to document the switchover from Volume Mount SSD to Object Storage for my personal photo storage. + +I have been using [Immich](https://immich.app) as a self-hosted Apple/Google photos alternative for several months now. I grew concerned that images I took with a device I owned could (quite easily) be taken away from me. + +I have long used Immich for photo sharing with my (Android-using) spouse, largely for building a shared album of our cat but also for its great collaborative tools for friends/family ("everyone add all your photos/videos from the holiday here"). + +I run a lot of my personal software on a Virtual Private Server (a VPS), a small linux "computer" in a data centre somewhere, and [Coolify](https://coolify.io) as my platform. I'm running a couple of web services and databases from it, and it's working great. I'm paying ~£15/mo for my server, and the relevant space. + +Over time I've watched my storage use increase. Especially as a hobbyist and [freelance](https://www.wilsoncookphotography.com) photographer, a couple of gigabytes can fill up pretty fast. + +I was previously using an SSD volume mounted to my VPS (because it was the easiest option to expand the storage with my host). However, as I put more media onto the server, I wanted a way to increase capacity without the (steep) linear price increase. + +Over a morning I was able to migrate from a mounted SSD volume on my VPS to an S3 compatible object storage. The result is cheaper storage (per gb/month), and a pragmatically higher limit. + +## 1: Create your Object Storage + +Simpleton that I am, I did this through click-ops. I went to my cloud provider and created a new bucket on their S3-compatible storage. + +I created the access credentials so that my VPS could access it. + +If you want to access your Object Storage from elsewhere (like your personal workstation, or through another service) - create another set of credentials for them. + +## 2: Connect through rclone + +For simplicity, we want our VPS to treat the storage bucket as if it's just another directory on the file system. Luckily, there's an open source tool for that: [rclone](https://github.com/rclone/rclone), a CLI for connecting to cloud-storage providers (including S3 compatible storage). + +After installing it (my VPS runs the Ubuntu distro, so `sudo apt install rclone`). You can set it up with the command line: + +```sh +$ rclone config +``` + +Which will take you through a nice interactive installer. Or you can just update the config: + +```txt +# ~/.config/rclone/rclone.conf +[s3] +type = s3 +provider = Other +access_key_id = $ACCESS_KEY +secret_access_key = $SECRET_KEY +endpoint = $REGION_NAME.some-provider.com +acl = private +``` + +Replace all those `$VARIABLE_NAMES` with your own values. + +**Important**: note how your bucket name isn't there? You'll need to provide your bucket name specifically when running rclone from the terminal. In the examples below, I'll be using `my-bucket-name`. This is the (globally unique) name you gave your S3-compatible bucket when you created it in step 1. + +As a proof of life, I created a "directory" (S3 doesn't have "real" directories so to speak) in my bucket at `/immich` (more click-ops in my cloud provider's web UI), and then: + +```sh +$ rclone lsd s3:my-bucket-name +``` + +...and expected to see the directory (of size 0) listed out. + + +## 3: Clone your data + +Because I have an in-flight Immich instance, I need to make an exact copy of my immich data within my Object Store bucket: + +```sh +$ rclone sync $CURRENT_IMMICH_LOCATION s3:my-bucket-name/immich -p +``` + +- `-p` is the Progress flag, shows what's uploading and how far through you are. I had several GB of data, so it was useful for knowing it hadn't got stuck. + +## 4: Mount your volume + +I wanted to create a clean mount to the `/immich` directory in the root of my bucket. I'm trying to put these commands in my `/usr/local/bin` directory, instead of just hitting `UP` enough times in my terminal until I find the right thing. + +Here's a script for mounting: + +```sh +# /usr/local/bin/mount-s3-immich +rclone mount hetzner:my-bucket-name/immich /mnt/s3-immich \ + --allow-other \ + --vfs-cache-mode writes \ + --daemon +``` + +* `--allow-other`: Allows other users on the VPS to access the mount (like our containerised Immich service). +* `--vfs-cache-mode` Immich's write patterns may not be atomic, and this creates a buffer for those writes before they're uploaded. +* `--daemon` runs the process as a daemon (in the background). If you're a tmux wiz, you can use that but I'm not. + +You'll need to make sure that `user_allow_other` is enabled in your `/etc/fuse.conf`. Because this will be a Fuse mount, the `--allow-other` flag for rclone needs to be cleared by the filesystem itself. + +And then for unmounting: + +```sh +# /usr/local/bin/unmount-s3-immich +fusermount -u /mnt/s3-immich +``` + +## 5: Update your Immich docker-compose + +Over to your Coolify dashboard now (I'm assuming you have an Immich service running there). + +You need to update the Volume on your Docker Compose to use your new mount as the source of data. That means mapping that new mounted volume to `/usr/src/app/upload`: + +```yaml +# Immich Service Dockerfile (e.g. in Coolify) +services: + immich: + image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}' + volumes: + - '/mnt/s3-immich:/usr/src/app/upload' + #...rest of docker-compose.yaml + +``` + +## 6: 🎉 + +Y'all good! You're now storing photos at a _very_ cheap £/GB _and_ you have a little more ownership. diff --git a/src/content/blog/2026-02-27--started-reading-the-other-pandemic.md b/src/content/blog/2026-02-27--started-reading-the-other-pandemic.md index 2885a90..0aaedc9 100644 --- a/src/content/blog/2026-02-27--started-reading-the-other-pandemic.md +++ b/src/content/blog/2026-02-27--started-reading-the-other-pandemic.md @@ -3,28 +3,31 @@ title: 📖 Started reading "The Other Pandemic" date: 2026-02-27T07:36:44.006Z slug: 2026-02-27--started-reading-the-other-pandemic author: Thomas Wilson-Cook +tags: + - book-review + - reading --- -I picked up James Ball's *The Other Pandemic: How QAnon Contaminated the World* ([bookshop.org](https://uk.bookshop.org/p/books/the-other-pandemic-how-qanon-contaminated-the-world-james-ball/7618064?ean=9781526642516&next=t)) from the library. Ball appeared on an episode of the podcast *Oh God What Now?* ([Apple Podcasts](https://podcasts.apple.com/gb/podcast/withstanding-the-farage-barrage-can-we-reform-proof-the-uk/id1245265763?i=1000750517915)) and the book sounded interesting. I've just crossed the one hundred page mark. - -Ball makes the useful (if tired) comparison between the spread of conspiratorial beliefs, like QAnon, and a virus[^1]. You could make the same comparison about other bits of being a human: music, language, or stories are all transmitted and evolve like viruses. Beautiful, sure, but sentimental. What do I *do* with this? - -Fortunately, Ball can think at least one step ahead of some writers and journalists I've read. They tell us *how* it's like a virus, and it's actually pretty interesting. - -Ball reminds us of survivorship bias ([wikipedia](https://en.wikipedia.org/wiki/Survivorship_bias)) and natural reservoir ([wikipedia](https://en.wikipedia.org/wiki/Natural_reservoir)) of conspiratorial beliefs. In nature, a natural reservoir might be a population of animals (cows, bats, mice) where a pathogen can live and be transmitted before being passed on to another population. - -In the context of conspiratorial beliefs, there are countless forums, group chats, and social media accounts constantly trying new ideas and framings. Naturally, the ideas that break containment from one place to another will be the most attention grabbing: the most outrageous, or maybe even the most plausible (to a certain population, if not the general public). - -Although countless people (earnest believers, state actors, and now generative artificial intelligence) are posting a new conspiracy every second of every day - the vast, vast majority of them are lost to time. Shame. - -It's no accident that QAnon started on 4chan, says Ball. A site with a set number of posts visible at any one time. To hang around, a post would have to have more engagement than its peers. The users of 4chan were already a self-selecting group of a quite libertarian-leaning, pseudonymous internet image board, initially with an anonymous founder. It's an environment that could allow a lot of different ideas to appear and then spread. - -The book suffers a little from the same condition as Naomi Klein's *Doppleganger*: the author details an overwhelming, negative phenomenon (bad for both individuals, communities, and societies) and then just stands back with you and is like "wow, seems bad". - -But also, it's not a book about de-radicalisation or de-programming. It's a book about the spread of QAnon beliefs. - -Who knows, maybe Ball will wrap it up nicely in the next 120 pages. So far, I'm enjoying it. - ---- - -[^1]: The comparison seems well considered in this case, but it reminds me a little of how the human mind is always compared to the most modern technology of the day. There was a time when the human brain was complex like a water mill, or like a wax tablet. ([the *Guardian*](https://www.theguardian.com/science/2014/jul/26/photography-supercomputers-see-ourselves-in-our-inventions-brain-neuroscience)) \ No newline at end of file +I picked up James Ball's *The Other Pandemic: How QAnon Contaminated the World* ([bookshop.org](https://uk.bookshop.org/p/books/the-other-pandemic-how-qanon-contaminated-the-world-james-ball/7618064?ean=9781526642516&next=t)) from the library. Ball appeared on an episode of the podcast *Oh God What Now?* ([Apple Podcasts](https://podcasts.apple.com/gb/podcast/withstanding-the-farage-barrage-can-we-reform-proof-the-uk/id1245265763?i=1000750517915)) and the book sounded interesting. I've just crossed the one hundred page mark. + +Ball makes the useful (if tired) comparison between the spread of conspiratorial beliefs, like QAnon, and a virus[^1]. You could make the same comparison about other bits of being a human: music, language, or stories are all transmitted and evolve like viruses. Beautiful, sure, but sentimental. What do I *do* with this? + +Fortunately, Ball can think at least one step ahead of some writers and journalists I've read. They tell us *how* it's like a virus, and it's actually pretty interesting. + +Ball reminds us of survivorship bias ([wikipedia](https://en.wikipedia.org/wiki/Survivorship_bias)) and natural reservoir ([wikipedia](https://en.wikipedia.org/wiki/Natural_reservoir)) of conspiratorial beliefs. In nature, a natural reservoir might be a population of animals (cows, bats, mice) where a pathogen can live and be transmitted before being passed on to another population. + +In the context of conspiratorial beliefs, there are countless forums, group chats, and social media accounts constantly trying new ideas and framings. Naturally, the ideas that break containment from one place to another will be the most attention grabbing: the most outrageous, or maybe even the most plausible (to a certain population, if not the general public). + +Although countless people (earnest believers, state actors, and now generative artificial intelligence) are posting a new conspiracy every second of every day - the vast, vast majority of them are lost to time. Shame. + +It's no accident that QAnon started on 4chan, says Ball. A site with a set number of posts visible at any one time. To hang around, a post would have to have more engagement than its peers. The users of 4chan were already a self-selecting group of a quite libertarian-leaning, pseudonymous internet image board, initially with an anonymous founder. It's an environment that could allow a lot of different ideas to appear and then spread. + +The book suffers a little from the same condition as Naomi Klein's *Doppleganger*: the author details an overwhelming, negative phenomenon (bad for both individuals, communities, and societies) and then just stands back with you and is like "wow, seems bad". + +But also, it's not a book about de-radicalisation or de-programming. It's a book about the spread of QAnon beliefs. + +Who knows, maybe Ball will wrap it up nicely in the next 120 pages. So far, I'm enjoying it. + +--- + +[^1]: The comparison seems well considered in this case, but it reminds me a little of how the human mind is always compared to the most modern technology of the day. There was a time when the human brain was complex like a water mill, or like a wax tablet. ([the *Guardian*](https://www.theguardian.com/science/2014/jul/26/photography-supercomputers-see-ourselves-in-our-inventions-brain-neuroscience)) diff --git a/src/content/blog/2026-02-28-book-review-the-evening-and-the-morning.md b/src/content/blog/2026-02-28-book-review-the-evening-and-the-morning.md index cfa041d..3765d76 100644 --- a/src/content/blog/2026-02-28-book-review-the-evening-and-the-morning.md +++ b/src/content/blog/2026-02-28-book-review-the-evening-and-the-morning.md @@ -3,22 +3,25 @@ title: '📖 Book Review: The Evening and the Morning' date: 2026-02-28T09:35:28.579Z slug: 2026-02-28-book-review-the-evening-and-the-morning author: Thomas Wilson-Cook +tags: + - book-review + - reading --- -This audiobook kept me company in the garden as I got through a handful of long-running chores. At twenty-four hours in length I'm happy to say that the garden is at best half-finished! - -About a decade ago, I picked up Follett's first three *Kingbridge* books[^1] for a similar reason: I was spending more time outdoors on my bike, and I used to love having audiobooks to keep me company. - -What I have come to love most about Follett's writing is his focus on character narrative. Especially as they run over many hundreds of pages. At time I think he is prone to archetypes or simplification, but I'll leave it to the reader to consider how well any work of art has captured the internal experience of many people. - -Although I take the historical accuracy with a pinch of salt, especially when it comes to the spiritual or religious lives of people at the time, Follett's writing about a time where we have infamously indecisive historical evidence. I don't think this book would be much improved by higher maternal and juvenile mortality, or the comparatively much higher risk of food- and water-borne illness. I think the good of humanising people that feel so distant to us does far more good than could be done by painting flawless historical accuracy. - -The book is pulled along by a cast of characters, neatly split into those that you like and those that you shouldn't. He crafts villains and villainy well enough that I feel my blood boil when they get away with things, and sing when their past misdeeds finally catch up with them. And although I praise him for making the characters feel understandable, I don't think he does much to help you sympathise with the villains. To that extent, the writing can feel a little cartoonish, or more like a caricature than a studied portrait. - -The moral narrative of the books seems to be that honest hard work and natural skill will eventually improve things, and that it's possible to improve a community as well as an individual. That being kind and empathetic to people will give you a better social credit than being threatening. I think that's a good lesson we should be teaching people, but I also think it has its limits. But so does everything. - -I have no doubt that, in several years, I will dig this audiobook back out so it can accompany as I lay fences, level some earth, or re-decorate some part of my house. - ---- - -[^1]: I initially thought of these as a trilogy. But reviewing their release dates as 1989, 2007, and 2017, I'm sure Follett's experience is a little more nuanced than "a trilogy". +This audiobook kept me company in the garden as I got through a handful of long-running chores. At twenty-four hours in length I'm happy to say that the garden is at best half-finished! + +About a decade ago, I picked up Follett's first three *Kingbridge* books[^1] for a similar reason: I was spending more time outdoors on my bike, and I used to love having audiobooks to keep me company. + +What I have come to love most about Follett's writing is his focus on character narrative. Especially as they run over many hundreds of pages. At time I think he is prone to archetypes or simplification, but I'll leave it to the reader to consider how well any work of art has captured the internal experience of many people. + +Although I take the historical accuracy with a pinch of salt, especially when it comes to the spiritual or religious lives of people at the time, Follett's writing about a time where we have infamously indecisive historical evidence. I don't think this book would be much improved by higher maternal and juvenile mortality, or the comparatively much higher risk of food- and water-borne illness. I think the good of humanising people that feel so distant to us does far more good than could be done by painting flawless historical accuracy. + +The book is pulled along by a cast of characters, neatly split into those that you like and those that you shouldn't. He crafts villains and villainy well enough that I feel my blood boil when they get away with things, and sing when their past misdeeds finally catch up with them. And although I praise him for making the characters feel understandable, I don't think he does much to help you sympathise with the villains. To that extent, the writing can feel a little cartoonish, or more like a caricature than a studied portrait. + +The moral narrative of the books seems to be that honest hard work and natural skill will eventually improve things, and that it's possible to improve a community as well as an individual. That being kind and empathetic to people will give you a better social credit than being threatening. I think that's a good lesson we should be teaching people, but I also think it has its limits. But so does everything. + +I have no doubt that, in several years, I will dig this audiobook back out so it can accompany as I lay fences, level some earth, or re-decorate some part of my house. + +--- + +[^1]: I initially thought of these as a trilogy. But reviewing their release dates as 1989, 2007, and 2017, I'm sure Follett's experience is a little more nuanced than "a trilogy". diff --git a/src/content/blog/2026-03-13--book-review-the-other-pandemic.md b/src/content/blog/2026-03-13--book-review-the-other-pandemic.md index 8d29186..74fc263 100644 --- a/src/content/blog/2026-03-13--book-review-the-other-pandemic.md +++ b/src/content/blog/2026-03-13--book-review-the-other-pandemic.md @@ -5,6 +5,7 @@ slug: 2026-03-13--book-review-the-other-pandemic author: Thomas Wilson-Cook tags: - book-review + - reading ---