This commit is contained in:
2026-03-09 12:47:44 +01:00
parent f594827c16
commit 8683bf5a5e
2 changed files with 107 additions and 18 deletions

16
.env
View File

@@ -1,28 +1,30 @@
# Database Configuration # Database Configuration
MYSQL_ROOT_PASSWORD=strong_root_password_here MYSQL_ROOT_PASSWORD=kfhsdi3GDAhk3las
MYSQL_PASSWORD=nextcloud_password_here MYSQL_PASSWORD=XBCF$UJCLOUDF
MYSQL_DATABASE=nextcloud MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud MYSQL_USER=nextcloud
# Nextcloud Configuration # Nextcloud Configuration
NEXTCLOUD_PORT=8282 NEXTCLOUD_PORT=8282
NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=admin_password_here NEXTCLOUD_ADMIN_PASSWORD=Z.p8ibwg4jri
NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 192.168.4.0/24 192.168.4.62 drive.pyconetwork.it
# Protocol and Host (per reverse proxy) # Protocol and Host (per reverse proxy)
OVERWRITEPROTOCOL=http OVERWRITEPROTOCOL=https
OVERWRITEHOST=localhost:8282 OVERWRITEHOST=drive.pyconetwork.it
# Collabora Configuration # Collabora Configuration
COLLABORA_PORT=9980 COLLABORA_PORT=9980
COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com COLLABORA_DOMAIN=nextcloud\\.drive\\.pyconetwork\\.it
COLLABORA_USERNAME=admin COLLABORA_USERNAME=admin
COLLABORA_PASSWORD=collabora_password_here COLLABORA_PASSWORD=collabora_password_here
COLLABORA_DICTIONARIES=it en_US en_GB de_DE fr_FR es_ES COLLABORA_DICTIONARIES=it en_US en_GB de_DE fr_FR es_ES
# Note: # Note:
# - COLLABORA_DOMAIN deve usare escape per i punti: nextcloud\\.domain\\.com # - COLLABORA_DOMAIN deve usare escape per i punti: nextcloud\\.domain\\.com
# - NEXTCLOUD_TRUSTED_DOMAINS: separa i domini con spazi (non virgole)
# Includi: localhost, IP locali, subnet LAN, domini pubblici
# - Dopo l'installazione, configura Collabora in Nextcloud andando in: # - Dopo l'installazione, configura Collabora in Nextcloud andando in:
# Impostazioni -> Amministrazione -> Collabora Online # Impostazioni -> Amministrazione -> Collabora Online
# URL: http://collabora:9980 # URL: http://collabora:9980

109
README.md
View File

