## Discord Plex FR : https://discord.gg/3gtABCH
## Version 2021-08-23
##==============================================================================================
##                                                                                            ##
##                            Fichier docker-compose.yml pour Gitea                           ##
##                                                                                            ##
##==============================================================================================
##                                                                                            ##
##    Pour que Gitea fonctionne correctement et que l'on puisse faire des git clone depuis    ##
##    un ordinateur, il faut un nom de domaine ! Je n'ai pas trouver comment faire sans...    ##
##                                                                                            ##
##────  ────────────────────────────────────────────────────────────────────────────────────────
##                                                                                            ##
## Pense-bête pour la configuration du serveur :                                              ##
##                                                                                            ##
## - URL locale d'accès (pour l'installation): http://192.168.xxx.xxxx:8196                   ##
## - URL d'accès : https://gitea.ndd.tld                                                      ##
## - Parmètres emailer :                                                                      ##
##    - ENABLED = true                                                                        ##
##    - HOST    = smtp.gmail.com:465                                                          ##
##    - FROM    = xxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                               ##
##    - USER    = xxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                               ##
##    - PASSWD  = xxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                               ##
##    - MAILER_TYPE    = smtp                                                                 ##
##    - IS_TLS_ENABLED = true                                                                 ##
##                                                                                            ##
##==============================================================================================

---
version: "2.4"

services:
  server:
    image: gitea/gitea:1    # On reste ici avec la dernière version stable de la branche 1.x.x
                            # https://docs.gitea.io/en-us/install-with-docker/
                            # https://docs.gitea.io/fr-fr/install-with-docker/
                            # https://github.com/go-gitea/gitea    
    container_name: gitea

    #network_mode: "bridge"
    networks:
      - gitea_network

    environment:
      - USER_UID=1000   # Utiliser la commande : id user
      - USER_GID=100    # Utiliser la commande : id user
      - APP_NAME=Mon Gitea perso
      - RUN_MODE=prod

      # Les deux paramètres ci-dessous ne semblent pas fonctionner puisqu'il faut faire manuellement le réglage lors du setup...
      - REQUIRE_SIGNIN_VIEW=true    # Enable this to force users to log in to view any page.
      - DISABLE_REGISTRATION=true   # Disable registration, after which only admin can create accounts for users.
      
      - DOMAIN=gitea.ndd.tld
      - SSH_DOMAIN=gitea.ndd.tld
      - ROOT_URL=https://gitea.ndd.tld
      - DB_TYPE=sqlite3
      - DB_HOST=localhost:3306
      - DB_NAME=gitea
      - DB_USER=root
      - DB_PASSWD="gitea_db_blabla"

      - INSTALL_LOCK=false    # Disallow access to the install page
                              # À passer en true une fois installer la première fois.
      - GITEA__PICTURE__DISABLE_GRAVATAR=true
      - GITEA__PICTURE__ENABLE_FEDERATED_AVATAR=false

      - GITEA__SERVICE__REGISTER_EMAIL_CONFIRM=true   # Ne semble pas fonctionner puisqu'il faut cocher manuellement la case lors du setup...
      - GITEA__SERVICE__ENABLE_NOTIFY_MAIL=true       # Ne semble pas fonctionner puisqu'il faut cocher manuellement la case lors du setup...
      

    # ###############
    # Le label ci-dessous permet à Watchtower de faire les mises à jour automatiquement
    # Cela peut-être supprimé si Watchtower n'est pas utilisé.
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    # ###############
    
    volumes:
      - "/volume1/docker/gitea/data:/data"                # Dossier pour les données de Gitea (Dépôts, BDD, config...)
      - "/volume1/docker/gitea/backup-data:/backup-data"  # Dossier pour les sauvegardes régulières à lancer avec un script en tâche planifiée.
      - "/etc/localtime:/etc/localtime:ro"                # Nécessaire pour avoir le temps local correct (vu que la variable TZ=Europe/Paris n'existe pas pour ce conteneur...)
    
    ports:
      - "8196:3000"   # Choisir un port de connexion libre sur votre machine, ce sera la port de connexion pour l'interface graphique
      # - "8197:22"     # Idem ici, sauf que ce sera pour le port SSH, mais ça ne fonctionne pas avec une installation en Bridge...
    
    restart: unless-stopped

networks:
  gitea_network:
    external: false
    driver: bridge
    name: gitea_network