I tried Nextcloud a while back and was not impressed - I had issues withe the speed of the Windows sync that were determined to be “normal” with no roadmap to getting fixed. I’m now planning to move off Windows desktop so that won’t be an issue - so I thought I’d try again.
I went to nextcloud.com, clicked on Download-> Nextcloud server -> All-in-one -> Docker image - Setup AIO. This took me to the github README at Docker section. I’m already running docker for other things so I read the instructions, setup a new filesystem for my data directory and ran the suggested docker command with an appropriate “–env NEXTCLOUD_DATADIR=”. I’m then left with a terminal running docker in the foreground - not a great way to run a background server but ok, I’ve been around for a while and can figure out how to make it autostart in the background ongoing. So I move on to the next step - open my browser at the appropriate URL and I’m presented with a simple page asking me to “Log in using your Nextcloud AIO passphrase:”. I don’t have a Nextcloud AIO passphrase and nothing I’ve read so far has mentioned it. When I search for it I get some results on how to reset it, but not much help. I could probably figure that out too, but after reading some more I found that Nextcloud requires a public hostname and can’t work with a local name or IP address. I’m already running my home LAN with OpenVPN and access it from anywhere as “local” - I don’t really want to create a new path into my home network just for Nextcloud.
I’m sorry - I know this sounds like a disgruntled rant and I guess it is. I just want to check that I’m not missing obvious things before I give up again. All I want is a simple file sync setup like onedrive but without the microsoft.
I haven’t used nextcloud in years, but last I read about it was to avoid AIO at all cost. There is another version and for some reason AIO was shit and not AIO was OK. Can’t remember why though.
That seems to be the case. Really sucks that the documentation at nextcloud.com directs people to the AIO. I guess they hope that if you have a bad time trying to install your own server you might buy their cloud service.
It’s the easiest way to get stuff running, so I’m guessing that’s why. But it’s far from the best way.
I haven’t used nextcloud but it seems frustrating that there isn’t any really good selfhosted file cloud. Nextcloud is really chunky and inefficient but it seems to be the best option despite that.
There are a few decent options, all with some caveats:
- Seafile - wicked fast, but uses a funky disk format, so you need either a FUSE layer or the web UI/API to access anything
- OCIS/OpenCloud - default install uses a funky file format, but you can change this to POSIX if you want (experimental on OCIS, might be default now on OpenCloud?)
- others - probably work fine, but they get less blog attention
I’m playing with OCIS and I like it so far. There was some funkiness when I had things misconfigured, but now that it’s working, I like it.
Try Synching. Its More of a file sync than file share/Cloud but it’s very lightweight and works without issue. I use it to sync many of my important files to have them always accessible offline on all devices.
I wanted something that has OnlyOffice integration and basically an selfhosted Google Drive, so tried Nexcloud as the most popular solution… but… it was a pain to set up, its internal workings make handling reverse proxying a pain and it feels extremely slow.
I will try out Seafile, they seem to have just the 2 things I need and nothing more.
There’s a lot of stuff going on here, so let me break down your post for each issue:
-
You need to understand the difference between a
docker run
command, and detaching to run a container in the background. Just running it with ‘run’ keeps it in the foreground. -
For the passphrase issue: https://github.com/nextcloud/all-in-one/discussions/1786
-
Lastly, if you’re not familiar with containers, and this is a single purpose machine, you’d be better off just running the bare project on the host. If there’s no need for containerization, just skip it.
You need to understand the difference between a docker run command, and detaching to run a container in the background. Just running it with ‘run’ keeps it in the foreground.
Yes, I understand this. I was just highlighting that it’s not a great experience for a new user to follow the instructions to setup a server and be left with it running in the foreground.
For the passphrase issue: https://github.com/nextcloud/all-in-one/discussions/1786
Thanks! This should get me past my current hurdle so I can do some more testing. Again - not a great experience to have to come to a forum to get help to find a passphrase. I’m pretty sure I didn’t miss any steps?
Lastly, if you’re not familiar with containers, and this is a single purpose machine, you’d be better off just running the bare project on the host. If there’s no need for containerization, just skip it.
I’m familiar with containers, but think they’re overused. Stupid little things that are a single Python script (for example) shipping as a Docker image! But, I thought Nextcloud was complex enough to be worthy of a container? This is not a single purpose machine, but I’m an old, retired, sysadmin - I have no problem running a few different servers on the same host.
Are you referring to the “Archive” Community Project installation method?
No, just clone the project and run it without a container. The docs cover that as well.
-
Nextcloud file sync is a convenient centralized solution but it’s not designed for performance. Nothing about Nextcloud is designed for performance. It’s an “everything and the kitchen sink” multi-user cloud solution. That is nice for a lot of reasons. Nextcloud Sync is essentially a drop-in replacement for Google Drive or OneDrive or Dropbox that multiple people can use and that’s awesome. It works the same way as those tools, which is a blessing and a curse.
Nextcloud is for the same role you SAY you want, “All I want is a simple file sync setup like onedrive but without the microsoft.” That’s what it is. But I don’t think it’s what you’re actually asking for, and it’s not supposed to be. It has its role, and it’s good at that role. But I don’t think you actually want what you say you want, because in the details you’re describing something totally different.
If you want performance sync for just files, SyncThing is made for this. It has better conflict resolution. It has better decentralized connectivity, it doesn’t need the public IP server. It uses a very different approach to configuration. Its configuration is front-loaded, it takes a fair bit of work to get things talking to each other. It’s not suitable for the same things Nextcloud Sync is. But once you have it set up it’s rock solid reliable and blazing fast.
Personally I use both SyncThing and NextCloud Sync. I use them for different purposes, in different situations. NextCloud Sync takes care of my Windows documents and pictures, I use it to share photos with my family. I use it to sync one of the factors for my password vault. It works fine for this.
I also use SyncThing for large data sets that require higher performance. I have almost 400 GB of shared program data, (and game data/saved games), some of which I sync with SyncThing to multiple workstations in different parts of the country. It can deal with complex simultaneous usage that sometimes causes conflicts. It supports fine tuning sync strategies and files to ignore using configuration dotfiles. It’s a great tool. I couldn’t live without it. But I use both. They both have their place.
I use both as well. They server different purposes. When my wife wants to take a quick scan of a paper document and archive it instantly, or have pictures auto-upload, or open and edit a document we worked on a year ago, all on her IPhone, the Nextcloud client works great and really has no competition in the iOS world. When I want to keep the files in my home directory, including some big, regularly changing files, instantly synced between computers and hosted VMs, Syncthing is amazing. I also add Syncthing shares as an external source in Nextcloud, so I can open those files via the web. As others have said, Nextcloud works fine, provided you don’t start installing all sorts of “apps” you don’t need -stick to the basics.
And here I am having used it for a decade and perfectly happy. I try other ones like Owncloud every once in a while and find them lacking. It was slow once upon a time but if you changed to postgres and used redis, it improved immensely. Today it’s quite fast and the sync has been working great for a long time.
Use docker-compose with the AIO and it’ll be a lot easier to manage. There’s example compose files in the github repo.
Yeah, I can see how someone that has “grown up with it” could be happy. But as and experienced sysadmin coming at it for the first time - the documentation is a bit lacking.
Well, when I moved to the AIO, the documentation was plain wrong on several points. I submitted a bunch of changes that I had to do to make it work and they worked those changes in for the most part. Now it seems pretty workable, as a friend of mine used it to set his instance up and said it seemed to go fairly smoothly.
I’ve never used the AIO image. I’ve heard it’s weird. This is my compose file for the community image:
compose.yaml
volumes: db: services: db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - db:/var/lib/mysql secrets: - mysql_root_password - mysql_nextcloud_password environment: - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password - MYSQL_PASSWORD_FILE=/run/secrets/mysql_nextcloud_password - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud nextcloud: image: nextcloud restart: always ports: - 8080:80 depends_on: - db links: - db volumes: - /var/www/html:/var/www/html - /srv/data:/srv/data secrets: - mysql_nextcloud_password environment: - MYSQL_PASSWORD_FILE=/run/secrets/mysql_nextcloud_password - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db secrets: mysql_root_password: file: ./secrets/mysql_root_password.txt mysql_nextcloud_password: file: ./secrets/mysql_nextcloud_password.txt
You can access it on port 8080 and perform the initial setup manually. For the database server address, use the
db
hostname. You’ll have to use a reverse proxy for HTTPS.You could also try OpenCloud, which is a Go rewrite of ownCloud.
You could also try OpenCloud, which is a Go rewrite of ownCloud.
A fork of the internal Owncloud Go rewrite.
Yup:
- ownCloud -> NextCloud
- ownCloud Infinite Scale -> OpenCloud
I’m testing out OCIS, and will probably switch to OpenCloud.
I’ve never used the AIO image. I’ve heard it’s weird.
It does seem to be. So, I find it weird that the “core” documentation leads a new user to installing AIO.
You could also try OpenCloud, which is a Go rewrite of ownCloud.
Sounds interesting - thanks.
Seafile. It’s super fast and lightweight. There are some caveats though:
-
Data is stored in git-like chunks on the server side. There is Seafuse and Sea drive functions that you can leverage to “assemble” the data on server side for backups. I personally use rclone mount, then backup.
-
Paywall hiding some features. The community edition is free but is missing some features that pro has. Pro edition is free for 3 or less users.
-
Documentation isn’t great. The forum is active so that’s helpful, but some of the docs take some time to understand
-
Chinese owned. As far as I can tell, there is no call home for a self hosted server, so I don’t think it’s a worry in that case.
All that said, I like it much better than Syncthing for it’s selective sync. All files on each client are synced to the server. But unlike Syncthing, it doesn’t sync all data with each client. This is vital for me with some devices with small storage drives, so I would t want all files to sync. Yet I can still reach to the server from any client and pull data from any other client. Syncthing has an ignore flag, but that seemed way more trouble to setup than just sticking with Seafile.
-
Alternatives? https://filebrowser.org/
deleted by creator
Filebrowser is great, it just lacks two things 1) 2FA and 2) the always upcoming OnlyOffice integration. If we got those two nothing else could ever compete with it. It already does pre-views and text editing, but Office documents would be great.
AIO
Yeah, that one is basically a take-it-or-leave-it approach. It’s a lot easier to customize when running your own Docker stack. It grew over the years and the team tries to sell it as an all-in-one SharePoint replacement (which it can be), but that also means it turned into an even more convoluted system.
I was looking into alternatives earlier this year, maybe one of them could be a solution for you:
- Owncloud infinite scale
- opencloud.eu (fork of ocis)
- syncthing (very good, depending on what exactly you’re looking for)
- Pydio Cells
There are others, or servers like WebDAV itself.
Some notes:
- syncthing - a little complex, and the file format isn’t flat files, but they have a FUSE driver you can use if you want “flat” files; it’s wicked fast at syncing data
- OCIS/OpenCloud - default file format isn’t flat, but there is an experimental POSIX driver to get that flat file layout, in case you prefer that for backups
- Pydio - don’t know much about it, but it seems designed for large, clustered deployments
I’m playing with OCIS/OpenCloud and it seems like a good fit. I’m mostly holding off until I can figure out which to use (leaning toward OpenCloud).
Yeah setting it up the way you want is a pain, but I like it mainly for backing up photos from my phone automatically, as well as, syncing podcasts and music between devices since I moved away from Spotify and start using things like AntennaPod and Gramophone
I got 20TB in my server, might as well use it.
Oh wait, were you looking for alternatives? I guess this also works: https://filebrowser.org/
Its just web veiw to file server instead of only using things like smb or nfs
There are a number of ways to install nextcloud, and docker is only one of those.
Yes, NC isn’t ideal in many ways, but it shouldn’t be as painful as you’re describing to run it.
Docker is at least two of those, AIO vs non-AIO image.
So, use something else, like Seafile.
So, use something else
That’s why I’m here - looking for suggestions
like Seafile.
I’ll have another look - you’re not the only person to suggest it. My recollection is that it seemed to be old and not really maintained.
I’ve been running Seafile for over ten years. They released version 12.0 just last month. I’m really not sure why people have this impression that it’s not maintained.
Seafile updates slowly because it’s very much intended as an enterprise product. It has minimal bells and whistles, but the core functionality is reliable and works well. It’s more of a BlackBerry than an iPhone.
In the side by side tests I’ve seen it syncs a lot faster than Nextcloud. I keep my entire documents, downloads and picture folders synced there across three different machines, nearly 300GB of data in total, and I can wipe my laptop and sync all my files back in under and hour. File transfers basically cap out at network speed, even with large numbers of small files. I’ve used the desktop client, the drive client and the mobile client and never had any complaints with any of them.
Sidenote, if you create an account on their site they’ll give you a pro license for up to three users, free forever.
The documentation is a bit of a beast, but worth reading thoroughly. Setup is a little fiddly compared to Nextcloud (that’s a major turn off for a lot of people, understandably so). If you have questions message me and I’ll try to help. If you go with the free pro license, be sure to enable offline garbage collection, it’ll help keep your storage use under control.
Anyway, I really like it, works well for me. Definitely worth trying out.
If you want to self host your contacts and calendars and have multiple users, I still don’t think there is anything better. I hope Open Cloud gets there eventually, but right now its only the beginning.