docker-services/compute-1-mep/forgejo/docker-compose.yaml

91 lines
3.6 KiB
YAML

networks:
gitea:
external: false
enable_ipv6: true
volumes:
server:
driver: local
services:
server:
image: codeberg.org/forgejo/forgejo:9.0.3
restart: always
container_name: forgejo
env_file:
- .env
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__cache__ENABLED=true
- FORGEJO__cache__ADAPTER=redis
- FORGEJO__cache__HOST=redis://cache:6379/0?pool_size=100&idle_timeout=180s
- FORGEJO__indexer__REPO_INDEXER_ENABLED=false
- FORGEJO__webhook__ALLOWED_HOST_LIST="cicd.gnous.eu,build.net.enpls.org,deploy.net.enpls.org"
- FORGEJO__service__REGISTER_EMAIL_CONFIRM=true
- FORGEJO__service__DISABLE_REGISTRATION=false
- FORGEJO__service__ENABLE_CAPTCHA=true
- FORGEJO__security__PASSWORD_HASH_ALGO=argon2
- FORGEJO__session__PROVIDER=db
- FORGEJO__security__LOGIN_REMEMBER_DAYS=365
- FORGEJO__log__LEVEL=info
- FORGEJO__log__MODE=console
- FORGEJO__ui__DEFAULT_THEME=gitea-auto
- FORGEJO__ui.meta__AUTHOR="GnousGit"
- FORGEJO__ui.meta__KEYWORDS="gitea,forge,forgejo,free,software,open,source,code,foss,oss,gnous,gnouseu"
- FORGEJO__cron.delete_inactive_accounts__ENABLED=true
- FORGEJO__cron.delete_inactive_accounts__SCHEDULE="@every 48h"
- FORGEJO__cron.delete_inactive_accounts__OLDER_THAN="48h"
- FORGEJO__markup.asciidoc__ENABLED=true
- FORGEJO__markup.asciidoc__FILE_EXTENSIONS=.adoc,.asciidoc
- FORGEJO__markup.asciidoc__RENDER_COMMAND="timeout 30s sudo -u nobody asciidoctor -s --safe-mode secure -a data-uri -a showtitle --out-file=- -"
- FORGEJO__markup.asciidoc__IS_INPUT_FILE=false
- FORGEJO__markup.pandoc_rst__ENABLED=true
- FORGEJO__markup.pandoc_rst__FILE_EXTENSIONS=.rst
- FORGEJO__markup.pandoc_rst__RENDER_COMMAND="timeout 30s sudo -u nobody pandoc +RTS -M512M -RTS -f rst"
- FORGEJO__markup.pandoc_rst__IS_INPUT_FILE=false
- FORGEJO__mailer__SMTP_ADDR=mx.gnous.eu
- FORGEJO__mailer__SMTP_PORT=587
# - FORGEJO__mailer__FROM=${SMTP_USER}
# - FORGEJO__mailer__USER=${SMTP_USER}
# - FORGEJO__mailer__PASSWD=${SMTP_PASS}
# - FORGEJO__database__HOST=${MEP_DB_HOST}
# - FORGEJO__database__NAME=${FORGEJO_DB_NAME}
# - FORGEJO__database__USER=${FORGEJO_DB_USER}
# - FORGEJO__database__PASSWD=${FORGEJO_DB_PASS}
networks:
- gitea
volumes:
- server:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3001:3000"
- "3002:22"
labels:
- "traefik.enable=true"
# web server
- "traefik.http.services.forgejo-service-gnous.loadbalancer.server.port=3001"
- "traefik.http.routers.forgejognous.rule=Host(`git.gnous.eu`)"
- "traefik.http.routers.forgejognous.tls=true"
- "traefik.http.routers.forgejognous.tls.certresolver=defaultacme"
- "traefik.http.routers.forgejognous.entrypoints=websecure"
- "traefik.http.routers.forgejognous.service=forgejo-service-gnous"
- "traefik.http.routers.forgejognous.middlewares=proxyHeader@file,proxyError@file"
# ssh service
- "traefik.tcp.routers.forgejo-ssh-gnous.entrypoints=ssh"
- "traefik.tcp.routers.forgejo-ssh-gnous.rule=HostSNI(`*`)"
- "traefik.tcp.routers.forgejo-ssh-gnous.service=forgejo-ssh-gnous"
- "traefik.tcp.services.forgejo-ssh-gnous.loadbalancer.server.port=3002"
depends_on:
- cache
cache:
image: "redis:7-alpine"
restart: always
healthcheck:
test: ["CMD", "redis-cli", "ping"]
networks:
- gitea
tmpfs:
- "/var/lib/redis"