@@ -23,13 +23,19 @@ MYSQL_PASSWORD=<password-nextcloud>
NEXTCLOUD_ADMIN_PASSWORD=<password-admin> NEXTCLOUD_ADMIN_PASSWORD=<password-admin>
COLLABORA_PASSWORD=<password-collabora> COLLABORA_PASSWORD=<password-collabora>
# Configura i domini # Configura i domini (IMPORTANTE: separa con SPAZI, non virgole)
NEXTCLOUD_TRUSTED_DOMAINS=localhost,your-domain.com NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 192.168.4.0/24 your-domain.com
OVERWRITEHOST=your-domain.com OVERWRITEHOST=your-domain.com
OVERWRITEPROTOCOL=https
COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com
``` ```
**Importante**: Nel campo `COLLABORA_DOMAIN`, i punti devono essere escaped con `\\`. **Importante**:
- Nel campo `COLLABORA_DOMAIN`, i punti devono essere escaped con `\\`
- `NEXTCLOUD_TRUSTED_DOMAINS` deve contenere domini **separati da spazi** (non virgole)
- Includi: localhost, IP locali, subnet LAN (es. 192.168.4.0/24), e domini pubblici
- Per accesso locale: usa `OVERWRITEPROTOCOL=http` e `OVERWRITEHOST=localhost:8282`
- Per reverse proxy HTTPS: usa `OVERWRITEPROTOCOL=https` e `OVERWRITEHOST=your-domain.com`
### 2. Avvia i servizi ### 2. Avvia i servizi
@@ -46,7 +52,7 @@ docker-compose logs -f nextcloud
### 4. Accedi a Nextcloud ### 4. Accedi a Nextcloud
Apri il browser e vai a: `http://localhost:8080` (o la porta configurata) Apri il browser e vai a: `http://localhost:8282` (o la porta configurata nella variabile `NEXTCLOUD_PORT`)
- Username: `admin` (o quello configurato in `.env`) - Username: `admin` (o quello configurato in `.env`)
- Password: quella impostata in `NEXTCLOUD_ADMIN_PASSWORD` - Password: quella impostata in `NEXTCLOUD_ADMIN_PASSWORD`
@@ -63,7 +69,7 @@ Apri il browser e vai a: `http://localhost:8080` (o la porta configurata)
## Porte utilizzate ## Porte utilizzate
- `8080`: Nextcloud Web UI - `8282`: Nextcloud Web UI (configurabile in `.env` con `NEXTCLOUD_PORT`)
- `9980`: Collabora Online - `9980`: Collabora Online
## Volumi ## Volumi
@@ -111,16 +117,56 @@ docker-compose up -d
2. Controlla i log: `docker-compose logs collabora` 2. Controlla i log: `docker-compose logs collabora`
3. Verifica che l'URL in Nextcloud sia: `http://collabora:9980` 3. Verifica che l'URL in Nextcloud sia: `http://collabora:9980`
### Errore "Trusted domain" ### Errore "Trusted domain" o "Password non funziona"
Aggiungi il tuo dominio in `.env` nella variabile `NEXTCLOUD_TRUSTED_DOMAINS`: Questo errore può manifestarsi come:
``` - "Access through untrusted domain"
NEXTCLOUD_TRUSTED_DOMAINS=localhost,192.168.1.100,your-domain.com - "Unknown error while checking password" (anche con credenziali corrette)
- Impossibilità di configurare storage esterni
**Causa**: `trusted_domains` non configurato correttamente nel `config.php`.
**Soluzione rapida** - Aggiungi i tuoi domini in `.env` (separa con spazi, non virgole):
```bash
NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 192.168.4.0/24 your-domain.com
``` ```
Poi riavvia: Poi riavvia:
```bash ```bash
docker-compose restart nextcloud docker compose restart nextcloud
```
**Se il problema persiste** (istanza già inizializzata prima della modifica `.env`), correggi manualmente con `occ`:
```bash
# Imposta ogni dominio come elemento separato dell'array
docker exec nextcloud-app php occ config:system:set trusted_domains 0 --value='localhost'
docker exec nextcloud-app php occ config:system:set trusted_domains 1 --value='192.168.4.0/24'
docker exec nextcloud-app php occ config:system:set trusted_domains 2 --value='your-domain.com'
docker exec nextcloud-app php occ config:system:set trusted_domains 3 --value='192.168.4.62'
# Verifica anche che overwrite.cli.url sia corretto
docker exec nextcloud-app php occ config:system:set overwrite.cli.url --value='https://your-domain.com'
```
**Verifica la configurazione**:
```bash
docker exec nextcloud-app cat /var/www/html/config/config.php | grep -A 6 'trusted_domains'
```
Il formato corretto nel `config.php` deve essere:
```php
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.4.0/24',
2 => 'your-domain.com',
),
```
**NON deve essere** una stringa concatenata come:
```php
1 => 'localhost,192.168.4.0/24,your-domain.com', // ERRORE
``` ```
### Performance lente ### Performance lente
@@ -136,7 +182,48 @@ Se usi un reverse proxy (nginx, Traefik, etc.), configura:
1. Imposta `OVERWRITEPROTOCOL=https` in `.env` 1. Imposta `OVERWRITEPROTOCOL=https` in `.env`
2. Imposta `OVERWRITEHOST=your-domain.com` 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) 3. Configura il reverse proxy per puntare a `localhost:8282` (Nextcloud) e `localhost:9980` (Collabora)
4. Assicurati che il reverse proxy invii gli header corretti:
```
X-Forwarded-For
X-Forwarded-Proto
X-Forwarded-Host
```
## Comandi occ utili
Il comando `occ` (ownCloud Console) permette di gestire Nextcloud da CLI:
```bash
# Verifica configurazione sistema
docker exec nextcloud-app php occ config:system:get trusted_domains
docker exec nextcloud-app php occ config:system:get overwritehost
# Imposta trusted domains
docker exec nextcloud-app php occ config:system:set trusted_domains 0 --value='localhost'
docker exec nextcloud-app php occ config:system:set trusted_domains 1 --value='your-domain.com'
# Verifica stato sistema
docker exec nextcloud-app php occ status
# Manutenzione
docker exec nextcloud-app php occ maintenance:mode --on
docker exec nextcloud-app php occ maintenance:mode --off
# Esegui aggiornamenti
docker exec nextcloud-app php occ upgrade
# Verifica integrità file
docker exec nextcloud-app php occ integrity:check-core
# Gestione app
docker exec nextcloud-app php occ app:list
docker exec nextcloud-app php occ app:enable files_external
# Cache
docker exec nextcloud-app php occ files:scan --all
docker exec nextcloud-app php occ files:cleanup
```
## Sicurezza ## Sicurezza