diff --git a/gitea/.env.example b/gitea/.env.example new file mode 100644 index 0000000..27f4f0c --- /dev/null +++ b/gitea/.env.example @@ -0,0 +1 @@ +GITEA_HOST=git.example.org diff --git a/gitea/.gitignore b/gitea/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/gitea/.gitignore @@ -0,0 +1 @@ +.env diff --git a/gitea/README.md b/gitea/README.md new file mode 100644 index 0000000..8b098f8 --- /dev/null +++ b/gitea/README.md @@ -0,0 +1,8 @@ +# About Gitea + +# How to setup + +```bash +cp .env.example .env +docker compose up -d +``` diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..fd86fbb --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,57 @@ +networks: + web: + external: true + gitea: + driver: bridge + +volumes: + gitea-data: + driver: local + +services: + gitea: + restart: always + image: "gitea/gitea:1.22.3" + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=db:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + volumes: + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + - gitea-data:/data + labels: + - "traefik.enable=true" + + - "traefik.http.services.gitea-service.loadbalancer.server.port=3000" + + - "traefik.http.routers.gitea-http.entrypoints=web" + - "traefik.http.routers.gitea-http.middlewares=https-redirect@docker" + - "traefik.http.routers.gitea-http.rule=Host(`${GITEA_HOST}`)" + + - "traefik.http.routers.gitea-https.entrypoints=websecure" + - "traefik.http.routers.gitea-https.tls=true" + - "traefik.http.routers.gitea-https.tls.certresolver=letsencrypt" + - "traefik.http.routers.gitea-https.rule=Host(`${GITEA_HOST}`)" + networks: + - gitea + - web + depends_on: + - db + + db: + image: mysql:8 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=gitea + - MYSQL_DATABASE=gitea + networks: + - gitea + volumes: + - ./mysql:/var/lib/mysql