docker-stacks/stacks/gitea/docker-compose.yml
knight 4dbb0b9180 Initial commit: 23 docker stacks for GitOps deployment
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
2025-12-31 13:29:43 -05:00

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