Files
docker-setup/gitea/compose.yaml
T
2026-04-22 23:07:01 +02:00

90 lines
2.8 KiB
YAML

---
services:
server:
image: docker.io/gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
# -- Change your database settings here...
# --> PostgreSQL
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}
- GITEA__database__NAME=${POSTGRES_DB:?POSTGRES_DB not set}
- GITEA__database__USER=${POSTGRES_USER:?POSTGRES_USER not set}
- GITEA__database__PASSWD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
# -- (Optional) Change your server settings here...
- GITEA__server__SSH_PORT=1103 # <-- (Optional) Replace with your desired SSH port
- GITEA__server__ROOT_URL=https://git.byhaider.dev # <-- Replace with your FQDN
# --> (Optional) When using traefik...
networks:
- traefik-network
# <--
# --> (Optional) When using an internal database...
- postgresql
# <--
volumes:
- gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
# --> (Optional) Remove when using traefik...
# - "3000:3000"
# <--
- "1103:22" # <-- (Optional) Replace with your desired SSH port
# --> (Optional) When using internal database...
# depends_on:
# - laser-db
# <--
# --> (Optional) When using traefik...
labels:
- traefik.enable=true
- "traefik.docker.network=traefik-network"
- traefik.http.services.gitea.loadbalancer.server.port=3000
- traefik.http.services.gitea.loadbalancer.server.scheme=http
# - traefik.http.routers.gitea-http.entrypoints=web
# - traefik.http.routers.gitea-http.rule=Host(`git.byhaider.dev`)
- traefik.http.routers.gitea-https.rule=Host(`git.byhaider.dev`)
- traefik.http.routers.gitea-https.entrypoints=websecure
- traefik.http.routers.gitea-https.tls=true
- traefik.http.routers.gitea-https.tls.certresolver=cloudflare # <-- Replace with your certresolver
# <--
restart: unless-stopped
# --> When using internal database
# db:
# image: docker.io/library/postgres:latest
# container_name: gitea-db
# environment:
# - POSTGRES_USER=${POSTGRES_USER:?POSTGRES_USER not set}
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
# - POSTGRES_DB=${POSTGRES_DB:?POSTGRES_DB not set}
# networks:
# - backend
# volumes:
# - gitea-db:/var/lib/postgresql/data
# restart: unless-stopped
# <--
volumes:
gitea-data:
driver: local
# --> When using internal database
postgresql:
driver: local
# <--
# --> (Optional) When using traefik...
networks:
traefik-network:
external: true
# <--
# --> (Optional) When using an internal database...
postgresql:
external: true
# <--