folk.zone Wiki

a public knowledge base

Site Tools


guides:add_new_service

This is an old revision of the document!


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

guides/add_new_service.1791373735.txt.gz · Last modified: by 127.0.0.1