From d620d204c71a5978e6e3087983021c611bd6dd0f Mon Sep 17 00:00:00 2001 From: miracle091 Date: Mon, 17 May 2021 09:57:45 +0200 Subject: [PATCH] Aggiunto gitea --- README.md | 3 +- gitea/.env | 17 +++++ gitea/README.md | 134 +++++++++++++++++++++++++++++++++++++++ gitea/docker-compose.yml | 37 +++++++++++ 4 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 gitea/.env create mode 100644 gitea/README.md create mode 100644 gitea/docker-compose.yml diff --git a/README.md b/README.md index eb55c98..ec0bf6c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # Attuali docker-compose * [folding@home](folding@home/) - calcolo distrubuito per la ricerca medica +* [gitea](gitea/) - simil-github personale * [metube](metube/) - frontend per youtube-dl * [miniflux](miniflux/) - feed rss minimale -* [navidrome](navidrome/) - spotify personale +* [navidrome](navidrome/) - simil-spotify personale * [watchotwer](watchtower/) - monitor per aggiornamenti * altri in arrivo, stay tuned™ diff --git a/gitea/.env b/gitea/.env new file mode 100644 index 0000000..ce4f581 --- /dev/null +++ b/gitea/.env @@ -0,0 +1,17 @@ +# 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 \ No newline at end of file diff --git a/gitea/README.md b/gitea/README.md new file mode 100644 index 0000000..2dfb836 --- /dev/null +++ b/gitea/README.md @@ -0,0 +1,134 @@ +# Gitea in docker + +
+ +
+ +# Descrizione + +* [Sito ufficiale](https://gitea.io/) +* [Repo (Github)](https://github.com/go-gitea/gitea) + +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 salvati +* `db/` - la cartella dove i dati del database vengono salvati +* `.env` - un file contenenti le variabili environment per il docker compose +* `docker-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` +```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` +```bash +# 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](#Todo)) + +# Aggiornamenti + +[Watchtower](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/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.** diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..b884a25 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,37 @@ +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 \ No newline at end of file