gitea/docker-compose.yml
2024-12-26 01:07:53 -06:00

105 lines
2.9 KiB
YAML

services:
gitea:
container_name: gitea
pull_policy: build
build:
context: .
dockerfile: Dockerfile
environment:
- USER=git
- USER_UID=1000
- USER_GID=1000
# Core settings
- APP_NAME="DeafGain Gitea"
- RUN_MODE=prod
- WORK_PATH=/data/gitea
# Database settings
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=${GITEA_DB_USER}
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
# Server settings
- GITEA__server__PROTOCOL=http
- GITEA__server__DOMAIN=gitea.sigd.net
- GITEA__server__ROOT_URL=https://gitea.sigd.net/
- GITEA__server__BEHIND_PROXY=true
- GITEA__server__HTTP_PORT=3000
# Security settings
- GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY}
- GITEA__security__INTERNAL_TOKEN=${GITEA_INTERNAL_TOKEN}
# Repository settings
- GITEA__repository__ROOT=/data/gitea/repositories
- GITEA__repository__DEFAULT_PRIVATE=private
- GITEA__repository__DEFAULT_BRANCH=main
# Service settings
- GITEA__service__REQUIRE_SIGNIN_VIEW=true
# UI settings
- GITEA__ui__DEFAULT_THEME=gitea-auto
# Cache settings
- GITEA__cache__ADAPTER=memory
- GITEA__cache__INTERVAL=60
# Session settings
- GITEA__session__PROVIDER=file
- GITEA__session__PROVIDER_CONFIG=/data/gitea/sessions
- GITEA__session__COOKIE_NAME=gitea_session
- GITEA__session__COOKIE_SECURE=false
- GITEA__session__DOMAIN=gitea.sigd.net
- GITEA__service__DISABLE_REGISTRATION=true
volumes:
- /docker/gitea/data:/data
- /docker/gitea/config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
depends_on:
db:
condition: service_healthy
restart: always
networks:
- gitea_network
- caddy_network
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 512M
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
db:
image: postgres:15-alpine
container_name: gitea-db
environment:
- POSTGRES_USER=${GITEA_DB_USER}
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD}
- POSTGRES_DB=gitea
volumes:
- /docker/gitea/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${GITEA_DB_USER}"]
interval: 10s
timeout: 5s
retries: 5
restart: always
networks:
- gitea_network
deploy:
resources:
limits:
memory: 1G
reservations:
memory: 256M
networks:
gitea_network:
driver: bridge
caddy_network:
external: true