version: "{{ compose_version }}"

volumes:
  db_data: ~

services:
  server:
    image: gitea/gitea:{{ gitea_version }}
    environment:
      - USER_UID={{ git_user.uid }}
      - USER_GID={{ git_user.group }}
      - ROOT_URL=https://git.{{ main_domain }}/
      - DB_TYPE=mysql
      - DB_HOST={{ database_mysql_host }}:3306
      - DB_NAME={{ database.name }}
      - DB_USER={{ database.user }}
      - DB_PASSWD={{ database.password }}
    ports:
      - 127.0.0.1:2222:22
    networks: 
      - "{{ ingress_network }}"
      - default
    volumes:
      - "{{ repositories_path }}:/data"
      - "{{ git_user.home }}/.ssh:/data/git/.ssh"
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/services:/var/services
    deploy:
      labels:
        - traefik.enable=true
        - traefik.http.routers.{{ service }}.rule=Host(`git.{{ main_domain }}`)
        - traefik.http.routers.{{ service }}.tls=true
        - traefik.http.routers.{{ service }}.tls.certresolver=lets-encrypt
        - traefik.http.routers.{{ service }}.middlewares=gzip@file
        - traefik.http.services.{{ service }}.loadbalancer.server.port=3000