version: "3.8" services: db: image: postgres:14-alpine restart: always environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} networks: - default volumes: - ./data/pgsql:/var/lib/postgresql/data gitea: image: gitea/gitea:latest container_name: gitea environment: - APP_NAME=${GITEA_NAME} - USER_UID=${GITEA_UID} - USER_GID=${GITEA_GID} - GITEA__server__ROOT_URL=${GITEA__server__ROOT_URL:?GITEA__server__ROOT_URL not set} - GITEA__server__DOMAIN=${GITEA__server__DOMAIN:?GITEA__server__DOMAIN not set} - GITEA__service__DISABLE_REGISTRATION=true ### IF Mailer is used you can activate self registration with email confirmation, mail notifies... - GITEA__service__REGISTER_EMAIL_CONFIRM=true - GITEA__service__ENABLE_NOTIFY_MAIL=true - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=${POSTGRES_DB} - GITEA__database__USER=${POSTGRES_USER} - GITEA__database__PASSWD=${POSTGRES_PASSWORD} - GITEA__mailer__ENABLED=${GITEA__mailer__ENABLED:?GITEA__mailer__ENABLED not set} - GITEA__mailer__SMTP_ADDR=${GITEA__mailer__SMTP_ADDR:?GITEA__mailer__SMTP_ADDR not set} - GITEA__mailer__SMTP_PORT=${GITEA__mailer__SMTP_PORT:?GITEA__mailer__SMTP_PORT not set} - GITEA__mailer__PROTOCOL=${GITEA__mailer__PROTOCOL:?GITEA__mailer__PROTOCOL not set} - GITEA__mailer__FROM=${GITEA__mailer__FROM:?GITEA__mailer__FROM not set} # - GITEA__mailer__USER=${GITEA__mailer__USER:?GITEA__mailer__USER not set} # - GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}""" restart: always networks: - default - proxy volumes: - ./data/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro # ports: # - "3000:3000" # - "2221:22" depends_on: - db labels: - traefik.enable=true - traefik.http.routers.gitea.rule=Host(`gitea.example.com`) - traefik.http.routers.gitea.tls.certResolver=le - traefik.http.routers.gitea.service=gitea - traefik.http.services.gitea.loadbalancer.server.port=3000 - traefik.docker.network=proxy logging: driver: "json-file" options: max-size: "1m" networks: proxy: external: true