Files
gitea-setup/docker-compose.yml
2026-02-18 21:10:16 +01:00

70 lines
2.2 KiB
YAML

services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=${GITEA_UID}
- USER_GID=${GITEA_GID}
- GITEA__server__DOMAIN=${GITEA_DOMAIN}
- GITEA__server__ROOT_URL=https://${GITEA_DOMAIN}/
- GITEA__server__SSH_DOMAIN=${GITEA_DOMAIN}
- GITEA__server__HTTP_PORT=3000
- GITEA__server__SSH_PORT=22
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=${GITEA_DB_HOST}:${GITEA_DB_PORT}
- GITEA__database__NAME=${GITEA_DB_NAME}
- GITEA__database__USER=${GITEA_DB_USER}
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
- GITEA__security__INSTALL_LOCK=true
- GITEA__service__DISABLE_REGISTRATION=true
- GITEA__actions__ENABLED=true
- GITEA__actions__DEFAULT_ACTIONS_URL=self
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
- traefik.enable=true
- traefik.docker.network=${SHARED_NETWORK_NAME}
- traefik.http.routers.gitea.rule=Host(`${GITEA_DOMAIN}`)
- traefik.http.routers.gitea.entrypoints=websecure
- traefik.http.routers.gitea.tls=true
- traefik.http.routers.gitea.tls.certresolver=letsencrypt
- traefik.http.services.gitea.loadbalancer.server.port=3000
networks:
- web
gitea-runner:
image: gitea/act_runner:latest
container_name: gitea-runner
restart: unless-stopped
depends_on:
- gitea
environment:
- GITEA_INSTANCE_URL=http://gitea:3000
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}
- GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME}
- GITEA_RUNNER_LABELS=${GITEA_RUNNER_LABELS}
volumes:
- gitea_runner_data:/data
- /var/run/docker.sock:/var/run/docker.sock
command: >-
sh -c "
if [ ! -f /data/.runner ]; then
act_runner register --no-interactive --instance $${GITEA_INSTANCE_URL} --token $${GITEA_RUNNER_REGISTRATION_TOKEN} --name $${GITEA_RUNNER_NAME};
fi;
act_runner daemon
"
networks:
- web
volumes:
gitea_data:
gitea_runner_data:
networks:
web:
external: true
name: ${SHARED_NETWORK_NAME}