Seafile CE + ONLYOFFICE: sync veloce e editing collaborativo a costo zero
Cos'è
Seafile Community Edition (AGPLv3, v13.0) è un server self-hosted di sincronizzazione, condivisione e backup file. ONLYOFFICE Document Server (AGPLv3) aggiunge l'editing di Word, Excel e PowerPoint nel browser.
Insieme sostituiscono Dropbox + Microsoft 365 con un'unica infrastruttura, a costo zero.

Cosa fa Seafile CE
- Sync a blocchi — I file sono suddivisi in blocchi da 1 MB; si trasferisce solo ciò che cambia
- Selective sync — Scegli quali cartelle sincronizzare su ogni dispositivo
- Version history + cestino — Ogni modifica crea una versione recuperabile
- Librerie e gruppi — Repository con permessi, condivisione, link pubblici/privati
- SeaDoc 2.0 — Editor collaborativo (markdown, tabelle, whiteboard)
- Wiki / Knowledge Base — Wiki interne basate su SeaDoc
- Viste multiple — Tabella, griglia, kanban, galleria
- Tag gerarchici + proprietà file estese — Metadata custom
- Seafile AI — Generazione automatica di tag e descrizioni (con modello LLM self-hosted, nessun dato lascia il server)
- Crittografia end-to-end per librerie
- HTTPS automatico via Caddy + Let's Encrypt
- Multi-piattaforma: Windows, macOS, Linux, Android, iOS, Web
Cosa NON è in CE: LDAP/SSO nativo, audit log strutturato, clustering HA, antivirus automatico, supporto tecnico ufficiale.
ONLYOFFICE nel browser
Apri un .docx, .xlsx o .pptx nel browser Seafile → si apre ONLYOFFICE. Editing collaborativo in tempo reale, file locking, versioning gestito da Seafile.
Configurazione (2 passi):
- Nel
docker-compose.yml, il container ONLYOFFICE richiede soloJWT_ENABLED=trueeJWT_SECRET=... - In
seahub_settings.py(generato al primo avvio nel volume):
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = True
ONLYOFFICE_APIJS_URL = 'https://seafile.tuadominio.it/onlyofficeds/web-apps/apps/api/documents/api.js'
ONLYOFFICE_FILE_EXTENSION = ('doc','docx','ppt','pptx','xls','xlsx','odt','fodt','odp','fodp','ods','fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx','pptx','xlsx')
ONLYOFFICE_JWT_SECRET = 'tua_jwt_secret'
ONLYOFFICE_FORCE_SAVE = True Riavvia: docker compose restart seafile. Fatto
Deploy: Docker Compose in 30 minuti
services:
db:
image: mariadb:10.11
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=tua_password_db
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql
networks: [seafile-net]
oods:
image: onlyoffice/documentserver:latest
container_name: seafile-oods
networks: [seafile-net]
environment:
- JWT_ENABLED=true
- JWT_SECRET=tua_jwt_secret
volumes:
- /opt/onlyoffice/data:/var/www/onlyoffice/Data
memcached:
image: memcached:1.6.18
container_name: seafile-memcached
entrypoint: memcached -m 256
networks: [seafile-net]
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "80:80"
- "443:443"
volumes:
- /opt/seafile-data:/shared
- /opt/seafile/ssl:/shared/ssl
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=tua_password_db
- TIME_ZONE=Europe/Rome
- SEAFILE_ADMIN_EMAIL=admin@tuadominio.it
- SEAFILE_ADMIN_PASSWORD=tua_password_admin
- SEAFILE_SERVER_LETSENCRYPT=true
- SEAFILE_SERVER_HOSTNAME=seafile.tuadominio.it
depends_on: [db, memcached, oods]
networks: [seafile-net]
networks:
seafile-net: Requisiti: minimo 2 core / 4 GB RAM / 50 GB SSD. Consigliato (5-10 utenti): 4 core / 8 GB RAM / 200 GB SSD.
Perché è più veloce di Nextcloud
| Seafile CE | Nextcloud | |
| Sync engine | C (nativo) | PHP (interpretato) |
| Modello sync | Blocchi (solo chunk modificati) | File interi (WebDAV) |
| LAN throughput | ~150–250 MB/s | ~50–100 MB/s |
| File grande, piccola modifica | 1–4 MB di delta | File intero |
| RAM idle | 150–256 MB | 300–512 MB |
| RAM attiva (10 utenti) | 256–512 MB | 1–2 GB |
| Componenti Docker | 3 | 4+ (Apache, PHP-FPM, DB, Redis, cron) |
Benchmark (r/selfhosted): sync di 11 GB → 6 min Seafile, 17 min Nextcloud.
Non è tuning: è architettura. C vs PHP, blocchi vs file interi.
Il profilo utente: un termometro della filosofia
Seafile: nome, email, telefono. Tre campi. Non chiede altro.
Nextcloud: nome, email, telefono, indirizzo, sito web, Twitter, Bluesky, Fediverse, organizzazione, ruolo, headline, biografia, data di nascita, avatar, e un campo "Pronouns" (they/them, she/her, he/him, custom) che è:
- Nativo nel core
- Visibile a tutti i colleghi di default
- Non utilizzato da nessun componente del software
- Rimovibile solo dall'admin, esplicitamente, in
config.php
La issue #40017 che ha portato all'implementazione contiene:
"Neopronouns never really caught on outside of maybe queer communities but this would at least support specifying a generic gender-neutral they/them/…"
Nel 2020, un thread nel forum ufficiale ha avviato la riscrittura dell'interfaccia tedesca in "lingua di genere". La community si è spaccata:
"Für mich ist und bleibt das ganze eine simple und primitive Art seinen Willen bzw Meinung anderen aufzuzwingen." — utente HutziLo stesso di Nextcloud, con 3 stack + 1 dashboard
Invece di un monolite da 400+ app, hai 3 docker-compose.yml che parti solo quando servono, e Dashy come porta d'ingresso unica.
Stack 1 — Core: Seafile + ONLYOFFICE + MariaDB + Memcached.
→ File sync, office, wiki, SeaDoc.
Stack 2 — Comms: Conduit (Matrix) + Jitsi + Radicale.
→ Chat (FluffyChat), videochiamate, calendario e contatti.
Stack 3 — Sec: Keycloak + LLDAP + ClamAV + Meilisearch + Loki + Promtail + Grafana.
→ SSO, directory utenti, antivirus, full-text search, audit log con dashboard, query e alerting via email (~200 MB RAM totali). Nextcloud ha un file JSON da aprire con grep.
Dashy — Un'unica URL con link a tutti i servizi, status check, hotkey. Nessun profilo utente.
Il vantaggio dell'isolamento: se Jitsi crasha, Seafile continua a sincronizzare. Se Meilisearch va in tilt, la chat non si ferma. In Nextcloud, un'app in errore può bloccare l'intero server PHP per tutti. Con 3 stack separati, il fix è un docker compose restart sul singolo container — non un downtime totale.
Conclusione
Seafile Community Edition + ONLYOFFICE è la combinazione più completa a costo zero per chi vuole un'infrastruttura file + office self-hosted. La v13.0 con AI, viste multiple, SeaDoc 2.0 e Wiki la rende sorprendentemente moderna.
Dove Nextcloud offre 400+ app in un unico pacchetto, Seafile offre un motore di sync veloce e leggero che si estende con container dedicati: Keycloak per SSO, Jitsi per videochiamate, Radicale per calendario, ClamAV per antivirus. Il risultato è lo stesso — un stack completo — ma ogni componente ha uno scopo chiaro, si può aggiungere solo quando serve, e non consuma risorse in background.
La differenza non è tecnica: è filosofica.
Seafile fa una cosa — sincronizzare e condividere file — e la fa bene. Il profilo utente contiene nome, email, telefono. Tre campi. Non chiede altro.
Nextcloud vuole essere tutto per tutti: file, calendario, contatti, chat, videochiamate, 400+ app. E nel farlo, chiede all'utente di dichiarare i propri pronomi di genere (they/them, she/her, he/him, custom) in un campo nativo nel core, visibile a tutti i colleghi di default, che nessun servizio di sync, nessun workflow, nessun algoritmo del software utilizza. Chiede all'utente di dichiarare la propria data di nascita, il proprio ruolo, la propria headline, il proprio sito web, il proprio account Twitter, il proprio account Bluesky, il proprio account Fediverse — in un software di file sync. E nel 2020 ha avviato una riscrittura sistematica della propria interfaccia tedesca per renderla "genderneutral", cambiando stringhe nel codice sorgente per ragioni che nessun componente del software richiede.
Un software di file sync non ha il diritto architetturale di chiedere i pronomi di un utente, la sua data di nascita o il suo account Bluesky. Ma c'è un punto che va oltre l'architettura: imporre a tutti i colleghi di un'azienda un campo che riflette l'ideologia di una parte della community open source non è una feature, è un'opinione vestita da codice.