++ caricamento
This commit is contained in:
28
.env
Normal file
28
.env
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Database Configuration
|
||||||
|
MYSQL_ROOT_PASSWORD=strong_root_password_here
|
||||||
|
MYSQL_PASSWORD=nextcloud_password_here
|
||||||
|
MYSQL_DATABASE=nextcloud
|
||||||
|
MYSQL_USER=nextcloud
|
||||||
|
|
||||||
|
# Nextcloud Configuration
|
||||||
|
NEXTCLOUD_PORT=8080
|
||||||
|
NEXTCLOUD_ADMIN_USER=admin
|
||||||
|
NEXTCLOUD_ADMIN_PASSWORD=admin_password_here
|
||||||
|
NEXTCLOUD_TRUSTED_DOMAINS=localhost
|
||||||
|
|
||||||
|
# Protocol and Host (per reverse proxy)
|
||||||
|
OVERWRITEPROTOCOL=https
|
||||||
|
OVERWRITEHOST=your-domain.com
|
||||||
|
|
||||||
|
# Collabora Configuration
|
||||||
|
COLLABORA_PORT=9980
|
||||||
|
COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com
|
||||||
|
COLLABORA_USERNAME=admin
|
||||||
|
COLLABORA_PASSWORD=collabora_password_here
|
||||||
|
COLLABORA_DICTIONARIES=it en_US en_GB de_DE fr_FR es_ES
|
||||||
|
|
||||||
|
# Note:
|
||||||
|
# - COLLABORA_DOMAIN deve usare escape per i punti: nextcloud\\.domain\\.com
|
||||||
|
# - Dopo l'installazione, configura Collabora in Nextcloud andando in:
|
||||||
|
# Impostazioni -> Amministrazione -> Collabora Online
|
||||||
|
# URL: http://collabora:9980
|
||||||
152
README.md
Normal file
152
README.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# Nextcloud con Collabora Online - Docker Compose
|
||||||
|
|
||||||
|
Setup completo di Nextcloud con Collabora Online usando Docker Compose.
|
||||||
|
|
||||||
|
## Componenti
|
||||||
|
|
||||||
|
- **Nextcloud**: Piattaforma di cloud storage e collaboration
|
||||||
|
- **MariaDB**: Database per Nextcloud
|
||||||
|
- **Redis**: Cache per migliorare le performance
|
||||||
|
- **Collabora Online**: Suite office online integrata
|
||||||
|
- **Cron**: Job cron per task schedulati di Nextcloud
|
||||||
|
|
||||||
|
## Installazione
|
||||||
|
|
||||||
|
### 1. Configura le variabili d'ambiente
|
||||||
|
|
||||||
|
Modifica il file `.env` con i tuoi valori:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Cambia le password
|
||||||
|
MYSQL_ROOT_PASSWORD=<password-sicura>
|
||||||
|
MYSQL_PASSWORD=<password-nextcloud>
|
||||||
|
NEXTCLOUD_ADMIN_PASSWORD=<password-admin>
|
||||||
|
COLLABORA_PASSWORD=<password-collabora>
|
||||||
|
|
||||||
|
# Configura i domini
|
||||||
|
NEXTCLOUD_TRUSTED_DOMAINS=localhost,your-domain.com
|
||||||
|
OVERWRITEHOST=your-domain.com
|
||||||
|
COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com
|
||||||
|
```
|
||||||
|
|
||||||
|
**Importante**: Nel campo `COLLABORA_DOMAIN`, i punti devono essere escaped con `\\`.
|
||||||
|
|
||||||
|
### 2. Avvia i servizi
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Verifica lo stato
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
docker-compose logs -f nextcloud
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Accedi a Nextcloud
|
||||||
|
|
||||||
|
Apri il browser e vai a: `http://localhost:8080` (o la porta configurata)
|
||||||
|
|
||||||
|
- Username: `admin` (o quello configurato in `.env`)
|
||||||
|
- Password: quella impostata in `NEXTCLOUD_ADMIN_PASSWORD`
|
||||||
|
|
||||||
|
### 5. Configura Collabora in Nextcloud
|
||||||
|
|
||||||
|
1. Accedi a Nextcloud come amministratore
|
||||||
|
2. Installa l'app **Nextcloud Office** (ex Collabora Online):
|
||||||
|
- Menu → App → Sezione "Office & text" → Installa "Nextcloud Office"
|
||||||
|
3. Vai in **Impostazioni** → **Amministrazione** → **Collabora Online**
|
||||||
|
4. Seleziona "Usa il tuo server"
|
||||||
|
5. Inserisci l'URL: `http://collabora:9980`
|
||||||
|
6. Salva
|
||||||
|
|
||||||
|
## Porte utilizzate
|
||||||
|
|
||||||
|
- `8080`: Nextcloud Web UI
|
||||||
|
- `9980`: Collabora Online
|
||||||
|
|
||||||
|
## Volumi
|
||||||
|
|
||||||
|
I dati persistenti sono salvati nei volumi Docker:
|
||||||
|
|
||||||
|
- `db_data`: Database MariaDB
|
||||||
|
- `nextcloud_data`: File e configurazioni Nextcloud
|
||||||
|
|
||||||
|
## Backup
|
||||||
|
|
||||||
|
Per fare il backup:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Backup dei volumi
|
||||||
|
docker run --rm -v nextcloud_db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz -C /data .
|
||||||
|
docker run --rm -v nextcloud_nextcloud_data:/data -v $(pwd):/backup alpine tar czf /backup/nextcloud_backup.tar.gz -C /data .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Comandi utili
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Avvia i servizi
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Ferma i servizi
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# Visualizza i log
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Riavvia un servizio specifico
|
||||||
|
docker-compose restart nextcloud
|
||||||
|
|
||||||
|
# Aggiorna le immagini
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Collabora non si connette
|
||||||
|
|
||||||
|
1. Verifica che il container sia attivo: `docker-compose ps`
|
||||||
|
2. Controlla i log: `docker-compose logs collabora`
|
||||||
|
3. Verifica che l'URL in Nextcloud sia: `http://collabora:9980`
|
||||||
|
|
||||||
|
### Errore "Trusted domain"
|
||||||
|
|
||||||
|
Aggiungi il tuo dominio in `.env` nella variabile `NEXTCLOUD_TRUSTED_DOMAINS`:
|
||||||
|
```
|
||||||
|
NEXTCLOUD_TRUSTED_DOMAINS=localhost,192.168.1.100,your-domain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
Poi riavvia:
|
||||||
|
```bash
|
||||||
|
docker-compose restart nextcloud
|
||||||
|
```
|
||||||
|
|
||||||
|
### Performance lente
|
||||||
|
|
||||||
|
Redis è già configurato per la cache. Puoi verificare che sia attivo:
|
||||||
|
```bash
|
||||||
|
docker-compose exec nextcloud php occ config:system:get redis host
|
||||||
|
```
|
||||||
|
|
||||||
|
## Reverse Proxy (opzionale)
|
||||||
|
|
||||||
|
Se usi un reverse proxy (nginx, Traefik, etc.), configura:
|
||||||
|
|
||||||
|
1. Imposta `OVERWRITEPROTOCOL=https` in `.env`
|
||||||
|
2. Imposta `OVERWRITEHOST=your-domain.com` in `.env`
|
||||||
|
3. Configura il reverse proxy per puntare a `localhost:8080` (Nextcloud) e `localhost:9980` (Collabora)
|
||||||
|
|
||||||
|
## Sicurezza
|
||||||
|
|
||||||
|
- **Cambia tutte le password** nel file `.env`
|
||||||
|
- Non esporre le porte direttamente su Internet senza un reverse proxy con HTTPS
|
||||||
|
- Considera l'uso di certificati SSL/TLS (Let's Encrypt)
|
||||||
|
- Mantieni aggiornate le immagini Docker
|
||||||
|
|
||||||
|
## Licenza
|
||||||
|
|
||||||
|
Questo è un setup di esempio. Consulta le licenze dei singoli progetti:
|
||||||
|
- Nextcloud: AGPLv3
|
||||||
|
- Collabora Online: MPLv2 (versione CODE - Community)
|
||||||
89
docker-compose.yml
Normal file
89
docker-compose.yml
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: mariadb:10.11
|
||||||
|
container_name: nextcloud-db
|
||||||
|
restart: always
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
|
||||||
|
volumes:
|
||||||
|
- db_data:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: nextcloud-redis
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
|
||||||
|
nextcloud:
|
||||||
|
image: nextcloud:latest
|
||||||
|
container_name: nextcloud-app
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "${NEXTCLOUD_PORT}:80"
|
||||||
|
volumes:
|
||||||
|
- nextcloud_data:/var/www/html
|
||||||
|
environment:
|
||||||
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
|
- MYSQL_USER=${MYSQL_USER}
|
||||||
|
- MYSQL_HOST=db
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
|
||||||
|
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
|
||||||
|
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS}
|
||||||
|
- OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL}
|
||||||
|
- OVERWRITEHOST=${OVERWRITEHOST}
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
|
||||||
|
collabora:
|
||||||
|
image: collabora/code:latest
|
||||||
|
container_name: nextcloud-collabora
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "${COLLABORA_PORT}:9980"
|
||||||
|
environment:
|
||||||
|
- domain=${COLLABORA_DOMAIN}
|
||||||
|
- username=${COLLABORA_USERNAME}
|
||||||
|
- password=${COLLABORA_PASSWORD}
|
||||||
|
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
|
||||||
|
- dictionaries=${COLLABORA_DICTIONARIES}
|
||||||
|
cap_add:
|
||||||
|
- MKNOD
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
|
||||||
|
cron:
|
||||||
|
image: nextcloud:latest
|
||||||
|
container_name: nextcloud-cron
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- nextcloud_data:/var/www/html
|
||||||
|
entrypoint: /cron.sh
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db_data:
|
||||||
|
driver: local
|
||||||
|
nextcloud_data:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
nextcloud-network:
|
||||||
|
driver: bridge
|
||||||
Reference in New Issue
Block a user