Zelfgehost alternatief voor Dropbox: welke kiest u?
Vergelijk Nextcloud, Seafile en Syncthing voor uw eigen server. Ontdek de verschillen in synchronisatietopologie, de werkelijke VPS-kosten en waarom sync geen backup is.
Welk zelfgehost alternatief voor Dropbox moet u gebruiken?
Er zijn vier zelfgehoste alternatieven voor Dropbox die het overwegen waard zijn: Nextcloud, Seafile, Syncthing en object storage met een client erbovenop. Deze zijn niet onderling uitwisselbaar. Nextcloud is geschikt voor een huishouden of een klein team waar anderen bestanden moeten ontvangen. Seafile is geschikt voor een persoon of team dat een zeer groot aantal kleine bestanden synchroniseert, waarbij de synchronisatiesnelheid belangrijker is dan hoe de data op de schijf is opgeslagen. Syncthing is geschikt voor één persoon die zijn eigen apparaten synchroniseert, waarbij niemand van buitenaf een link nodig heeft. Object storage is geschikt voor een archief: goedkope bytes die u zelden opent.
Kies op basis van de werking van de synchronisatie voordat u functies vergelijkt. Functielijsten zien er allemaal hetzelfde uit. De topologie, oftewel welke machine de kopie bevat waar alle andere machines het over eens zijn, bepaalt of u over zes maanden nog steeds tevreden bent.
Synchronisatietopologie: een server of record, of peers zonder server
Er liggen twee ontwerpen op tafel, en het merendeel van wat volgt is afhankelijk van uw keuze.
Een server of record. Nextcloud, Seafile en object storage werken allemaal op deze manier. Eén machine, meestal een VPS (virtual private server), bevat de officiële kopie. Elk apparaat communiceert met die machine. Uw laptop kan een maand uitstaan, weer opstarten en vervolgens zelfstandig synchroniseren. Een telefoon met 6 GB vrije ruimte kan een subset bevatten, terwijl de server alles opslaat. Een browser kan de bestanden bereiken; dit is de reden waarom gedeelde links überhaupt kunnen bestaan.
Peers zonder server. Syncthing werkt op deze manier. Apparaten vinden elkaar en wisselen direct bestandslijsten uit via een versleutelde verbinding. Geen enkele kopie is leidend: een bestand bestaat op de apparaten die het bevatten en nergens anders. Twee apparaten moeten op hetzelfde moment online zijn om een wijziging tussen hen door te voeren. Er is geen URL om aan iemand te geven, omdat er geen machine is die een pagina serveert.
Hieruit volgen vier consequenties, en dit zijn de punten waar mensen vaak pas laat achter komen.
- Voor het versturen van een bestand naar iemand die geen software wil installeren, is een server of record nodig. Een link is een URL, en een URL vereist een proces dat luistert op een poort.
- Om uw bestanden te bereiken vanaf een machine die u niet beheert, bijvoorbeeld een werklaptop, is een server of record nodig.
- Een apparaat dat wekenlang uitstond, synchroniseert vanaf een server zodra het weer opstart. In een peer-opstelling synchroniseert het alleen wanneer een ander apparaat dat de data bevat ook online is. Daarom draaien veel Syncthing-gebruikers één instantie op een VPS als een altijd actieve peer.
- Opslaggebruik werkt anders. Een server of record bevat één volledige kopie, plus wat elk apparaat lokaal bewaart. Vier peers die één map delen, bevatten vier volledige kopieën, omdat elke peer de gehele map bewaart.
Nextcloud: gebruikers, groepen en publieke links
Nextcloud is een PHP-webapplicatie. Het slaat uw bestanden op als gewone bestanden in een datamap en houdt deze bij in een database. U kunt een map delen met een gebruiker, met een groep, of als een publieke link voorzien van een wachtwoord en een verloopdatum. Versiebeheer staat standaard aan en verwijderde bestanden komen eerst in een prullenbak terecht. Desktopclients zijn beschikbaar voor Linux, macOS en Windows, en de iOS- en Android-apps zijn officieel. Als uw reden om Dropbox te verlaten is dat anderen uw bestanden moeten ontvangen, dan is dit het eerlijke antwoord.
De prijs is de complexiteit van de onderdelen. Een normale installatie draait een webserver, PHP-FPM (de PHP-procesmanager), een database zoals MariaDB of PostgreSQL, en Redis voor bestandsvergrendeling. Een achtergrondtaak draait elke vijf minuten via cron of een systemd-timer. Op een 1 GB VPS zal het opstarten, maar een grote upload of een langdurig occ onderhoudscommando zal leiden tot de out-of-memory killer. Beschouw 2 GB als het minimum voor een handvol gebruikers, en reken op 4 GB zodra u meer apps inschakelt. De andere prijs is het upgraden: apps uit de app-store zijn gebouwd voor een specifieke core-release, dus controleer of de apps waar u afhankelijk van bent de volgende grote versie ondersteunen voordat u deze uitvoert.
Nextcloud wordt trager wanneer één account honderdduizenden kleine bestanden bevat, omdat elk bestand een rij is in de bestandscache-tabel en een echt bestand op de schijf, en de desktopclient deze één voor één doorloopt. Op huishoudelijke schaal komt dit nooit voor. Dimensionering, TLS (transport layer security) en back-ups worden behandeld in een Docker-gebaseerde Nextcloud-installatie met TLS en back-ups, waar u terechtkunt zodra u een besluit heeft genomen.
Eén waarschuwing over de reikwijdte. Nextcloud kan ook uw agenda, contacten, notities en fotobibliotheek beheren, en elke app die u inschakelt voegt achtergrondwerk toe en is weer een extra onderdeel dat een upgrade kan blokkeren. Als foto's het eigenlijke probleem zijn, kan een gespecialiseerde tool dit beter afhandelen: zie Immich als een zelfgehost alternatief voor Google Photos. Als documenten en wiki's het eigenlijke probleem zijn, kijk dan naar de zelfgehoste Notion-alternatieven in plaats van apps op uw bestandsserver te stapelen. Het bewerken van die documenten in de browser is weer een aparte server in plaats van een Nextcloud-app, dus weeg OnlyOffice af tegen Collabora voordat u ervan uitgaat dat het minimum van 2 GB nog steeds volstaat.
Seafile: gebouwd voor een zeer groot aantal kleine bestanden
Seafile splitst elk bestand in blokken en slaat deze op in een interne object-store die wordt geadresseerd op basis van een content-hash; dit is hetzelfde principe dat git gebruikt voor zijn objecten. De eenheid voor synchronisatie en delen is een bibliotheek in plaats van een mappenstructuur. Omdat de client blokken en één commit uploadt in plaats van één verzoek per bestand, is het synchroniseren van een map met 100.000 kleine bestanden veel sneller klaar dan bij een protocol dat per bestand werkt. Identieke blokken worden slechts eenmaal opgeslagen, waardoor een tweede kopie van een groot bestand vrijwel geen extra ruimte inneemt.
Het nadeel is dat uw bestanden op de server geen gewone bestanden meer zijn. Als u de opslagmap opent, vindt u objectbestanden met hexadecimale namen. Om gegevens te extraheren heeft u de Seafile-client nodig, of de eigen export- en fsck-tools van Seafile. Back-ups werken nog steeds, aangezien deze objecten gewone bestanden zijn, maar u kunt niet zomaar één spreadsheet herstellen met cp. Bepaal nu of dit acceptabel is, want dit is de eigenschap waar mensen achteraf vaak spijt van krijgen.
Seafile brengt een community edition en een betaalde professional edition uit. De verschillen tussen deze versies veranderen per release, dus lees de huidige voorwaarden op hun website voordat u een team rondom een specifieke functie plant. Er zijn officiële desktop- en mobiele clients beschikbaar. Versleutelde bibliotheken worden op de client versleuteld, waardoor de server ciphertext opslaat die hij niet kan lezen. Als u het wachtwoord verliest, is de bibliotheek onleesbaar, ook voor uzelf. Het openen van een versleutelde bibliotheek in de browser betekent dat u dat wachtwoord aan de websessie verstrekt; de sterkste versie van die garantie geldt daarom voor de desktop- en mobiele clients.
De benodigde resources liggen dicht bij die van Nextcloud. U draait een database, een memory cache en twee applicatieprocessen, dus 2 GB is wederom het verstandige minimum.
Syncthing: niets om op in te loggen
Syncthing is een enkel Go-binarybestand. Het monitort mappen, vindt zijn peers via een discovery-server of een relay, en synchroniseert rechtstreeks tussen apparaten. Er zijn geen accounts en geen inlogpagina voor de personen met wie u synchroniseert. U koppelt twee apparaten via een ID en accepteert de map aan beide kanten. Het is het minst bewerkelijke systeem in dit overzicht, omdat er nauwelijks iets hoeft te worden uitgevoerd.
Wat u inlevert, is de volledige kolom voor delen. De vermelding daarvoor luidt Device pairing only, no links. U kunt geen link sturen naar een klant, een accountant of een familielid. Mobiel is het andere knelpunt: Android app, no official iOS. De FAQ van het project zelf is hier duidelijk over: "Er zijn geen plannen van het huidige Syncthing-team om iOS in de nabije toekomst officieel te ondersteunen", omdat iOS achtergrondprocessen zodanig beperkt dat betrouwbare synchronisatie lastig is. iOS-gebruikers zijn aangewezen op apps van derden.
Het resourcegebruik is gering, met één belangrijk punt om te weten. Syncthing houdt een indexvermelding bij voor elk bestand dat het synchroniseert, waardoor het geheugengebruik en de eerste scan toenemen op basis van het aantal bestanden in plaats van de totale grootte. Het hashen van een grote map zal bij de eerste keer enige tijd de CPU belasten, waarna het verbruik stabiliseert. Op het kleinste VPS-abonnement draait het zonder problemen.
Conflicten worden afgehandeld door beide versies te bewaren. Wanneer twee apparaten hetzelfde bestand wijzigen terwijl ze elkaar niet kunnen zien, hernoemt Syncthing de ene kopie en bewaart deze naast de andere, waardoor u bestanden aantreft zoals notes.sync-conflict-20260802-141530-K7MB3QT.md. Er gaat niets verloren. Er wordt echter ook niets samengevoegd; u lost dit handmatig op.
Object storage met een client: goedkope bytes, geen synchronisatiemap
Object storage betekent een S3-compatibele (simple storage service) bucket, hetzij zelf gehost met MinIO, hetzij gehuurd bij een provider. U benadert deze met een tool: rclone vanaf de opdrachtregel, of een desktop-client die de bucket als schijf presenteert. Delen gebeurt via een presigned URL, een link die u genereert en die een eigen verloopdatum heeft. Versiebeheer is een bucket-instelling: Bucket versioning, off by default. Schakel dit in bij het aanmaken van de bucket, omdat het niet geldt voor objecten die u eerder heeft geüpload.
Het behandelen van een bucket als een synchronisatiemap is waar het vaak misgaat. Standaard houdt niets uw Documents-map in de gaten. rclone bisync voert tweerichtingssynchronisatie uit, en de documentatie van rclone zelf is duidelijk over de voorzichtigheid die daarbij vereist is. Waar object storage uitblinkt, is als onderliggende laag: een back-updoel of de opslaglaag achter een applicatie. Zelf-gehoste S3-compatibele object storage met MinIO behandelt de serverkant.
De kostenstructuur is hier ongebruikelijk. MinIO is één binary en verbruikt in rust weinig resources. De kosten die u daadwerkelijk betaalt, zijn voor schijfruimte. Op een VPS betekent dit een block volume dat per gigabyte wordt gehuurd, plus de bandbreedte die u verbruikt bij het verplaatsen van objecten. Geen van beide wordt weergegeven in free -h, dus lees wat een VPS daadwerkelijk per maand kost voordat u de omvang van een archief bepaalt.
Vergelijking van delen, mobiele clients en versiebeheer
The data behind this chart
[
{
"tool": "Nextcloud",
"sharing": "Public links, users and groups",
"mobile": "Official iOS and Android apps",
"versioning": "On by default, plus trash"
},
{
"tool": "Seafile",
"sharing": "Public links with password and expiry",
"mobile": "Official iOS and Android apps",
"versioning": "Library history and snapshots"
},
{
"tool": "Syncthing",
"sharing": "Device pairing only, no links",
"mobile": "Android app, no official iOS",
"versioning": "Optional per folder, off by default"
},
{
"tool": "Object storage",
"sharing": "Presigned URLs you generate",
"mobile": "Third party clients only",
"versioning": "Bucket versioning, off by default"
}
]Alle 4 opties staan op één regel. Drie daarvan kunnen een bestand overdragen aan een externe partij die enkel over een browser beschikt. Eén optie communiceert uitsluitend met apparaten die u zelf bezit. De vermelding voor versiebeheer van Seafile, Library history and snapshots, vereist een toelichting: de geschiedenis wordt per bibliotheek bijgehouden, waardoor het verwijderen van een bibliotheek ook de bijbehorende geschiedenis verwijdert.
Uw data weer exporteren
De kosten voor het verlaten van een platform zijn nu eenvoudig te controleren, maar achteraf kostbaar om te ontdekken. Controleer dit daarom voordat u zich vastlegt.
Nextcloud slaat echte bestanden op in echte mappen. Een tar van de datamap zorgt er daarom voor dat u uw documenten behoudt, zelfs als de applicatie nooit meer opstart. Syncthing doet hetzelfde op elke peer, wat hier de meest robuuste exit-strategie is: de bestanden staan simpelweg op elk apparaat. De object store van Seafile vereist Seafile of de bijbehorende exporttools om de blokken weer samen te voegen tot bestanden. Voor object storage is rclone of een vergelijkbaar hulpmiddel nodig; dit is slechts één commando verwijderd.
Synchronisatie is geen back-up, en in dat gat verliezen mensen hun data
Elke tool in dit overzicht kopieert wijzigingen tussen machines. Een verwijdering is ook een wijziging. Verwijder een map op uw laptop en de client geeft dit door aan de server, de server voert de actie uit en elk ander apparaat verwijdert de map eveneens. Ransomware volgt hetzelfde pad: het versleutelt bestanden lokaal, de client ziet gewijzigde bestanden en uploadt de versleutelde versies. De synchronisatie werkte correct. Uw data is alsnog verloren.
Prullenbakken en versiegeschiedenis verzachten dit probleem. Ze verlopen echter ook, kunnen worden geleegd door hetzelfde account dat de fout maakte en bevinden zich op dezelfde schijf als de actieve kopie. Een defect volume neemt zowel de bestanden als de geschiedenis mee.
Een back-up is een afzonderlijke kopie, op afzonderlijke hardware, die volgens een schema wordt gemaakt en waarvan u ten minste één keer een herstel heeft uitgevoerd. Maak een back-up van de database in dezelfde run als de bestanden. Het herstellen van een Nextcloud-datamap zonder de bijbehorende database levert een instantie op die niet weet dat die bestanden bestaan, en een occ files:scan achteraf herstelt de bestanden wel, maar verliest de shares en de versiegeschiedenis die in die tabellen stonden. Geplande restic-back-ups vanaf een VPS behandelt de versleutelde, gededupliceerde versie hiervan, inclusief hoe u een herstel test in plaats van er blindelings op te vertrouwen.
Mijn keuze
Voor de meeste lezers is Nextcloud de beste keuze. Wat gebruikers missen na de overstap van Dropbox, is het delen van een link met iemand die niets wil installeren, en het openen van bestanden op een smartphone. Nextcloud biedt beide via officiële clients zonder betaald abonnement; 2 GB RAM is daarvoor een redelijke prijs. Ik hanteer twee uitzonderingen. Als de map uitsluitend van u is en alleen op hardware staat die u zelf beheert, gebruik dan Syncthing. U hoeft dan geen server te patchen en geen web-login te beveiligen. Als u een werkmap met honderdduizenden bestanden synchroniseert, gebruik dan Seafile en accepteer de ondoorzichtige opslagstructuur in ruil voor de snelheid. Gebruik object storage als back-updoel onder de gekozen oplossing, niet als synchronisatietool aan de voorzijde.
FAQ
Is Syncthing een back-up voor mijn laptop?
Nee. Syncthing kopieert wijzigingen tussen apparaten, en een verwijdering is een wijziging zoals elke andere. Een bestand dat u per ongeluk verwijdert, verdwijnt daarom binnen enkele seconden van elk gekoppeld apparaat. Bestandsversiebeheer per map helpt, maar dit staat uitgeschakeld totdat u het per map inschakelt. Houd een echte back-up bij op afzonderlijke hardware, maak deze volgens een schema en voer een keer een herstel uit zodat u weet dat het herstel werkt.
Kan ik Nextcloud en Syncthing op dezelfde VPS draaien?
Ja, ze luisteren op verschillende poorten en conflicteren niet. Wijs een Syncthing-map niet aan naar de datadirectory van Nextcloud. Nextcloud houdt elk bestand bij in een database, dus bestanden die op de schijf onder de applicatie verschijnen, blijven onzichtbaar totdat u occ files:scan uitvoert. Bestanden die daaronder worden verwijderd, laten database-rijen achter die naar niets verwijzen. Geef Syncthing een eigen directory of koppel die directory aan Nextcloud als externe opslag, zodat Nextcloud weet dat het daar moet kijken.
Met welke kan ik een link delen met iemand die geen account heeft?
Nextcloud en Seafile maken beide openbare links aan, met een optioneel wachtwoord en een vervaldatum. Object storage biedt een presigned URL die automatisch stopt met werken na de door u ingestelde tijd. Syncthing heeft hier geen oplossing voor. Het deelmodel is gebaseerd op het koppelen van apparaten; de andere persoon moet dus Syncthing installeren, u een device ID geven en de map accepteren.
Hoeveel schijfruimte heeft de server nodig?
Plan voor een server die als bron dient de volledige grootte van de gedeelde data in, plus ruimte voor versiegeschiedenis en de prullenbak, en werkruimte voor uploads die bezig zijn. Versiegeschiedenis is het onderdeel dat mensen onderschatten: het bewaren van elke versie van een 2 GB bestand dat dagelijks wijzigt, groeit snel. Stel daarom vroegtijdig een retentiebeleid in. Door de data op een apart volume te plaatsen, blijft die groei weg van het root-bestandssysteem, waar een volle schijf de hele server stopt in plaats van slechts één upload.