Posts tagged with “Tools”
Moving my blog to self-hosted, powered by Forgejo
Self-hosting a static blog with push-to-deploy: Forgejo Actions ships the site over a Tailscale/Headscale tailnet to a Caddy reverse proxy, with no long-lived SSH keys to manage.
A multi-stage Dockerfile for Laravel and FrankenPHP
A walkthrough of a four-stage Dockerfile that ships a lean Laravel 13 image on FrankenPHP, plus the entrypoint and Compose services to actually run it.
Setting up a free Oracle VPS as a reverse proxy
Set up a zero-cost reverse proxy: an Oracle Always Free VPS running Caddy, linked to home origin servers via Tailscale, with automatic HTTPS and one-line site additions.
Auto-Deploying a static site from Forgejo to CloudFlare Pages
A step-by-step guide to deploying a static site from a self-hosted Forgejo instance to CloudFlare Pages, using a Forgejo Action that redeploys automatically on every push to main.
Re-verifying failed backups with Proxmox Backup Server
A simple script to re-verify failed backups in Proxmox Backup Server
Setting Up BIMI for Your Email
A step-by-step guide to setting up self-asserted BIMI: the DNS standard that puts your brand logo in recipients' inboxes, no certificate required.
On Serving Markdown to AI Agents
Cloudflare and Spatie have both shipped tools to serve Markdown to AI agents. I tried it - and discovered ChatGPT silently rejects text/markdown responses entirely.
Adding Plausible to Uptime Kuma Status Page
Struggling to connect Plausible to Uptime Kuma’s status page? The required Analytics ID and Script URL aren’t obvious - here’s what they actually are.
Adding Plausible to Mastodon Using nginx `sub_filter`
Injecting Plausible Analytics into Mastodon using nginx sub_filter, CSP header overrides, and inline script hashes - plus why doing this is probably a bad idea.
Using Pi-hole as a DNS Server for my Tailnet
Use Pi-hole as a DNS server across your entire Tailnet with Tailscale, without forcing all traffic through an exit node. Ad blocking and internal DNS everywhere.
Configuring a Custom Block Page for Pi-hole
Set up a custom Pi-hole block page so users know when a domain is being filtered. It’s easy to enable and provides helpful context for anyone on your network.
Installing and configuring Plausible Analytics Community Edition on Ubuntu
Running through how to install Plausible Analytics Community Edition with its requirements on a bare Ubuntu server.
Smart Routing with Nginx: Serving Different Sites Based on IP and Cookies
This post shows how you can use nginx to set a different website root based on a combination of the visitor's IP address and cookies. You can use this to allow staff and contractors to test a new site, whilst regular visitors still see the old site.
Backing up Nextcloud to Backblaze
Backing up my Nextcloud data from Hetzner's Storage Share to Backblaze B2 using WebDAV and rclone.
Moving to Nextcloud
How I moved from Google Drive to Nextcloud, in order to remove my dependency on Google.
Using CloudFlare with a Raspberry Pi for Dynamic DNS
You can use the CloudFlare API and a simple bash script on your Raspberry Pi, to use CloudFlare as a Dynamic DNS service.
Using a CloudFlare Tunnel to share a local development site over the internet
Sharing a local development site over the internet is quite simple using a CloudFlare Tunnel. The Tunnel can even use your own domain, which looks much nicer and more professional, and makes it suitable even for production use.
`mastodon_get_replies` is now FediFetcher
mastodon_get_replies has always been a pain to both say and type, and also now only covers about 50% of the functionality of the script, so please meet FediFetcher!
Testing your email setup
This post explains a few options on testing your email setup, as well as for continuous monitoring, to ensure SPF, DKIM and DMARC are all configured correctly.