Gitea

Version 1.1 by chrisby on 2023/09/03 22:35

docker-compose.yml

version: "3.3"

volumes:
 traefik:
 gitea:

services:
 traefik:
   image: "traefik:latest"
   container_name: "traefik"
   restart: unless-stopped
   command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
     # - "--certificatesresolvers.myresolver.acme.email=<your-email>"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
     # Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
     # - "--log.level=DEBUG"
     # - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
   ports:
      - "443:443"
   volumes:
      - "traefik:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

 gitea:
   image: gitea/gitea:1.20.2
   container_name: gitea
   environment:
      - USER_UID=1000
      - USER_GID=1000
   restart: unless-stopped
   volumes:
      - gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
   ports:
      - "2222:22"
   environment:
      - DISABLE_REGISTRATION=true
   labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gitea.rule=Host(`subdomain`)"
      - "traefik.http.routers.gitea.entrypoints=websecure"
      - "traefik.http.routers.gitea.tls.certresolver=myresolver"
      - "traefik.http.services.gitea.loadbalancer.server.port=3000"
  •  Execute docker-compose up -d
  • Go to https://<subdomain>
  • Use the default installation settings including SQLite as the database, and create an admin account. The SSH port will be available on port 2222.