Skip to main content
  1. Examples/

Gitea

·2 mins· loading · loading · · ·
Docker
Adrien D'acunto
Author
Adrien D’acunto
---
services:
  server:
    image: gitea/gitea:1.23.7
    container_name: gitea-server
    environment:
      - USER_UID=996
      - USER_GID=100
      # -- Change your database settings here...
      # --> PostgreSQL
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}
      - GITEA__database__NAME=${POSTGRES_DB:?POSTGRES_DB not set}
      - GITEA__database__USER=${POSTGRES_USER:?POSTGRES_USER not set}
      - GITEA__database__PASSWD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
      # <--
      # --> OR MySQL
      # - GITEA__database__DB_TYPE=mysql
      # - GITEA__database__HOST=db:3306
      # - GITEA__database__NAME=${MYSQL_DATABASE:?MYSQL_DATABASE not set}
      # - GITEA__database__USER=${MYSQL_USER:?MYSQL_USER not set}
      # - GITEA__database__PASSWD=${MYSQL_PASSWORD:?MYSQL_PASSWORD not set}
      # <--
      # -- (Optional) Change your server settings here...
      - GITEA__server__SSH_PORT=2221  # <-- (Optional) Replace with your desired SSH port
      - GITEA__server__ROOT_URL=http://your-fqdn  # <-- Replace with your FQDN
    # --> (Optional) When using traefik...
    networks:
      - frontend
    # <--
    # --> (Optional) When using an internal database...
      - backend
    # <--
    volumes:
      - gitea-data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      # --> (Optional) Remove when using traefik...
      - "3000:3000"
      # <--
      - "2221:22"  # <-- (Optional) Replace with your desired SSH port
      # --> (Optional) When using internal database...
    depends_on:
      - db
    # <--
    # --> (Optional) When using traefik...
    # labels:
    #   - traefik.enable=true
    #   - traefik.http.services.gitea.loadbalancer.server.port=3000
    #   - traefik.http.services.gitea.loadbalancer.server.scheme=http
    #   - traefik.http.routers.gitea-https.entrypoints=websecure
    #   - traefik.http.routers.gitea-https.rule=Host(`your-fqdn`)  # <-- Replace with your FQDN
    #   - traefik.http.routers.gitea-https.tls=true
    #   - traefik.http.routers.gitea-https.tls.certresolver=your-certresolver  # <-- Replace with your certresolver
    # <--
    restart: unless-stopped

  db:
    image: postgres:latest
    container_name: gitea-db
    environment:
      - POSTGRES_USER=${POSTGRES_USER:?POSTGRES_USER not set}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
      - POSTGRES_DB=${POSTGRES_DB:?POSTGRES_DB not set}
    networks:
      - backend
    volumes:
      - gitea-db:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  gitea-data:
    driver: local
# --> When using internal database
  gitea-db:
    driver: local
# <--

# --> (Optional) When using traefik...
networks:
  frontend:
# <--
# --> (Optional) When using an internal database...
  backend:
# <--

.env :

POSTGRES_DB=gitea
POSTGRES_USER=gitea
POSTGRES_PASSWORD=supersecret
POSTGRES_HOST=db
POSTGRES_PORT=5432

Related

Firefox
·1 min· loading · loading
Docker
Jellyfin
·1 min· loading · loading
Docker Media
Myspeed
·1 min· loading · loading
Docker
NTFY
·1 min· loading · loading
Docker
Nextcloud
·1 min· loading · loading
Docker Storage
Nginx
·1 min· loading · loading
Docker