diff --git a/README.md b/README.md new file mode 100644 index 0000000..b748783 --- /dev/null +++ b/README.md @@ -0,0 +1,141 @@ +# Esempio di docker-compose.yml +```yaml +services: + gitea-db: + container_name: gitea-db + image: mcr.microsoft.com/mssql/server:2019-latest + environment: + SA_PASSWORD: System128! + ACCEPT_EULA: Y + MSSQL_MEMORY_LIMIT_MB: 2048 + TZ: Europe/Rome + volumes: + - gitea-db-vol:/var/opt/mssql + networks: + - gitea-net + restart: unless-stopped + ports: + - 41433:1433 + + gitea: + image: docker.gitea.com/gitea:1.23.5 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mssql + - GITEA__database__HOST=gitea-db + - GITEA__database__NAME=Gitea + - GITEA__database__USER=sa + - GITEA__database__PASSWD=System128! + restart: always + networks: + - gitea-net + volumes: + - gitea-data-vol:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - 3000:3000 + - 3022:22 + depends_on: + - gitea-db + +volumes: + gitea-db-vol: + name: gitea-db-vol + gitea-data-vol: + name: gitea-data-vol + +networks: + gitea-net: + name: gitea-net +``` + +# Backup Gitea hostato su Docker + +1. Creare una cartella temporanea `tmp` all'interno del volume docker `gitea-data-vol` + +```bash +cd /var/lib/docker/volumes/gitea-data-vol/_data/ +mkdir tmp +chmod 777 tmp +``` + +2. Lanciare il comando `dump` all'interno del container `gitea` + +```bash +docker exec -u git -it -w /data/tmp gitea bash -c '/usr/local/bin/gitea dump -c /data/gitea/conf/app.ini' +``` + +Questo produrrà un file di backup `gitea-dump-xxxxxxxxxx.zip` nella cartella `tmp` appena creata (`/data/tmp` del container, ovvero `/var/lib/docker/volumes/gitea-data-vol/_data/tmp` del host). + +**Spostare questo file su un server sicuro.** + +Sarà necessario anche un backup del database Gitea. + +# Restore Gitea hostato su Docker + +Questa procedura serve a ripristinare la configurazione e le repository Gitea partendo da un backup nel formato `gitea-dump-xxxxxxxxxx.zip` + +Si prende per scontato che vi sia già in esecuzione uno stack simile a quello prodotto dal [docker-compose.yml](#docker-compose) + +1. Creare una cartella temporanea `tmp` all'interno del volume docker `gitea-data-vol` e spostarvi il file `gitea-dump-xxxxxxxxxx.zip` + +```bash +cd /var/lib/docker/volumes/gitea-data-vol/_data/ +mkdir tmp +mv /path/to/gitea-dump-xxxxxxxxxx.zip tmp/ +chmod 777 -R tmp +``` + +2. Aprire la console all'interno del container Gitea + +```bash +docker exec --user git -it gitea bash +``` + +3. Scompattare l'archivio `gitea-dump-xxxxxxxxxx.zip` + +```bash +cd /data/tmp +unzip gitea-dump-xxxxxxxxxx.zip -d dump +``` + +4. Sovrascrivere i file dell'installazione provvisoria con quelli del backup + +```bash +#mv dump/data/* /data/gitea/ +cp -r dump/data/* /data/gitea/ + +#mv dump/repos/* /data/git/repositories/ +cp -r dump/repos/* /data/git/repositories/ + +chown -R git:git /data +/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks +``` + +5. Impostare l'utente `git` come proprietario della cartella `/data` + +```bash +chown -R git:git /data +``` + +6. (facoltativo) Ripristinare gli Hook + +```bash +/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks +``` + +> **NOTA:** se aprendo una repository dalla GUI di Gitea si ottiene l'errore
+> `The Git data underlying this repository cannot be read. Contact the administrator of this instance or delete this repository.`
+> è possibile che le repository nella cartella `/data/git/repositories/`, ovvero `/var/lib/docker/volumes/gitea-data-vol/_data/git/repositories/`, siano nella posizione sbagliata, ad esempio al di fuori della cartella dell'organizzazione.
+>> **ESEMPIO 1**
+>> Organizzazione: Logika
+>> Repository: ModalitaAssistenza
+>> Percorso: /data/git/repositories/Logika/ModalitaAssistenza.git +> +>> **ESEMPIO 2**
+>> Utente: alberto.morettin
+>> Repository: TempRepo
+>> Percorso: /data/git/repositories/alberto.morettin/TempRepo.git \ No newline at end of file