Will's avatar

Posts and notes

Selfhost

(46 items)

Farewell, Nextcloud 15 May 2025

Nextcloud was probably my first foray into proper self-hosting. I ran it on Linode for a few years before moving it to run at home over Tailscale. It was my self-hosting gateway to all there was to come – from RSS aggregation through to HomeAssistant, recipe management, and business and … Read more (5 minute read)

Umami Updated 13 May 2025

I use Umami for analytics on this website and a few other services that I run. I self-host Umami using Docker. To start, create a docker-compose.yml: services: umami: image: docker.umami.is/umami-software/umami:postgresql-latest environment: DATABASE_URL: …

Traefik Updated 7 January 2025

Most of my personal services I run within my Tailscale network, and so I do not tend to bother with HTTPS (since provisioning TLS certificates for multiple services running on a single host via Tailscale is a pain). However, for external services that need to be accessed publicly, I use Traefik as a …

Email client (aerc) Updated 20 October 2024

This note documents my current setup for email. It includes: aerc as an email client vdirsyncer for syncing contacts khard for reading and searching locally-synced contacts mbsync for syncing email to a local Maildir notmuch for organising and searching locally-synced email Pre-start: Handling local …

Obsidian Updated 24 September 2024

Obsidian is a note/knowledge management tool I’ve used a fair amount in the past (before moving to nb). Below I log some considerations I dealt with whilst using Obsidian. Self-deleting files When I used Obsidian, I synced it to my devices using iCloud (though I don’t know if this is …

Uses Updated 23 September 2024

A collection of “things”, software and systems I use on a frequent or daily basis. I enjoy using open source, self-hosted, and independent software where possible. I like the reliability and quality of Apple hardware, and often the combination of the two works best for me. Hardware …

My Knowledge Base With "nb" 22 September 2024

Whilst browsing my GitHub home feed a little while back (not something I’m in a habit of doing, generally), I stumbled upon the command line journaling tool jrnl. I thought it looked interesting, and so subsequently posted about it and had a good discussion on this and alternatives over on … Read more (5 minute read)

nb Updated 22 September 2024

As of September 2024 I use nb as my primary note-taking and knowledge management program. Install On a Mac, it can be installed from Homebrew: brew install nb. Set nb directory I sync my nb documents via Syncthing, and therefore need the tool to use my Syncthing directory as its “home”: …

jrnl Updated 1 September 2024

A few weeks back (as of 2024-09-01) I posted about a tool called jrnl on Mastodon. The post got a fair amount of engagement and discussion, and I’ve also given it a go over the past couple of weeks myself. jrnl is a command-line tool for keeping a journal. It can be used for quick …

Tailscale Sidecars Updated 1 September 2024

If you’ve followed my blog or other notes, you’ll be well aware of my extensive use of Tailscale for nearly everything – securing access to remote servers and for connecting to services across my local network. Tailscale DNS is great for assigning DNS names to individual hosts, but …

Borgtastic Backups 19 August 2024

Restic has been my go-to backup tool for many years, and I’ve used it for a wide range of workloads – including for managing filesystem, Postgres, Photoprism and Vaultwarden backups. At the point I was researching suitable backup options for these cases, and considering my personal … Read more (3 minute read)

Vaultwarden Updated 29 July 2024

I self-host a Vaultwarden instance to manage my usernames, passwords, two-factor codes, and other details for my accounts everywhere. Standard Bitwarden clients (including browser extensions and mobile apps) can use Vaultwarden instances as their backend server. In this note I describe my particular …

Photoprism Updated 29 July 2024

I’ve switched from managed photo providers (such as Apple or Google photos) to a self-hosted Photoprism instance. This note documents my setup. I use Linode for this, and you can get a free $100 credit using this referral link. Update 2022: More recently I’ve migrated Photoprism over to …

PostgreSQL Updated 31 October 2023

This is a reference quick-start note for deploying PostgreSQL via Docker, and with working self-signed TLS. 1. Generate keys for TLS E.g. with one year expiry: mkdir postgres-certs && cd postgres-certs openssl req -new -x509 -days 365 -nodes -text -out server.crt -keyout server.key sudo …

MongoDB Updated 31 October 2023

This is a reference quick-start note for deploying MongoDB via Docker, and with working self-signed TLS. Note: This setup does not yet consider replica sets. Coming soon… 1. Generate keys for TLS E.g. with one year expiry: openssl req -nodes -x509 -newkey rsa:4096 -keyout key.pem -out …

CI/CD with Woodpecker and Gitea 23 April 2023

Some of my personal projects are beginning to get larger and more complicated, often involving different front-ends and services that all need to be separately built and deployed. Managing all of these is taking away more of my personal time, and I’ve been on the look-out for a good CI/CD … Read more (2 minute read)

Woodpecker CI Updated 23 April 2023

I use Woodpecker CI to automate my personal CI/CD processes. This note documents my setup. Create a docker-compose.yml and bring the service up (notes on environment below): version: '3' services: woodpecker-server: image: woodpeckerci/woodpecker-server:latest ports: - 8000:8000 expose: - …

A question about encryption for self-hosting 5 March 2023

I self-host a number of services - Nextcloud, FreshRSS, PhotoPrism etc. - at home on a Raspberry Pi. Attached to this Pi is a large SSD to hold the service data and configuration, and all of this is periodically backed-up via Restic to a remote site. The SSD is simply formatted with ext4, and the … Read more (3 minute read)

Server & database backups Updated 10 December 2022

I run a number of services on my own machines and VPSs, and for each system I ensure there are appropriate backups in place. Backup target I usually use Backblaze B2 as a backup solution due to its low costs, simplicity, and ease of use. Linode’s Object Storage service is also great, but I use …

Selfhosting Updated 10 December 2022

I’m interested in being able to look after my own data, as much as possible. I try to ensure that this is at least (almost) as convenient as commercial where I can (and so there is probably much more I can do). What I currently selfhost Most of the services I selfhost run on Linode servers. I …

Joplin Updated 10 December 2022

My notes are kept using Joplin. I use Joplin server to keep all of my devices in-sync. Below is a docker-compose.yml I use to run the server. version: '3' services: db: image: postgres:13 volumes: - ./data/postgres:/var/lib/postgresql/data restart: unless-stopped environment: - …

Raspberry Pi Updated 9 December 2022

I have a small fleet of Raspberry Pis (mostly the Pi 4 Model B), which I use at home for various tasks. They are all firewalled off and are reachable via Tailscale. A small number of the services they run are also exposed to the local network. What they run As of the time of writing, services I run …

From Google and Apple Photos to Photoprism 25 November 2022

A history of media storage solutions Back in 2021 I blogged about how and why I wanted to switch from Google Photos as a storage solution (and source of truth) for my life’s photo and video library. The post compared several solutions, such as Piwigo, Mega, and Nextcloud. In that time … Read more (5 minute read)

2FAuth Updated 27 October 2022

2FAuth is a self-hostable web service for managing two-factor authentication tokens. It has a nice, clean interface, is responsive (so it can be simply added to the homescreen on iOS), and has various useful features: Adding new tokens by scanning QR codes; Searching for tokens; Lots of features …

Tailscale: multi-service HTTPS on a single machine 27 October 2022

Update 2024-09-01: I have since written a note on Tailscale Sidecars which provides a more elegant solution to this problem. I have left this post here for posterity. HTTPS on Tailscale Tailscale’s HTTPS feature is an excellent tool for adding TLS connections to web services exposed over the … Read more (4 minute read)

Note-taking apps: Bear and Joplin 2 October 2022

The Bear notes app has been my go-to notes app for Mac, iPhone, and iPad for some time now. It’s got a great UX, a customisable UI, and is one of those apps that feels like a (clichéd) “delight” to use. Some of my gripes with Bear (and CloudKit in general) Bear is written … Read more (3 minute read)

Gitea Updated 28 September 2022

Gitea is a fantastic GitHub-like service for git remotes and for viewing code and git projects via a web-browser. One can join existing instances (such as Codeberg), or self-host it. I self-host a Gitea instance. I use a docker-compose.yml file like the one below. version: "3" services: …

Encrypting volumes with LUKS Updated 28 September 2022

For sensitive data storage in the cloud, I will usually provision a separate volume, encrypt it, and then use this as the volume mapper for containerised services. Creating and attaching a volume I use Linode to host the vast majority of my services. In Linode, new volumes can be easily created and …

Nextcloud Updated 28 September 2022

I use Nextcloud as an alternative to Google Drive or iCloud. I self-host it on a VPS or Raspberry Pi and make it available only within my Tailscale network so that it is only accessible to my own authorised devices. Nextcloud is relatively straight-forward to run using a docker-compose.yml file: …

Nitter Updated 28 September 2022

When browsing Twitter, I use a self-hosted Nitter instance. Nitter allows you to browse Twitter using a more privacy-respecting front-end. To run Nitter, create a docker-compose.yml: version: "3" services: nitter: image: zedeus/nitter:latest ports: - "8085:8080" volumes: - …

Teddit Updated 28 September 2022

When browsing Reddit, I use a self-hosted Teddit instance. Teddit allows you to view Reddit using a nicer and more privacy-respecting front-end. To run Teddit, create a docker-compose.yml: version: "3" services: teddit: image: teddit/teddit:latest environment: - REDIS_HOST=teddit-redis …

FreshRSS Updated 28 September 2022

For managing and consuming RSS feeds, I use FreshRSS. To run a FreshRSS instance, create a docker-compose.yml file: version: "3" services: freshrss: image: freshrss/freshrss environment: - "CRON_MIN=3,33" # Change this if you like - TZ=Europe/London volumes: - …

Monica Updated 27 September 2022

I use a self-hosted Monica instance to keep on top of birthdays and other useful/interesting notes about friends and family. This note documents my setup. Create a docker-compose.yml file: version: "3.4" services: monica: image: monica:latest depends_on: - monicadb environment: - …

My setup for coding on iPad 12 June 2022

Since getting a Magic Keyboard for my iPad Pro, I’ve been using the iPad for many areas of work for which before I would have needed a laptop. In fact, last week I was able to use the iPad full-time when at work in our new office space, and I didn’t need to reach for my MacBook once. … Read more (6 minute read)

Self-hosting apps and services using Traefik reverse proxy 9 April 2022

I often talk about self-hosting on this blog, and I’m certainly a big fan of being able to control my own data and systems wherever possible (and feasible). I’ve recently switched from using Nginx to Traefik as a reverse proxy for my server and for terminating TLS connections. In this … Read more (7 minute read)

Interacting with a Nextcloud instance deployed with Docker 28 January 2022

If you’ve ever run your own Nextcloud before, you may have noticed screens like the following in your instance’s settings pages. The messages advise a number of maintenance procedures to help ensure the smooth running of your instance. These could be to run database migrations or to … Read more (2 minute read)

Moving my Matrix identity to Element One 15 December 2021

For as long as I’ve been using Matrix I’ve hosted my own homeserver on my own VPS and at my own domain. Why I chose to move I previously wrote about how I self-host my homeserver with the help of the Synapse project. Although this set-up is quite straight forward, it’s an extra … Read more (4 minute read)

Nextcloud for photos: using cheaper object storage 11 December 2021

Some people may remember my quest a few months back to find a good alternative to Google Photos for image storage and backup. At the time, I talked about Piwigo, Mega and pCloud as potential candidates. I also briefly touched upon Nextcloud in that post - a service I use (and self-host) anyway for … Read more (7 minute read)

Server back-ups with Restic 27 November 2021

A while ago I posted about how I back-up my personal servers to Backblaze B2. That approach involved adding all of the files and directories into a single compressed archive and sending this up to an encrypted bucket on B2. Whilst this does achieve my back-up goals (and I use Telegram to notify me … Read more (5 minute read)

Syncing RSS feeds with FreshRSS 12 July 2021

I enjoy reading my RSS feeds across my devices - whether it’s on my phone when out and about, my Mac in between bouts of work, or my iPad when in downtime. Being able to sync feeds across these devices is important to me, both so I can maintain a single collection of feeds and to ensure that I … Read more (2 minute read)

Self-host your web searches with Whoogle 24 June 2021

Google and DuckDuckGo It’s common knowledge that part of Google’s business model is to use the data it knows about you, your searches, and browsing patterns in order to more effectively serve ads. Many people feel uncomfortable with this and so there is a strong movement to adopt more … Read more (3 minute read)

How I back-up my personal server 18 May 2021

For a couple of years now I have been using a self-hosted Nextcloud as a replacement for iCloud and Google Drive. I won’t go into the details as to why (especially given the additional upkeep and other overheads required), as this has been covered before - but mainly it’s about … Read more (5 minute read)

Self-hosted notes and to-do lists 9 May 2021

In this post I will talk a little about how I handle my digital notes and to-do lists. In the spirit of my last post on data sovereignty, the focus will be on self-hosted approaches. To-do list management It feels odd that the first task many new technical frameworks guide users through, by way of a … Read more (5 minute read)

Running your own Matrix homeserver 22 March 2021

Why use decentralised communication services Centralised communication services, such as Telegram, Signal, and Whatsapp, offer convenient means to chat to friends and family using your personal devices. However these services also come with a number of pitfalls that are worth considering. For … Read more (7 minute read)

Using Monica to Help Manage your Personal Relationships 7 February 2021

Many people no longer feel comfortable using Facebook. Whether you were never a member to begin with or you’ve had an account but chosen to remove yourself from the service, or you’ve simply tried to start using it less - either way, it’s no surprise given the way that they, across … Read more (5 minute read)

Out with the Old: Moving to Gitea 30 January 2021

If you’ve visited my geminispace (gemini://wilw.capsule.town) you’ll have noticed that I’ve recently been on a mission to decentralise the every-day tools and services I use, and will understand the reasons why. This post will likely become part of a series of posts in which I talk … Read more (4 minute read)