Stacks included:
- Infrastructure: traefik, authentik, gitea, registry, watchtower, dockge
- Monitoring: smokeping, changedetection
- Apps: ghost, gollum, wallabag, radicale, invidious, xbackbone, filebrowser, syncthing, zerotier
- Custom: obsidian-tools, memento, perilous, ramz, bookclub, brain
🤖 Generated with Claude Code
59 lines
1.4 KiB
YAML
59 lines
1.4 KiB
YAML
services:
|
|
web:
|
|
image: gitea/gitea:latest
|
|
container_name: gitea
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data:/data
|
|
expose:
|
|
- "3000"
|
|
- "22"
|
|
ports:
|
|
- "2245:22"
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
- DOMAIN=gitea.${DOMAIN}
|
|
- SSH_DOMAIN=gitea.${DOMAIN}
|
|
- SSH_PORT=2245
|
|
- SSH_LISTEN_PORT=22
|
|
networks:
|
|
- default
|
|
- web
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.gitea.entrypoints=https"
|
|
- "traefik.http.routers.gitea.rule=Host(`gitea.${DOMAIN}`)"
|
|
- "traefik.http.routers.gitea.tls.certresolver=http"
|
|
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
|
|
|
db:
|
|
image: mariadb:10
|
|
container_name: gitea-db
|
|
restart: unless-stopped
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${GITEA_DB_ROOT_PASSWORD}
|
|
- MYSQL_DATABASE=gitea
|
|
- MYSQL_USER=gitea
|
|
- MYSQL_PASSWORD=${GITEA_DB_PASSWORD}
|
|
- MARIADB_AUTO_UPGRADE=1
|
|
volumes:
|
|
- ./db:/var/lib/mysql
|
|
|
|
runner:
|
|
image: gitea/act_runner
|
|
container_name: gitea-runner
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- web
|
|
volumes:
|
|
- ./runner-data:/data
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
- GITEA_INSTANCE_URL=https://gitea.${DOMAIN}
|
|
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN}
|
|
|
|
networks:
|
|
web:
|
|
external: true
|