My selfhosted config
  • Jinja 36.9%
  • Shell 33.5%
  • Just 21.7%
  • Dockerfile 6.4%
  • Go Template 1.5%
Find a file
Alex March 4b70937938
All checks were successful
Lint / Lint (push) Successful in 5s
Full fetch for lint workflow
2026-04-27 15:38:57 +09:00
.forgejo/workflows Full fetch for lint workflow 2026-04-27 15:38:57 +09:00
ansible Update README and LICENSE 2024-05-23 00:45:04 +09:00
authelia Enable SSO for Gotify 2026-04-27 15:17:13 +09:00
caddy Adjust some security props in Caddyfile 2026-04-14 00:00:23 +09:00
diun Use ghcr version of resticprofile in diun 2026-03-24 21:20:14 +09:00
forgejo Pin forgejo runner container images by SHA 2026-04-27 15:28:11 +09:00
frigate Add Edge TPU detectors to Frigate and re-configure cameras 2024-11-12 23:28:11 +09:00
frpc Fix X-Forwarded-For not being set to a real IP, finally 2026-04-13 23:49:38 +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 Add prek to mise tools and lint all files 2026-04-27 14:21:25 +09:00
prometheus Remove dependency on cloudflare entirely in favour of self managed frp 2026-03-14 02:32:44 +09:00
qbittorrent Add prek to mise tools and lint all files 2026-04-27 14:21:25 +09:00
recyclarr Bump versions 2024-08-10 22:06:50 +09:00
restic Also stop-start forgejo-runner when backing up forgejo-database 2026-04-24 18:59:21 +09:00
searxng Set searxng default language, frequently detects incorrectly when set to auto 2024-09-17 23:25:35 +09:00
voidrepo Configure voidrepo cron schedule via an env var 2026-04-22 10:50:30 +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-04-17 23:13:47 +09:00
authelia.yml Enable SSO for Gotify 2026-04-27 15:17:13 +09:00
common.yml Bump versions and remove redundant compose "version" prop 2024-11-02 21:55:18 +09:00
compose.yml Add a void linux repo mirror service 2026-04-09 20:03:39 +09:00
default.env Enable SSO for Gotify 2026-04-27 15:17:13 +09:00
forgejo.yml Add GPG singing to Forgejo 2026-04-21 19:18:01 +09:00
frigate.yml Bump versions 2026-03-24 21:48:30 +09:00
gotify.yml Enable SSO for Gotify 2026-04-27 15:17:13 +09:00
homeassistant.yml Bump versions 2026-04-13 21:38:46 +09:00
immich.yml Bump versions 2026-04-17 23:13:47 +09:00
jellyfin.yml Bump versions 2026-04-13 21:38:46 +09:00
justfile Add voidsync command to manually trigger voidrepo sync script 2026-04-10 11:22:51 +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-04-17 23:13:47 +09:00
mise.toml Add prek to mise tools and lint all files 2026-04-27 14:21:25 +09:00
navidrome.yml Bump versions 2026-04-13 21:38:46 +09:00
paperless.yml Bump versions 2026-04-17 23:13:47 +09:00
prek.toml Add prek to mise tools and lint all files 2026-04-27 14:21:25 +09:00
qbittorrent.yml Bump versions 2026-04-13 21:38:46 +09:00
README.md Remove cal from README since it went closed source 2026-04-27 14:33:00 +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-04-13 21:38:46 +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 Bump versions 2026-04-17 23:13:47 +09:00
voidrepo.yml Configure voidrepo cron schedule via an env var 2026-04-22 10:50:30 +09:00
wakapi.yml Bump versions 2026-04-13 21:38:46 +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

Mirrors

This repository is hosted on Forgejo which mirrors to the following git forges: