MasterpieceDockerCompose/wger/README.md

200 lines
5.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Wger
<div align="center">
<img src="https://raw.githubusercontent.com/wger-project/wger/master/wger/software/static/images/workout.png" />
</div>
## 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
`docker`
```bash
docker network create custom-bridge
```
`podman`
```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/server
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
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 `wger`
### Ripristino
Per una maggiore spiegazione sui passaggi da fare, controllate [qua](../borg#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/)**
---
Licenza: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt)