
(38 items)
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 postg...
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 T...
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 thes... (2 minute read)
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' servi...
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 mobil...
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 p... (3 minute read)
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 lo...
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...
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 volu...
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...
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 libr... (5 minute read)
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...
HTTPS on Tailscale Tailscale’s HTTPS feature is an excellent tool for adding TLS connections to web services exposed over the tailnet. Although traffic over the tailnet is encrypted anyway due t... (4 minute read)
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) “de... (3 minute read)
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 also love the reliabil...
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 Git...
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 us...
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 auth...
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&#...
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: &#...
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: - ...
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 Tailsc...
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: version: '3' services: umami: image: ghcr....
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: &#...
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...
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-... (6 minute read)
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 usi... (7 minute read)
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 h... (2 minute read)
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 ... (4 minute read)
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 candidate... (7 minute read)
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 ... (5 minute read)
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 ... (2 minute read)
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 se... (3 minute read)
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 an... (5 minute read)
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 manage... (5 minute read)
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 device... (7 minute read)
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 simp... (5 minute read)
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 wil... (4 minute read)