folk.zone Wiki

a public knowledge base

Site Tools


guides:add_new_service

Adding a New Service to the Homelab

A repeatable checklist for deploying a new self-hosted service on the folk.zone server (casa).

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 ~/homelab/server/ on the server host):

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. DNS

No per-service DNS step is needed: *.folk.zone is a wildcard A record at Porkbun pointing at the public IP. Caddy issues a Let's Encrypt certificate automatically on first request.

4. Deploy

cd ~/homelab/server
docker compose up -d service-name
docker exec folkzone-caddy caddy reload --config /etc/caddy/Caddyfile

Note: if the Caddyfile was replaced by rsync, the inode changed and caddy reload sees no diff. Use docker compose restart caddy instead. See Caddy Autosave Not Loading Config.

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 an existing page such as EtherCalc.

See Also

Last updated: 2026-10-23

guides/add_new_service.txt · Last modified: by 127.0.0.1