So far my experience with Nextcloud has been that it is a pain in the arse to install, and once it’s installed is slow as anything. Literally couldn’t run it on my pi 3b, now got it up and running pretty nicely on a NUC but it’s still not great. Have caching set up.
I have the notes app installed on my android phone and I can never used rich text editing because it gives timeout error.
This shouldn’t be this complicated. All I want is to de-Google my documents and notes, and self-host my kanban. I don’t really need the rest though it’s nice to have the options.
Do people use alternatives? Am I doing something completely wrong? I set it up using nginx which I know is not supported, but the alternative using Docker AIO didn’t allow me to use custom port easily.
Nginx is supported and a good choice. What database are you using? I’d recommend MariaDB.
Nginx alone will not speed up Nextcloud. Use Postgres instead of MySQL and configure Redis and PHP Cache. This will speed up most. And Nginx is not officially support, see here
The documentation says nginx is not officially supported: https://docs.nextcloud.com/server/19/admin_manual/installation/nginx.html
I am using mariadb
Ah right, sorry; the company doesn’t support it directly but the docs provide an example. To me as tinkerer that was solid enough 😂😅
Pydio and Seafile are alternatives I’ve tried. Pydio was pretty fast too. I agree with you on Nextcloud, I want to like it but I inevitably start having issues and it’s slow even after tuning. It just tries to do too much and shouldn’t be that complex to spin up a file server.
To be honest I’m not interested in the file sharing side of nextcloud as I use Syncthing, I’m more interested in the utilities (eg notes, kanban) and the office capabilities. I want to replace gsuite
I dont know about kanban but the other stuff can be achieved via webdav. All major webservers can do that or you just use filebrowser.org (a selfhosted webdav server with built-in user management).
I’ve also had nothing but troubles with NC. I tried the AIO option and while it was easier to setup, it was still slow on both a VPS and my local unRAID server. I find that if you’re simply using it as a sync point for apps instead of regularly using the web portal, it’s ok. Seafile is insanely fast. But it stores the data in chunks on the server which some do not like as it can complicate backups. I work around that by just backing up from one of my always on clients since the seadrive client mounts the chunks into usable format. That works great.
Then again, NC is way more app than I need.
For speed Seafile absolutely smokes Nextcloud.
If you create an account they’ll give a pro license (limited to 3 users) for free. Or you can stick with the always free community edition which works great too.
I use Syncthing for my files, I don’t need a Web ui so it’s great and handles huge directories easily.
Go for the AllinOne (AIO) Installation! Had huge performance issues first (Nextcloudpi Docker & normal Nextcloud Docker) and none with the current install.
You get a self servicing (updates/installation/etc.) docker install with backups and administration portal.
From the instructions it looked like anything other than the default ports is not supported in AIO. I want to host other sites on this server without much complication.
So use a reverse proxy like Nginx Proxy Manager
Yes, a reverse proxy can fix this issue.
Wdym nginx is not supported? It very much is. Nextcloud is a pain to set up but after fiddling with settings for a day or two you can get it working smoothly. In my experience there are no good alternatives to it.
The documentation says it is not officially supported: https://docs.nextcloud.com/server/19/admin_manual/installation/nginx.html
My bad, thought you meant support as incompatibilities. Offical support doesn’t matter much to you since you are not using an enterprise license.
It runs quite nicely on my Pi 3 with Apache and no Docker. I only use cloud storage, but the rest seems to work fine if needed. Maybe switching to a supported configuration would help?
Just want to say that I’ve been there. There was a time my Nextcloud install was incredibly slow. Fortunately (or unfortunately?), it is featureful enough and widely supported that once you figure this issue out, it is a nice service to keep running.
For me, adding Redis was essential. It doesn’t really make sense to me why (nothing I do on Nextcloud is intensive or data heavy) but it has greatly improved the performance of my app.
My entire setup is a containerized Nextcloud, Nextcloud Cron, MariaDB (if I knew Postgres was an option, I would’ve chosen that), and Redis:
version: '2' services: nextcloud: container_name: nextcloud image: nextcloud:27-apache restart: unless-stopped environment: - MYSQL_PASSWORD=nextcloud - MYSQL_HOST=db - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud labels: - 'public-service=true' - 'traefik.enable=true' - 'traefik.http.routers.cloud.rule=Host(`nextcloud.some.domain`)' - 'traefik.http.routers.cloud.tls=true' - 'traefik.http.services.cloud.loadbalancer.server.port=80' volumes: - /some/data/dir/nextcloud/data:/var/www/html - /some/external/dir:/wew:ro nextcloud-cron: image: nextcloud:27-apache restart: unless-stopped command: [/cron.sh] environment: - MYSQL_HOST=db - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=nextcloud volumes: - /some/data/dir/nextcloud/data:/var/www/html - /some/external/dir/:/wew:ro db: image: mariadb:10.4 restart: unless-stopped environment: MYSQL_DATABASE: nextcloud MYSQL_USER: nextcloud MYSQL_ROOT_PASSWORD: nextcloud volumes: - /some/data/dir/nextcloud/db:/var/lib/mysql mysqldump: image: mariadb:10.4 depends_on: [db] # restart: never # cronjob labels: - 'cron.schedule=0 0 8 * * ?' entrypoint: [mysqldump, -h, db, -u, nextcloud, -pnextcloud, --all-databases, -r, /out/nextcloud.sql] user: root volumes: - /some/data/dir/nextcloud/db-dump:/out redis: image: redis restart: unless-stopped
For what it’s worth you can convert the database to postgres if you want. I tried it out a few weeks ago and went flawlessly.
https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/db_conversion.html
I’ll try this next time I need to restore the DB from backup, cheers!
Yes, redis should be part of the standard install. Not doing it is just setting yourself up for disappointment.
Also I believe postgress has better performance than mariadb so no reason not to use that if you are setting it up from scratch.
Can I ask why the separate NC container for cron? Also, I presume the mysqldump container is for easy db backups?
The separate cron container made the most sense to me. Other variants “work” but imo are mostly workarounds to avoid setting up a real cronjob. Beyond this I have no real reason, nor can I vouch that is is more or less performant than others.
Yes, the mysqldump container is for easier restores. It’s much easier to restore from a .sql file than a raw data dir that was copied while the DB was running ;) (speaking from experience…)
How is NC using redis? I can’t see any links from the NC container
I configured it in config.php directly, probably following https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html#id2
'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.distributed' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'redis', 'port' => 6379, ),
Thanks!
cryptpad si quite good
Synology is the answer.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters AP WiFi Access Point HTTP Hypertext Transfer Protocol, the Web NUC Next Unit of Computing brand of Intel small computers RPi Raspberry Pi brand of SBC SATA Serial AT Attachment interface for mass storage SBC Single-Board Computer SSD Solid State Drive mass storage VPS Virtual Private Server (opposed to shared hosting) nginx Popular HTTP server
7 acronyms in this thread; the most compressed thread commented on today has 6 acronyms.
[Thread #125 for this sub, first seen 10th Sep 2023, 09:45] [FAQ] [Full list] [Contact] [Source code]
I have nextcloud running on docker on a Raspberry Pi 4 and I’d say the performance is comparable to Onedrive web interface. If you’re getting timeouts then something must be wrong with the setup, not the machine it’s running on. Using Postgres instead of MySQL or using an SSD instead of HDD is not going to help your issue.
For Kanban I use wekan, because it has more features. Nextcloud I host using snap, which I cannot 100% recommend because it sometimes has troubles upgrading to the latest version. Still, for me it causes less trouble than a manual install.
I seriously suggest you give Nextcloud another go, this time under Docker. Very simple to do.
Save the following in a new folder as docker-compose.yml
version: '3' volumes: db: services: nextcloud-app: image: nextcloud container_name: nextcloud-app restart: always volumes: - ./data:/var/www/html environment: - MYSQL_PASSWORD=changeme - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=nextcloud-db ports: - "80:80" links: - nextcloud-db nextcloud-db: image: mariadb container_name: nextcloud-db restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=changeme - MYSQL_PASSWORD=changeme - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud
run this command in the folder -
docker-compose up -d
open http://localhost
Is the mariadb a default part of nextcloud? I’ve seen posts saying to use a separate db so things can be backed up easier, so I was wondering if that’s how you have it set up above.
In this setup the DB is not part of Nextcloud. Both are running in separate services aka containers, which can be administrated independently from each other.
No you can use other databases. It is separate here