5 ms·
I trialed setting up my own nextcloud instance a while back. It's still very complex to get working in docker. From memory, the card/caldav traefik rewrites are
by francis-io 6y ago
I trialed setting up my own nextcloud instance a while back. It's still very complex to get working in docker. From memory, the card/caldav traefik rewrites are still not working. SSL was complex to setup with Collabora, and still required manual GUI steps to link into Nextcloud (my biggest pet peeve). I also remember getting the initial setup wrong a few times in the initial setup wizard, which required me to delete my whole local config.
Performance was a little slow, but that could be down to my own hardware. It was just consumer grade i5 cpu and a basic SSD, in docker.
The examples they provide are good, but you cant really provide for every different config. I wanted to use traefik, so I brought the complexity on my self.
Heres where I got too, eventually stopping my trial of Nextcloud. https://gist.github.com/francis-io/935be5679b3308f5fbc3fe1bb78ae885 https://gist.github.com/francis-io/935be5679b3308f5fbc3fe1bb...
My wishlist for future effort by the devs would be:
- Fully configured via env vars (and in Collabora too).
- I would rather any config or state be kept in the db. It makes backup and restore easier. Env vars could be set in the db, and any restart, has the set env vars overwrite anything in the db. I want to have confidence that I can restore a db + files and have a working service come back up. At the moment, I don't trust Nextcloud to always come back up.
- Keep config separate from user files.
- Focus on improving speed (which it looks like they are adressing with this post).
- Focus on more app usability. I remember in portrait it being hard to use.
Overall, the software is great and I'm looking forward to the future, but to store my personal data I will need to have a little more confidence.
(I can't seem to make a bullet point list on HN)
- 3np 6y agoThanks for sharing your experience, given how I treat software it sounds like I would extremely frustrated with some things that "the average user" doesn't mind at all. Sounds like I should give it another year or two before considering Nextcloud (because her, I assume they're working on it!) > (I can't seem to make a bullet point list on HN) For short points: indent with two spaces (longer become horrible on mobile). Or just do double newlines between the points like a normal person (;))
- StavrosK 6y agoHmm, my Docker-Compose file is much less complicated: https://www.pastery.net/zykzva/ https://www.pastery.net/zykzva/ Though I do have a 4-line Caddy config and a Postgres server on the host.
- moistbar 6y agoGP is using a Traefik reverse proxy, which is where the extra stuff comes from.
- johnchristopher 6y agoPlus, OP is using Collabora and caldav/cardav which needs some special consideration when reverse-proxying.
- moistbar 6y agoBoth of those work out of the box for me on my reverse proxy. I use the built-in Collabora install though so maybe that's where the difference comes from.
- johnchristopher 6y agoI'd have to double check but I think I had to tweak some things regarding caldav (but it may have been years ago).
- mlk 6y agothey don't even have a decent CLI client for file syncing, I know you can use any webdav client but the GUI client seems more efficient than anything else I've tried.
- romseb 6y agoAlthough I use docker for most projects, for Nextcloud I decided to go with the snap version, which was very easy to use.[1] [1] https://github.com/nextcloud/nextcloud-snap https://github.com/nextcloud/nextcloud-snap
- moistbar 6y agoI think you might be overcomplicating this, because the Docker setup of Nextcloud is one of the easiest and most streamlined I've seen on Docker Hub. Including the proxy, all you need to give it is the DNS name, the ports you want open, and where you want the data stored. Traefik is also huge overkill for a personal server, IMO. jwilder/nginx-proxy is braindead simple and has a companion container that will automatically get you LetsEncrypt certs when you make a new container that asks for it. The only thing the default Docker install is missing is a TURN server for group voice/video calls.
- johnchristopher 6y ago> The examples they provide are good, but you cant really provide for every different config. I wanted to use traefik, so I brought the complexity on my self. I am with you. But. It's incredible how so many open source projects keep on delivering docker-compose files that either are not compatible with a reverse proxy or bundle a reverse proxy themselves. It seems like the use case of having traefik/ngninx as a RP which does the SSL termination over how many services you want is fringe practice. Most of the apps/services I encountered could be blind to a RP but I often have to play around it. > I want to have confidence that I can restore a db + files and have a working service come back up. At the moment, I don't trust Nextcloud to always come back up. Well. Today OVH tried to upgrade things and it broke my VPS AND my owncloud db. Hopefully I had some sql dump backup but the DB was so borked I couldn't login in it even from root inside the container or in any other way. I mean: don't trust the app provider to do the backup, set something up yourself.
- ohthehugemanate 6y agoWow this could not be more different from my experience trying the same. I ran nextcloud in docker-compose for 2 years, with nginx doing SSL termination in front. Granted I wasn't using the official image; I use the linuxserver.io releases for all my other services so I use them for this, too. Nextcloud's config is all in the DB, except for database and cache connection information in a single config file. PHP's config is in a separate file and some env vars (eg timezone). I've recently moved it into my home k3s cluster (yeah, i'm one of those people), which means traefik is my new reverse proxy. Works fine. I found I can get traefik to do the DAV redirects at least with the k8s Ingress config, but I don't need to since the linuxserver image includes the redirects in its' nginx configuration.