Files
homelabstack/portainer-compose.yml
T
ginnoir 353263ddf8 refactor: move runner+watchtower to portainer-compose (management plane)
- portainer-compose.yml now owns all three management-plane services:
  portainer, github-runner, watchtower. All mount the docker socket;
  none belong to the application stack.
- Watchtower carries over its existing env (DOCKER_API_VERSION, ntfy URL).
  portainer, runner, and watchtower itself are labeled to opt out of
  watchtower auto-updates.
- docker-compose.yml: remove github-runner (was causing self-kill during
  dc up -d; exclusion workaround no longer needed)
- deploy.yml: simplified back to plain dc up -d with no service filtering
2026-06-04 14:31:33 -05:00

61 lines
1.8 KiB
YAML

# Management-plane services: portainer, github-runner, watchtower.
# These manage the application stack rather than being part of it.
#
# This file also owns the portainer_proxy network that the main
# docker-compose.yml references as external: true.
#
# Fresh-install order:
# docker compose -f portainer-compose.yml up -d # network + mgmt plane first
# dc up -d # application stack second
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
restart: unless-stopped
networks:
- portainer_proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /config/portainer:/data
ports:
- "9100:9000"
labels:
- "com.centurylabs.watchtower.enable=false"
github-runner:
container_name: github_runner
image: myoung34/github-runner:latest
restart: unless-stopped
environment:
- ACCESS_TOKEN=${GITHUB_RUNNER_ACCESS_TOKEN}
- REPO_URL=https://github.com/ginnoir/homelabstack
- RUNNER_NAME=valhalla
- RUNNER_LABELS=self-hosted,Linux,x64
- RUNNER_SCOPE=repo
- DOCKER_GROUP_GID=1001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/ginnoir/valhalla-lab:/valhalla-lab
- /config/caddy:/config/caddy
labels:
- "com.centurylabs.watchtower.enable=false"
watchtower:
container_name: watchtower
image: containrrr/watchtower:latest
restart: unless-stopped
environment:
- DOCKER_API_VERSION=1.40
- WATCHTOWER_NOTIFICATION_SKIP_TITLE=true
- WATCHTOWER_NOTIFICATION_URL=ntfy://ntfy.ginnoir.com/watchtower?title=WatchtowerUpdates
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "com.centurylabs.watchtower.enable=false"
networks:
portainer_proxy:
name: portainer_proxy
driver: bridge