d620d204c7 | ||
---|---|---|
.. | ||
.env | ||
README.md | ||
docker-compose.yml |
README.md
Gitea in docker
Descrizione
Gitea è un simil-github veloce, semplice e facile da configurare e usare:
- Scritto in Go (Golang)
- Multipiattaforma (Linux, macOS, Windows, ARM e PowerPC)
- La cosa che si avvicina maggiormente a GitHub (esteticamente e funzionalmente)
- Supporta i maggiori database (SQLite, MySQL/MariaDB e PostgreSQL)
Struttura file e cartelle
/home/
└── ~/
└── docker/
└── gitea/
├── data/
├── db/
├── .env
└── docker-compose.yml
data/
- la cartella dove i dati di gitea vengono salvatidb/
- la cartella dove i dati del database vengono salvati.env
- un file contenenti le variabili environment per il docker composedocker-compose.yml
- il docker compose per creare il container
Tutti i file e le cartelle devono essere creati a mano.
docker-compose
docker-compose.yml
version: "3.8"
services:
db:
container_name: gitea-db
image: postgres:13-alpine
restart: always
env_file: .env
volumes:
- ${POSTGRES_DATA:-/home/docker/gitea/db}:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "pg_isready", "-U", "gitea"]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 10s
git:
container_name: gitea
image: gitea/gitea:1.14.2
restart: unless-stopped
depends_on:
- db
ports:
- ${GITEA_HTTP_PORT:-3000}:3000
- ${GITEA_SSH_PORT:-221}:22
env_file: .env
volumes:
- ${POSTGRES_DATA:-/home/docker/gitea/data}:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
healthcheck:
test: ["curl --silent --fail http://localhost:${GITEA_HTTP_PORT:-3000} || exit 1"]
interval: 20s
timeout: 10s
retries: 3
start_period: 10s
.env
# Generale
POSTGRES_DATA:/home/docker/gitea/db
GITEA_DATA:/home/docker/gitea/data
GITEA_HTTP_PORT:3000
GITEA_SSH_PORT:221
# Postgres
POSTGRES_USER=gitea
POSTGRES_PASSWORD=gitea
POSTGRES_DB=gitea
# Gitea
GITEA__database__DB_TYPE=postgres
GITEA__database__HOST=db:5432
GITEA__database__NAME=gitea
GITEA__database__USER=gitea
GITEA__database__PASSWD=gitea
Reverse proxy
Ancora non ho previsto l'uso di un reverse proxy. (Vedi Todo)
Aggiornamenti
Watchtower aggiorna l'immagine automaticamente.
Aggiornamento manuale:
docker-compose pull
docker-compose up -d
docker image prune
Backup e ripristino
Backup
Copiare a mano, tramite crontab o altro la cartella gitea
(Vedi Todo)
Ripristino
- spegnere il container
docker-compose down
- cancellare l'intera cartella
gitea
- dal backup copiare la cartella
gitea
- far partire il container
docker-compose up -d
Todo
Implementare: