diff --git a/README.md b/README.md index a01227d..3191f2e 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,19 @@ * [borg](borg) - semplice programma per i backup * [folding@home](folding@home/) - calcolo distrubuito per la ricerca medica * [dozzle](dozzle/) - interfaccia web per controllare i log dei container -* [gitea](gitea/) - simil-github +* [gitea](gitea/) - un'alternativa a github/gitlab locale * [homer](homer/) - semplice pagina per tutti i servizi che volete -* [jellyfin](jellyfin/) - simil-netflix -* [komga](komga/) - gestore per manga/comics -* [metube](metube/) - frontend per youtube-dl +* [jellyfin](jellyfin/) - server per la gestione e la transcodifica di musica, film e serie tv +* [komga](komga/) - server per la gestione di manga e comics +* [metube](metube/) - frontend moderno per youtube-dl * [miniflux](miniflux/) - gestore di feed minimale * [navidrome](navidrome/) - ascolto e gestione di file musicali (MP3/M4A/etc) -* [podgrab](podgrab/) - ascolto e gestione di podcast +* [podgrab](podgrab/) - server per l'ascolto e gestione di podcast * [syncthing](syncthing/) - simil-dropbox ma decentralizzato * [transmission](transmission/) - client bittorrent -* [unifi-controller](unifi/) - gestione dell'hardware ubiquiti -* [watchotwer](watchtower/) - aggiornamento automatico delle immagini +* [unifi-controller](unifi/) - interfaccia web per la gestione dell'hardware ubiquiti +* [wger](wger/) - server per la gestione della vostra alimentazione e allenamenti +* [watchotwer](watchtower/) - aggiornamento automatico dei container * altri in arrivo, stay tuned™
diff --git a/wger/.env b/wger/.env new file mode 100644 index 0000000..3369895 --- /dev/null +++ b/wger/.env @@ -0,0 +1,40 @@ +# Generale +POSTGRES_DATA=/home/docker/wger/db +WGER_DATA=/home/docker/wger/static +WGER_DATA=/home/docker/wger/media +WGER_WEBUI_PORT=8000 + +# Postgres +POSTGRES_DB=wger +POSTGRES_USER=wger +POSTGRES_PASSWORD=wger + +# Database +DJANGO_DB_ENGINE=django.db.backends.postgresql +DJANGO_DB_DATABASE=wger +DJANGO_DB_USER=wger +DJANGO_DB_PASSWORD=wger +DJANGO_DB_HOST=db +DJANGO_DB_PORT=5432 + +# Cache +DJANGO_CACHE_BACKEND=django_redis.cache.RedisCache +DJANGO_CACHE_LOCATION=redis://cache:6379/1 +DJANGO_CACHE_TIMEOUT= 1296000 # 60*60*24*15, 15 giorni +DJANGO_CACHE_CLIENT_CLASS=django_redis.client.DefaultClient + +DJANGO_MEDIA_ROOT=/home/wger/media + +# Da cambiare con qualcosa di diverso +SECRET_KEY = CAMBIAMIPERFAVORE + +# Registrazioni +ALLOW_REGISTRATION = True +ALLOW_GUEST_USERS = True +FROM_EMAIL=info@example.co + +# Altro +DJANGO_DEBUG=False +WGER_USE_GUNICORN=True +TIME_ZONE=Europe/Amsterdam +SITE_URL=http://localhost:8000 \ No newline at end of file diff --git a/wger/README.md b/wger/README.md new file mode 100644 index 0000000..cfbf308 --- /dev/null +++ b/wger/README.md @@ -0,0 +1,172 @@ +# Wger +
+ +
+ +## Descrizione +[![Sito ufficiale](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=firefoxbrowser&style=flat&label=&message=Homepage)](https://wger.de/) [![Sorgente](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=github&style=flat&label=&message=Sorgente)](https://github.com/wger-project/wger) [![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/wger/base) [![Docs](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=readthedocs&style=flat&label=&message=Docs)](https://wger.readthedocs.io) [![Demo](https://img.shields.io/static/v1.svg?color=555555&logoColor=ffffff&logo=jekyll&style=flat&label=&message=Demo)](https://wger.de/it/user/demo-entries) + +Wger è un server per la gestione della vostra alimentazione e allenamenti: +- Interfaccia web multilingua e di facile comprensione +- Per comodità esiste anche un'app per [Android](https://play.google.com/store/apps/details?id=de.wger.flutter) + +## Struttura file e cartelle +``` +/home/ +└── docker/ + └── wger/ + ├── db/ + ├── media/ + ├── static/ + ├── .env + └── docker-compose.yml +``` + +* `db/` - cartella dove i dati del database vengono salvati +* `media/` - cartella dove le foto di wger vengono salvate +* `static/` - cartella dove i dati di wger 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 +Le credenziali per il primo login sono le seguenti: +* Username: **admin** +* Password: **adminadmin** + +### network +```bash +docker network create custom-bridge +``` +oppure +```bash +podman network create custom-bridge +``` + +### docker-compose +`docker-compose.yml` +```yml +version: "3.8" +services: + db: + container_name: wger-db + image: postgres:13-alpine + security_opt: + - no-new-privileges:true + networks: + - custom-bridge + restart: always + env_file: .env + volumes: + - ${POSTGRES_DATA:-/home/docker/wger/db}:/var/lib/postgresql/data + - /etc/localtime:/etc/localtime:ro + healthcheck: + test: ["CMD", "pg_isready", "-U", "wger"] + interval: 1m30s + timeout: 10s + retries: 3 + start_period: 10s + + cache: + container_name: wger-cache + image: redis:alpine + security_opt: + - no-new-privileges:true + networks: + - custom-bridge + restart: always + + wger: + container_name: wger + image: wger/devel + networks: + - custom-bridge + restart: unless-stopped + depends_on: + - db + - cache + ports: + - ${WGER_WEBUI_PORT:-8000}:8000 + env_file: .env + volumes: + - ${WGER_STATIC:-/home/docker/wger/static}:/wger/static + - ${WGER_MEDIA:-/home/docker/wger/media}/wger/media + +networks: + custom-bridge: + name: custom-bridge + driver: bridge +``` + +`.env` +```bash +# Generale +POSTGRES_DATA=/home/docker/wger/db +WGER_DATA=/home/docker/wger/static +WGER_DATA=/home/docker/wger/media +WGER_WEBUI_PORT=8000 + +# Postgres +POSTGRES_DB=wger +POSTGRES_USER=wger +POSTGRES_PASSWORD=wger + +# Database +DJANGO_DB_ENGINE=django.db.backends.postgresql +DJANGO_DB_DATABASE=wger +DJANGO_DB_USER=wger +DJANGO_DB_PASSWORD=wger +DJANGO_DB_HOST=db +DJANGO_DB_PORT=5432 + +# Cache +DJANGO_CACHE_BACKEND=django_redis.cache.RedisCache +DJANGO_CACHE_LOCATION=redis://cache:6379/1 +DJANGO_CACHE_TIMEOUT= 1296000 # 60*60*24*15, 15 giorni +DJANGO_CACHE_CLIENT_CLASS=django_redis.client.DefaultClient + +DJANGO_MEDIA_ROOT=/home/wger/media + +# Da cambiare con qualcosa di diverso +SECRET_KEY = CAMBIAMIPERFAVORE + +# Registrazioni +ALLOW_REGISTRATION = True +ALLOW_GUEST_USERS = True +FROM_EMAIL=info@example.com # Indirizzo da dove vengono mandate le email + +# Altro +DJANGO_DEBUG=False +WGER_USE_GUNICORN=True +TIME_ZONE=Europe/Amsterdam +SITE_URL=http://localhost:8000 +``` + +## Reverse proxy +Ancora non ho previsto l'uso di un reverse proxy (Vedi [Todo](#Todo)) + +## Aggiornamento +### Automatico +Usando [watchtower](../watchtower) il container si aggiorna automaticamente + +### Manuale +1. `docker-compose pull` +2. `docker-compose up -d` +3. `docker image prune` + +## Backup e ripristino +### Backup +Usate [borg](../borg_backup) per fare i backup giornalieri dell'intera cartella `wger` + +### Ripristino +Per una maggiore spiegazione sui passaggi da fare, controllate [qua](../borg_backup#user-content-controllare-la-cartella-dei-backup) +1. fermare il container `docker-compose down` +2. cancellare l'intera cartella `wger` +3. dal backup copiare la cartella `wger` +4. far ripartire il container `docker-compose up -d` + +## Todo +Implementare: +- reverse proxy: **[caddy](https://caddyserver.com/)** o **[traefik](https://doc.traefik.io/traefik/)** diff --git a/wger/docker-compose.yml b/wger/docker-compose.yml new file mode 100644 index 0000000..0d35ccb --- /dev/null +++ b/wger/docker-compose.yml @@ -0,0 +1,50 @@ +version: "3.8" +services: + db: + container_name: wger-db + image: postgres:13-alpine + security_opt: + - no-new-privileges:true + networks: + - custom-bridge + restart: always + env_file: .env + volumes: + - ${POSTGRES_DATA:-/home/docker/wger/db}:/var/lib/postgresql/data + - /etc/localtime:/etc/localtime:ro + healthcheck: + test: ["CMD", "pg_isready", "-U", "wger"] + interval: 1m30s + timeout: 10s + retries: 3 + start_period: 10s + + cache: + container_name: wger-cache + image: redis:alpine + security_opt: + - no-new-privileges:true + networks: + - custom-bridge + restart: always + + wger: + container_name: wger + image: wger/devel + networks: + - custom-bridge + restart: unless-stopped + depends_on: + - db + - cache + ports: + - ${WGER_WEBUI_PORT:-8000}:8000 + env_file: .env + volumes: + - ${WGER_STATIC:-/home/docker/wger/static}:/wger/static + - ${WGER_MEDIA:-/home/docker/wger/media}/wger/media + +networks: + custom-bridge: + name: custom-bridge + driver: bridge \ No newline at end of file