This is an old revision of the document!
Table of Contents
Adding a New Service to the Homelab
A repeatable checklist for deploying a new self-hosted service on nitro.
Prerequisites
- Docker image name and version
- Decided subdomain (e.g.
service.folk.zone) - Container's internal port
Checklist
1. Add to docker-compose.yml
The single stack lives at server/docker-compose.yml (deployed at
/home/brennan/homelab/server/ on nitro):
service-name: image: image:tag container_name: folkzone-service restart: unless-stopped env_file: .env volumes: - ./service/data:/data networks: - folkzone_net
Any secrets go in server/.env (never committed).
2. Add Caddy route
In server/caddy/Caddyfile:
service.folk.zone {
reverse_proxy folkzone-service:port {
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
}
}
3. Add DNS record
folk.zone DNS is managed at Porkbun — add an A record for the subdomain
pointing to the public IP (104.205.127.217). No Cloudflare Tunnel step;
Caddy handles TLS via Let's Encrypt automatically once DNS resolves.
4. Deploy
cd /home/brennan/homelab/server docker compose up -d service-name docker exec folkzone-caddy caddy reload --config /etc/caddy/Caddyfile
5. Add to status page
status.folk.zone is a custom dashboard — add the service to its config in
server/status/.
6. Add to homepage services list
Update folkzone-eleventy/src/_data/services.json (or the services section
of the homepage) and rebuild with npm run build in folkzone-eleventy/.
7. Add a wiki page
Create :folkzone:services:service-name following the service page template.
See Also
Last updated: 2026-10-07
