My selfhosted config
  • Jinja 50.6%
  • Just 28%
  • Shell 17.8%
  • Dockerfile 3.6%
Find a file
2026-03-28 23:24:39 +09:00
ansible Update README and LICENSE 2024-05-23 00:45:04 +09:00
authelia Enable SSO for Vaultwarden 2026-03-24 23:17:07 +09:00
caddy Point public frp back to itself on the webServer.port 2026-03-14 12:05:35 +09:00
diun Use ghcr version of resticprofile in diun 2026-03-24 21:20:14 +09:00
forgejo Update forgejo runner config comments to match the latest defaults 2024-11-02 21:55:55 +09:00
frigate Add Edge TPU detectors to Frigate and re-configure cameras 2024-11-12 23:28:11 +09:00
frpc Add ansible config for provisioning frp servers 2026-03-17 16:02:29 +09:00
frps Add caddy to frp server deploy 2026-03-17 16:02:30 +09:00
grafana Move everything out of docker/ into the root of the repo 2024-03-16 22:08:46 +09:00
mosquitto Move everything out of docker/ into the root of the repo 2024-03-16 22:08:46 +09:00
podman Abandon all hope on podman 2023-02-28 00:11:34 +09:00
prometheus Remove dependency on cloudflare entirely in favour of self managed frp 2026-03-14 02:32:44 +09:00
qbittorrent Move everything out of docker/ into the root of the repo 2024-03-16 22:08:46 +09:00
recyclarr Bump versions 2024-08-10 22:06:50 +09:00
restic Switch to a different age recipient and re-encrypt files 2026-03-17 22:56:53 +09:00
searxng Set searxng default language, frequently detects incorrectly when set to auto 2024-09-17 23:25:35 +09:00
.gitignore Add Authelia jwks key and update env 2025-10-22 22:50:41 +09:00
.sops.yaml Switch to a different age recipient and re-encrypt files 2026-03-17 22:56:53 +09:00
atuin.yml Bump versions 2026-03-28 23:24:39 +09:00
authelia.yml Enable SSO for Vaultwarden 2026-03-24 23:17:07 +09:00
common.yml Bump versions and remove redundant compose "version" prop 2024-11-02 21:55:18 +09:00
compose.yml Bump versions 2026-03-17 16:02:29 +09:00
default.env Enable SSO for Vaultwarden 2026-03-24 23:17:07 +09:00
forgejo.yml Bump versions 2026-03-28 23:24:39 +09:00
frigate.yml Bump versions 2026-03-24 21:48:30 +09:00
gotify.yml Bump versions 2026-03-02 23:40:57 +09:00
homeassistant.yml Bump versions 2026-03-24 21:48:30 +09:00
immich.yml Bump versions 2026-03-28 23:24:39 +09:00
jellyfin.yml Bump versions 2026-02-13 23:07:21 +09:00
justfile Explicitly use ghcr.io/authelia in justfile for genid and gensecret 2026-03-24 23:17:38 +09:00
kavita.yml Bump versions 2026-02-13 23:07:21 +09:00
LICENSE Update README and LICENSE 2024-05-23 00:45:04 +09:00
metrics.yml Bump versions 2026-03-28 23:24:39 +09:00
mise.toml Remove age/age-plugin-yubikey, install with the OS package manager 2026-03-17 18:32:29 +09:00
navidrome.yml Add notes on external auth with Navidrome 2026-03-25 00:05:56 +09:00
paperless.yml Bump versions 2026-03-24 21:48:30 +09:00
qbittorrent.yml Bump versions 2026-03-24 21:48:30 +09:00
README.md Remove dependency on cloudflare entirely in favour of self managed frp 2026-03-14 02:32:44 +09:00
sabnzbd.yml Bump versions 2025-11-01 00:43:54 +09:00
searxng.yml Bump versions 2026-03-24 21:48:30 +09:00
servarr.yml Bump versions 2026-03-24 21:48:30 +09:00
slskd.yml Enable boringpoll on gluetun 2026-03-24 21:13:19 +09:00
syncstorage.yml Get Mozilla syncstorage-rs up and running but still keeping it disabled 2025-11-01 00:14:42 +09:00
vaultwarden.yml Enable SSO for Vaultwarden 2026-03-24 23:17:07 +09:00
wakapi.yml Bump versions 2026-03-02 23:40:57 +09:00

Selfhosted

My selfhosted config.

Hardware

  • Ryzen 5 5600G 3.9GHz 6 core
  • Gigabyte B550I Mini ITX
  • XPG GAMMIX D45 DDR4-3200 2x16GB
  • WD Blue SN550 NVME 1TB
  • Kingston Q500 SSD 2x240GB
  • WD Red 5400 RPM 5x8TB
  • Silverstone SX650-G 650W SFX
  • Intel I350-T4 4x1Gb NIC
  • APC BK500JP UPS
  • Dual Edge TPU M.2
  • Dual Edge TPU PCIe Adapter
  • Jonsbo N1 Mini ITX

Software

Containers are run with docker, a frp on a VPS is the entrypoint with Caddy acting as a reverse proxy to other services. See compose.yml and the list of includes it contains.

I have previously ran Cloudflare Tunnel but decided to ditch it in favour of having more control over non HTTP traffic and more control over my traffic in general. Using Fast Reverse Proxy makes TCP/UDP much easier to work with and in most cases doesn't require connecting client to install any additional software.

I have previously attempted to run containers using rootless podman with moderate success, but inter-container networking was difficult and at times too slow (slurp4netns). The fact that other tools like kustomize are needed to have a flexible configuration was another downside. Perhaps I will revisit podman again someday.

Configuration

All applications are configured with a single default.env. This env file is encrypted using SOPS with age and must be decrypted first before it can be used: sops decrypt default.env > .env. Prior to commit 6adee98ae6ad SOPS with PGP backend was used.

Individual services can be disabled by commenting them out from the include list in compose.yml.

Backups

Backups are done using restic and resticprofile. See the restic/README.md for details.

Power

  • 1 WD Red 5400 RPM 8TB drive consumes about 6W of power.
  • At standby with all drives powered ON the consumption is 77W (default BIOS)
  • At standby with all drives powered OFF the consumption is 45W (default BIOS)

Todo

Software

Hardware

  • Replace the NIC with a TPU such as Coral PCIe Accelerator or a dGPU with a small form factor