93 lines
2.2 KiB
YAML
93 lines
2.2 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
|
|
db:
|
|
image: postgres:15
|
|
container_name: gitea-db
|
|
restart: always
|
|
environment:
|
|
POSTGRES_DB: ${GITEA_DB_NAME}
|
|
POSTGRES_USER: ${GITEA_DB_USER}
|
|
POSTGRES_PASSWORD: ${GITEA_DB_PASSWORD}
|
|
volumes:
|
|
- gitea_postgres_data:/var/lib/postgresql/data
|
|
networks:
|
|
- gitea_net
|
|
|
|
gitea:
|
|
image: gitea/gitea:latest
|
|
container_name: gitea-server
|
|
restart: always
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
USER_UID: 1000
|
|
USER_GID: 1000
|
|
|
|
GITEA__server__ROOT_URL: ${GITEA_EXTERNAL_URL}
|
|
GITEA__server__DOMAIN: ${GITEA_DOMAIN}
|
|
GITEA__server__SSH_DOMAIN: ${GITEA_DOMAIN}
|
|
GITEA__server__SSH_PORT: ${SSH_PORT}
|
|
|
|
GITEA__database__DB_TYPE: ${GITEA_DB_TYPE}
|
|
GITEA__database__HOST: ${GITEA_DB_HOST}
|
|
GITEA__database__NAME: ${GITEA_DB_NAME}
|
|
GITEA__database__USER: ${GITEA_DB_USER}
|
|
GITEA__database__PASSWD: ${GITEA_DB_PASSWORD}
|
|
|
|
GITEA__security__INSTALL_LOCK: "true"
|
|
|
|
GITEA__mailer__ENABLED: ${SMTP_ENABLE}
|
|
GITEA__mailer__HOST: ${SMTP_HOST}:${SMTP_PORT}
|
|
GITEA__mailer__USER: ${SMTP_USER}
|
|
GITEA__mailer__PASSWD: ${SMTP_PASS}
|
|
GITEA__mailer__FROM: ${SMTP_FROM}
|
|
GITEA__mailer__SKIP_VERIFY: ${SMTP_SKIP_VERIFY}
|
|
volumes:
|
|
- gitea_data:/data
|
|
expose:
|
|
- "3000"
|
|
ports:
|
|
- "${SSH_PORT}:22"
|
|
networks:
|
|
- gitea_net
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: gitea-nginx
|
|
restart: always
|
|
depends_on:
|
|
- gitea
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx/conf.d:/etc/nginx/conf.d:ro
|
|
- ./nginx/ssl:/etc/nginx/ssl:ro
|
|
- certbot_webroot:/var/www/certbot:ro
|
|
- certbot_certs:/etc/letsencrypt:ro
|
|
networks:
|
|
- gitea_net
|
|
|
|
# Only used when SSL_MODE=letsencrypt; harmless otherwise
|
|
certbot:
|
|
image: certbot/certbot
|
|
container_name: gitea-certbot
|
|
volumes:
|
|
- certbot_webroot:/var/www/certbot
|
|
- certbot_certs:/etc/letsencrypt
|
|
entrypoint: "/bin/true"
|
|
profiles:
|
|
- letsencrypt
|
|
|
|
networks:
|
|
gitea_net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
gitea_data:
|
|
gitea_postgres_data:
|
|
certbot_webroot:
|
|
certbot_certs:
|