OpenCloud¶
File sync + sharing fork de ownCloud Infinite Scale. Go, microservicios internos, sin DB externa (metadata en filesystem). RAM ~100-300MB. https://cloud.matias7235.com.ar
📁 Rutas y configs¶
| Qué | Dónde |
|---|---|
| Compose base | /opt/docker/opencloud/docker-compose.yml |
| Compose overrides | external-proxy/opencloud.yml, custom-collabora.yml |
| Variables de entorno | /opt/docker/opencloud/.env |
| Config interna | /opt/docker/opencloud/config/opencloud.yaml (generada al primer inicio) |
| Datos usuarios | /mnt/hdd_2tb/opencloud_data (Disco WD Blue 1TB) |
Contenedores: opencloud-opencloud-1, opencloud-collaboration-1 Puerto: 9200
Versión: 7.1.0 (OC_DOCKER_TAG=7.1.0 en .env).
🧩 Apps integradas externas¶
| App | Servicio externo | Doc |
|---|---|---|
| Office (Collabora) | Collabora standalone en office.matias7235.com.ar |
Collabora.md |
🛠️ Comandos útiles¶
# Ver logs
docker logs -f opencloud-opencloud-1
docker logs -f opencloud-collaboration-1
# Reiniciar contenedores individuales
docker restart opencloud-opencloud-1
docker restart opencloud-collaboration-1
# Recrear todo el stack (necesario si se cambió .env o custom ymls)
cd /opt/docker/opencloud && docker compose down && docker compose up -d
# Verificar containers activos
cd /opt/docker/opencloud && docker compose ps
# Test de salud (desde el host)
curl http://localhost:9200 # Debe devolver HTML de login
curl http://localhost:9300/wopi/files/ # Debe devolver 404 (esperado)
curl http://localhost:9980/hosting/discovery # XML de Collabora
# Forzar regeneración de config (si se cambian env vars sensibles)
cd /opt/docker/opencloud && docker compose down && sudo rm -f config/opencloud.yaml && docker compose up -d
💾 Backups y Restauración¶
OpenCloud no tiene DB externa — todo está en filesystem:
# Backup de config
sudo tar czf /tmp/opencloud-config-$(date +%F).tar.gz /opt/docker/opencloud/config/
# Backup de datos de usuario
sudo tar czf /tmp/opencloud-data-$(date +%F).tar.gz /mnt/hdd_2tb/opencloud_data/
⚙️ Tareas comunes¶
Usuario y password por defecto:
Configurar Office (Collabora externo):
OpenCloud ya viene configurado via custom-collabora.yml. No requiere config extra desde la UI. Detalles en Collabora.md.
Actualizar OpenCloud:
Si después del upgrade hay "Invalid credentials" en los logs, ver "Problemas comunes" abajo.
🔥 Problemas comunes¶
| Problema | Solución |
|---|---|
| "Invalid credentials" para service users al upgradear | Al pasar de 6.x a 7.x, los hashes argon2 del BoltDB (idm.boltdb) dejan de ser válidos. Script de fix: sudo /opt/scripts/opencloud/fix-idm-passwords.sh (detener containers antes). Service users: idp (idp_password), reva (reva_password), libregraph (idm_password), admin (admin_password) |
Authentication failed al loguearse |
Secrets entre config y data no coinciden. cd /opt/docker/opencloud && docker compose down && sudo rm -rf /mnt/hdd_2tb/opencloud_data/* && sudo rm -f config/opencloud.yaml && docker compose up -d |
| Office no abre documentos (500 o error en iframe) | Ver Collabora.md → Problemas comunes. Causa más frecuente: falta proof key en Collabora |
Error 502 desde cloud.matias7235.com.ar |
Verificar que el contenedor OpenCloud esté corriendo: docker ps |
| WOPI host not authorized | Verificar regex de NEXTCLOUD_DOMAIN_REGEX en /opt/docker/collabora/.env |
Cambios en .env no surten efecto |
Usar docker compose down && docker compose up -d (no restart) |
CSP bloquea JS (script-src, unsafe-eval) |
El CSP template tiene ${IDP_DOMAIN\|keycloak.opencloud.test} que no se resuelve bien. Editar /opt/docker/opencloud/config/opencloud/csp.yaml: reemplazar las referencias a keycloak.opencloud.test por cloud.matias7235.com.ar y agregar 'unsafe-eval' en script-src |