All blogs / DevOps / SRE / infrastructure
Stan's blog
A blog about building things with code and computers
DevOps / SRE / infrastructureLinux / UnixWeb developmentAI / MLRust
- Posts
- 94 from 1 Jan 2018 to 3 Feb 2026
- Posting
- now and then (5 in the last year)
- Kind
- personal blog
- Feed
- https://stanislas.blog/feed.xml
2026 2
2025 14
- Building a macOS app to know when my Mac is thermal throttling
- Migrating my web analytics from Matomo to Umami
- How Claude Code is helping me as an open source maintainer
- Doing my cloud exit (kind of)
- Moving my personal infrastructure to Kubernetes (single-node k3s)
- Doing in-place, single-node Postgres upgrades with almost no downtime
- My writing workflow with LLMs
- Visualizing the correlation between my training intensity and health metrics with Apple Health and Python
- Say Thanks: showing gratitude to open-source maintainers
- Logging 404s on a Cloudflare Pages website with a Cloudflare Worker
- Redirecting dead links to my Hugo images with a Cloudflare Worker
- Power monitoring with Home Assistant, MQTT, Rust and a Raspberry Pi
- Building my own MQTT client in Rust
- Setting up Plex hardware transcoding with an Intel N100 GPU on Proxmox
2021 3
2020 17
- Deploying a Ghost theme with GitHub actions
- Adding syntax highlighting to Ghost with highlight.js
- Adding native image lazy-loading to Ghost with a Cloudflare Worker
- I'm sticking to Spotify for now
- NextDNS is my new favourite DNS service
- Adobe Creative Cloud on macOS is calling home an absurd amount of times...
- 3 months of street photography in Seoul, South Korea
- Deploying an Angular app on Heroku
- Using a Hetzner Storage Box as a restic backend for backups
- Monitoring with Prometheus
- Migrating comments from Isso to Disqus
- Do not buy the LG 27UL850 monitor for its USB-C hub feature
- How to migrate Ghost (and Isso) to dated permalinks
- Different nameservers for specific domains on macOS
- How I fixed my VirtualBox VMs randomly crashing on macOS
- Apple Magic Trackpad 2: not quite the Macbook experience, except for your wallet
- 2 years of blogging in English
2019 19
- DoH on macOS with dnscrypt-proxy
- Object storage: migrating from Wasabi to Scaleway with rclone
- Using Touch ID for sudo authentication on a MacBook
- I'm studying in Seoul, South Korea
- Migrating Ghost from SQLite to MySQL
- Benchmarking DNS resolvers on Android
- Easy web deployments with Ansistrano
- How I fixed ZFS data corruption errors on Hetzner Cloud
- Fixing IPv6 on Hetzner Cloud: the story of a lifetime
- Caching Ghost with Nginx
- Debug PHP in Docker using Xdebug with VS Code or PhpStorm
- Ansible 2.8 + snapcraft: my first big FOSS contribution!
- How to compare a bcrypt hash between PHP and Node.js
- Quick and easy Ansible linting CI pipeline
- How I did (not) recover from a data loss (featuring ZFS, LXD and PostgreSQL)
- Elasticsearch 6 shard/replica settings for single-node cluster
- Node.js: Easily check code coverage with istanbul.js/nyc
- The first year of this blog
- How to set up a VPN server using WireGuard (with NAT and IPv6)
2018 39
- How to measure a Raspberry Pi's temperature and CPU frequency with Telegraf
- OnePlus 6T review (from a OnePlus 3 user)
- How to use encrypted block storage volumes on Hetzner Cloud
- How to manually install FreeBSD on a remote server (with UFS, ZFS, encryption...)
- How to set a static IPv4 address on a Raspberry Pi using dhcpd
- How to configure IPv6 on FreeBSD on an Online.net Dedibox
- How to enable TLS 1.3 on Nginx
- How to improve Caddy's HTTPS configuration
- How to use a non-AWS S3 backend with Terraform
- How to mount a local GlusterFS volume at boot (fstab/systemd fix)
- Using GitLab CI with GitHub
- Automatically build and push Docker images using GitLab CI
- Terraform: How to enable "Use Origin Cache Headers" on CloudFront
- How to fix the font rendering on macOS 10.14 Mojave
- Host your own CI/CD server with Drone
- How to setup a Telegram bot for your Drone CI/CD builds
- How to use nvm, rbenv, pyenv, goenv... with the fish shell
- How I back up my servers using restic and Wasabi object storage
- Enable DNSSEC support in systemd-resolved
- Moving Mastodon's media files to Wasabi Object Storage
- Monitoring with Telegraf, InfluxDB and Grafana
- Setup a ZFS pool on a Hetzner VM running Debian 9
- Install Docker on a ZFS pool
- mstdn.io is one year old
- Migrating Ghost from MySQL to SQLite
- Migrating Ghost to Docker
- Diaspora* in Docker
- My custom Ghost theme
- Do a speedtest from your terminal with speedtest-cli
- Add a dynamic MOTD to your Linux server
- dspr.io: a new diaspora* pod
- One year on Mastodon
- How to set up a diaspora* pod on Debian and Ubuntu
- Configure the Unbound plugin for Munin
- Setup a network bridge for your LXC containers with lxc-net
- Setup a ZFS pool for your LXC containers with LXD
- Add comments to your blog with Isso
- A new blog
- Micro: a modern and intuitive terminal-based text editor