Gitea Git Server
A lightweight, self-hosted Git service powered by Gitea and backed by PostgreSQL 16 for reliable data storage. Gitea provides a GitHub-like experience including repository management, issue tracking, pull requests, CI/CD via Gitea Actions, and a built-in container registry. The web UI is exposed on port 3000 and SSH access for Git operations is available on port 2222. PostgreSQL is tuned for the moderate query patterns of a Git hosting platform, with health checks ensuring the database is ready before Gitea starts. All repositories, LFS objects, and configuration are persisted in named volumes, making backup and migration straightforward.
Servicios Incluidos
gitea
gitea/gitea:1.22
Variables de Entorno:
postgres
postgres:16-alpine
Variables de Entorno:
YAML Generado
# Generated by ComposeHub (composehub.dev)
name: gitea-postgres
services:
gitea:
image: gitea/gitea:1.22
restart: unless-stopped
ports:
- 3000:3000
- 2222:22
volumes:
- gitea_data:/data
- gitea_config:/data/gitea/conf
environment:
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: postgres:5432
GITEA__database__NAME: ${POSTGRES_DB:-gitea}
GITEA__database__USER: ${POSTGRES_USER:-gitea}
GITEA__database__PASSWD: ${POSTGRES_PASSWORD:-changeme}
GITEA__server__DOMAIN: ${GITEA_DOMAIN:-localhost}
GITEA__server__ROOT_URL: ${GITEA_ROOT_URL:-http://localhost:3000}
GITEA__server__SSH_DOMAIN: ${GITEA_SSH_DOMAIN:-localhost}
GITEA__server__SSH_PORT: "2222"
GITEA__server__LFS_START_SERVER: "true"
GITEA__service__DISABLE_REGISTRATION: ${GITEA_DISABLE_REGISTRATION:-false}
GITEA__service__REQUIRE_SIGNIN_VIEW: ${GITEA_REQUIRE_SIGNIN:-false}
GITEA__mailer__ENABLED: ${GITEA_MAILER_ENABLED:-false}
GITEA__mailer__SMTP_ADDR: ${GITEA_SMTP_ADDR:-}
GITEA__mailer__SMTP_PORT: ${GITEA_SMTP_PORT:-587}
GITEA__mailer__FROM: ${GITEA_MAIL_FROM:[email protected]}
USER_UID: "1000"
USER_GID: "1000"
networks:
- frontend
- backend
depends_on:
postgres:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- curl -f http://localhost:3000/api/healthz || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: "1.00"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
labels:
com.composeforge.description: Gitea self-hosted Git service
postgres:
image: postgres:16-alpine
restart: unless-stopped
command:
- postgres
- "-c"
- shared_buffers=128MB
- "-c"
- effective_cache_size=384MB
- "-c"
- work_mem=8MB
- "-c"
- max_connections=50
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB:-gitea}
POSTGRES_USER: ${POSTGRES_USER:-gitea}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
networks:
- backend
healthcheck:
test:
- CMD-SHELL
- pg_isready -U ${POSTGRES_USER:-gitea} -d ${POSTGRES_DB:-gitea}
interval: 15s
timeout: 5s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: "1.00"
memory: 512M
reservations:
cpus: "0.25"
memory: 128M
labels:
com.composeforge.description: PostgreSQL 16 database for Gitea
networks:
frontend:
driver: bridge
backend:
driver: bridge
volumes:
gitea_data:
driver: local
gitea_config:
driver: local
postgres_data:
driver: local
Información Rápida
- Servicios
- 2
- Redes
- 2
- Volúmenes
- 3
Cuándo Usar
Esta plantilla es ideal para configurar un entorno de gitea git server Todos los servicios vienen preconfigurados con healthchecks, límites de recursos y valores por defecto sensatos. Personaliza las variables de entorno antes de desplegar en producción.
Consejos
- Cambia todas las contraseñas por defecto antes de desplegar
- Revisa los límites de recursos para tu hardware
- Añade un proxy inverso para HTTPS en producción
- Configura estrategias de respaldo para los volúmenes de datos