# Gitea in docker
# Descrizione * [Sito ufficiale](https://gitea.io/) * [Repo (Github)](https://github.com/go-gitea/gitea) * [Demo](https://try.gitea.io/) * [Documentazione](https://docs.gitea.io/) Gitea è un simil-github veloce, semplice e facile da configurare: - Scritto in Go (Golang) - Multipiattaforma (Linux, macOS, Windows, ARM e PowerPC) - Il progetto che si avvicina maggiormente a GitHub (esteticamente) - Supporta i maggiori database (SQLite, MySQL/MariaDB e PostgreSQL) # Struttura file e cartelle ``` /home/ └── ~/ └── docker/ └── gitea/ ├── data/ ├── db/ ├── .env └── docker-compose.yml ``` * `data/` - cartella dove i dati di gitea vengono salvati * `db/` - cartella dove i dati del database vengono salvati * `.env` - file contenenti le variabili environment per il docker compose * `docker-compose.yml` - file usato per creare il container Tutti i file e le cartelle devono essere creati a mano.
# docker-compose `docker-compose.yml` ```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_WEBUI_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: # se modificate la porta dell'interfaccia web, ricordatevi di cambiarla anche qua sotto test: ["CMD", "curl", "-Ssf", http://localhost:3000"] interval: 1m30s timeout: 10s retries: 3 start_period: 1m ``` `.env` ```bash # Generale POSTGRES_DATA=/home/docker/gitea/db GITEA_DATA=/home/docker/gitea/data GITEA_WEBUI_PORT=3000 GITEA_SSH_PORT=221 # Postgres POSTGRES_DB=gitea POSTGRES_USER=gitea POSTGRES_PASSWORD=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](#Todo)) # Aggiornamenti [Watchtower](https://gitea.it/miracle091/MasterpieceDockerCompose/src/branch/master/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](#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: - reverse proxy: **[caddy](https://caddyserver.com/) o [traefik](https://doc.traefik.io/traefik/).** - backup: **[borg](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/borg_backup) per fare i backup giornalieri completi.**