# Gitea
## Descrizione [![Sito ufficiale](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=firefoxbrowser&style=flat&label=&message=Homepage)](https://gitea.io/) [![Sorgente](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=github&style=flat&label=&message=Sorgente)](https://github.com/go-gitea/gitea) [![Docker Hub](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=docker&style=flat&label=&message=Docker Hub)](https://hub.docker.com/r/gitea/gitea) [![Docs](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=readthedocs&style=flat&label=&message=Docs)](https://docs.gitea.io/) [![Demo](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=jekyll&style=flat&label=&message=Demo)](https://try.gitea.io/) ![RPI Friendly]() Gitea è un server per repository git, veloce, semplice e facile da configurare: - Interfaccia web multilingua e configurabile - Un'alternativa open-source a GitHub/GitLab/etc - 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 **N.B. Tutti i file e le cartelle devono essere creati a mano** ## Esempi Semplice esempio per iniziare ad usare subito il container ### network Con docker ```bash docker network create custom-bridge ``` oppure usando podman ```bash podman network create custom-bridge ``` ### docker-compose `docker-compose.yml` ```yml version: "3.8" services: db: container_name: gitea-db image: postgres:13-alpine security_opt: - no-new-privileges:true networks: - custom-bridge 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 gitea: container_name: gitea image: gitea/gitea:1.16 networks: - custom-bridge restart: unless-stopped depends_on: - db ports: - ${GITEA_WEBUI_PORT:-3000}:3000 - ${GITEA_SSH_PORT:-22}: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 networks: custom-bridge: name: custom-bridge driver: bridge ``` `.env` ```bash # Generale POSTGRES_DATA=/home/docker/gitea/db GITEA_DATA=/home/docker/gitea/data GITEA_WEBUI_PORT=3000 GITEA_SSH_PORT=22 # 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 Vedi [Todo](#Todo) ## Aggiornamento ### Automatico Usando [watchtower](../watchtower) il container si aggiorna automaticamente ### Manuale 1. `docker-compose up -d` 2. `docker image prune` ## Backup e ripristino ### Backup Usate [borg](../borg) per fare i backup giornalieri dell'intera cartella `gitea` ### Ripristino Per una maggiore spiegazione sui passaggi da fare, controllate [qua](../borg#user-content-controllare-la-cartella-dei-backup) 1. fermare il container con `docker-compose down` 2. cancellare l'intera cartella `gitea` 3. dal backup copiare la cartella `gitea` 4. far ripartire il container con `docker-compose up -d` ## Todo Implementare: - reverse proxy: **[caddy](https://caddyserver.com/)** o **[traefik](https://doc.traefik.io/traefik/)** --- Licenza: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt)