version: "3"

services:
  gitea:
    image: pbrinkmeier/gitea
    build: .
    restart: always
    environment:
      # Ref: https://docs.gitea.io/en-us/config-cheat-sheet
      # User is created by misc-docker.yaml
      USER: gitea
      USER_UID: 42001
      USER_GID: 42001
      GITEA__repository__ENABLE_PUSH_CREATE_USER: "true"
      GITEA__repository__ENABLE_PUSH_CREATE_ORG: "true"
      GITEA__server__DOMAIN: git.pbrinkmeier.de
      GITEA__server__HTTP_PORT: 3000
      GITEA__server__ROOT_URL: https://git.pbrinkmeier.de/
      GITEA__server__SSH_DOMAIN: git.pbrinkmeier.de
      GITEA__server__BUILTIN_SSH_SERVER_USER: git
      GITEA__server__SSH_LISTEN_PORT: 2222
      GITEA__server__SSH_PORT: 22
      GITEA__server__OFFLINE_MODE: "true"
      GITEA__database__DB_TYPE: postgres
      GITEA__database__HOST: gitea_db:5432
      GITEA__database__NAME: gitea
      GITEA__database__USER: gitea
      GITEA__database__PASSWD: "${GITEA_DB_PASSWORD}"
      GITEA__picture__DISABLE_GRAVATAR: "true"
      GITEA__picture__FEDERATED_AVATAR: "false"
      GITEA__service__DISABLE_REGISTRATION: "true"
      GITEA__service__REGISTER_EMAIL_CONFIRM: "true"
      GITEA__service__ENABLE_NOTIFY_MAIL: "true"
      GITEA__service__NOREPLY_ADDRESS: noreply.pbrinkmeier.de
      GITEA__service__ENABLE_TIMETRACKING: "false"
      GITEA__service__DEFAULT_ENABLE_TIMETRACKING: "false"
      GITEA__service__DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME: "false"
      GITEA__mailer__ENABLED: "true"
      GITEA__mailer__HOST: smtp.mailbox.org:465
      GITEA__mailer__FROM: git@pbrinkmeier.de
      GITEA__mailer__USER: hallo@pbrinkmeier.de
      GITEA__mailer__PASSWD: "${GITEA_SMTP_PASSWORD}"
      GITEA__openid__ENABLE_OPENID_SIGNIN: "false"
      GITEA__openid__ENABLE_OPENID_SIGNUP: "false"
      GITEA__markup_0x2E_jupyter__ENABLED: "true"
      GITEA__markup_0x2E_jupyter__FILE_EXTENSIONS: ".ipynb"
      GITEA__markup_0x2E_jupyter__RENDER_COMMAND: "jupyter nbconvert --stdin --stdout --to html --template basic"
      GITEA__markup_0x2E_jupyter__IS_INPUT_FILE: "false"
      GITEA__markup_0x2E_sanitizer_0x2E_jupyter_0x2E_img__ALLOW_DATA_URI_IMAGES: "true"
    volumes:
      - /var/lib/pbri/docker/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "22:2222"
    depends_on:
      - gitea_db

  gitea_db:
    image: postgres:14.5-alpine
    restart: always
    environment:
      POSTGRES_DB: gitea
      POSTGRES_USER: gitea
      POSTGRES_PASSWORD: "${GITEA_DB_PASSWORD}"
    volumes:
      - /var/lib/pbri/docker/gitea_db:/var/lib/postgresql/data

networks:
  default:
    name: caddy-network
    external: true