95 lines
2.8 KiB
Markdown
95 lines
2.8 KiB
Markdown
**Purpose**: Gitea is a painless self-hosted all-in-one software development service, it includes Git hosting, code review, team collaboration, package registry and CI/CD. It is similar to GitHub, Bitbucket and GitLab. Gitea was forked from Gogs originally and almost all the code has been changed.
|
|
|
|
[Detailed SMTP Configuration Reference](https://docs.gitea.com/administration/config-cheat-sheet)
|
|
|
|
|
|
## Docker Configuration
|
|
```jsx title="docker-compose.yml"
|
|
version: "3"
|
|
|
|
services:
|
|
server:
|
|
image: gitea/gitea:latest
|
|
container_name: gitea
|
|
privileged: true
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- TZ=America/Denver
|
|
- GITEA__mailer__ENABLED=true
|
|
- GITEA__mailer__FROM=${GITEA__mailer__FROM:?GITEA__mailer__FROM not set}
|
|
- GITEA__mailer__PROTOCOL=smtp+starttls
|
|
- GITEA__mailer__HOST=${GITEA__mailer__HOST:?GITEA__mailer__HOST not set}
|
|
- GITEA__mailer__IS_TLS_ENABLED=true
|
|
- GITEA__mailer__USER=${GITEA__mailer__USER:-apikey}
|
|
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
|
|
restart: always
|
|
volumes:
|
|
- /srv/containers/gitea:/data
|
|
# - /etc/timezone:/etc/timezone:ro
|
|
# - /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- "3000:3000"
|
|
- "222:22"
|
|
networks:
|
|
docker_network:
|
|
ipv4_address: 192.168.5.70
|
|
# labels:
|
|
# - "traefik.enable=true"
|
|
# - "traefik.http.routers.gitea.rule=Host(`git.bunny-lab.io`)"
|
|
# - "traefik.http.routers.gitea.entrypoints=websecure"
|
|
# - "traefik.http.routers.gitea.tls.certresolver=letsencrypt"
|
|
# - "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
|
depends_on:
|
|
- postgres
|
|
|
|
postgres:
|
|
image: postgres:12-alpine
|
|
ports:
|
|
- 5432:5432
|
|
volumes:
|
|
- /srv/containers/gitea/db:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_DB=gitea
|
|
- POSTGRES_USER=gitea
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- TZ=America/Denver
|
|
restart: always
|
|
networks:
|
|
docker_network:
|
|
ipv4_address: 192.168.5.71
|
|
|
|
networks:
|
|
docker_network:
|
|
external: true
|
|
```
|
|
|
|
```jsx title=".env"
|
|
GITEA__mailer__FROM=noreply@bunny-lab.io
|
|
GITEA__mailer__HOST=mail.bunny-lab.io
|
|
GITEA__mailer__PASSWD=SecureSMTPPassword
|
|
GITEA__mailer__USER=noreply@bunny-lab.io
|
|
POSTGRES_PASSWORD=SomethingSuperSecure
|
|
```
|
|
|
|
## Traefik Reverse Proxy Configuration
|
|
If the container does not run on the same host as Traefik, you will need to manually add configuration to Traefik's dynamic config file, outlined below.
|
|
``` yaml
|
|
http:
|
|
routers:
|
|
git:
|
|
entryPoints:
|
|
- websecure
|
|
tls:
|
|
certResolver: letsencrypt
|
|
http2:
|
|
service: git
|
|
rule: Host(`git.bunny-lab.io`)
|
|
|
|
services:
|
|
git:
|
|
loadBalancer:
|
|
servers:
|
|
- url: http://192.168.5.70:3000
|
|
passHostHeader: true
|
|
``` |