A new user experience: installing on Fedora at home

Hi all,

I spent the past few weeks installing Nextcloud on a Fedora Server VM at home. I wanted to share my experience so some of the struggle I went through can potentially be addressed or avoided by others. I ran Linux and Apache for years, but I hadn’t touched them in nearly 10 years. I wanted to ease back into things a bit using official packages and configurations where possible. Things are (mostly) up and running now. It has been quite a challenge though. So here’s how it went for me:

Step 1: Google “Nextcloud Fedora” and find the Wiki. Follow the instructions, beginning with “dnf install nextcloud”. Everything works, including LAMP, NC, and self-signed certs!

Step 2: Buy a domain from GoDaddy and direct it to my cloud. Then follow the Let’s Encrypt hardening instructions. That also works! Except Crontab doesn’t seem to be used, so the certbot updates won’t happen. Fix this.

Step 3: Check the NC admin panel. It turns out “dnf install nextcloud” put me 2 versions behind (10). Updates on the admin panel don’t work. Google some more and discover manual updates. Follow the NC instructions to manually download and upgrade to NC 12. Relearn about properly setting file permissions. The upgrade still fails with an error that skipping versions isn’t supported (why did the doc say to get the latest version?). Find NC 11. Manually update. Rinse and repeat with 12. Might as well update to the 13 beta while I’m at it. Try connecting to NC13. No luck. Google. What’s SELinux? Learn SELinux.

Step 4: DNS broke. ISPs here reset IPs daily? Learn the FritzBox and GoDaddy APIs and write a script to push DNS updates from the modem/router to GoDaddy DNS after processing on Apache. Learn systemd for proper automation on reboot etc.

Step 5: I learned a bit more and want to change database settings and move my data folder. Delete the DB and do a fresh manual install of NC13. Hold on, I could have just done this from the start instead of upgrading from 10 to 11 to 12 to 13?

Step 6: Let’s quash those other admin panel warnings. Install APCu. Update SSL configuration. Let’s try Redis locking while we’re at it. Install and configure Redis. PING PONG works. Internal server error accessing Nextcloud. Try everything… TCP instead of Unix socket, disable SELinux, etc. Tweak Redis until there are no warnings in log. Internal server error again. No errors or warnings logged in SELinux, Systemd, Redis, Apache, or Nextcloud. Triple check that all guides were followed properly. Give up on Redis.

Step 7: Attempt “Pretty URLs.” Try everything. Nothing works. Manually check all httpd conf files for conflicting instructions, and try turning off e.g. the Let’s Encrypt rewrites. Check active Apache modules. Confirm .htaccess is filled appropriately. Finally learn about IgnoreFrontController. Redirects work! But the pages return 503. Retry everything for days. Give up on Pretty URLs.

Step 8: Time to try upgrading from the admin panel. It seems like this will be easier than what I’ve been doing. Select “daily” and upgrade. It works! Beta4 is released. Try upgrading from the admin panel. Instant green check marks appear, but nothing happens. Manually install Beta4.

Step 9: Follow the Carsten Rieger guide to http2. Basic http2 works but the ssl configuration causes httpd to freeze on start. Give up on http2 push (thanks though - it was worth a shot!).

Step 10: Do I worry about the constant PHP errors with “Narrowing occurred during type inference”? What about index errors with “TypeError: Argument 3…”? Nah - probably just beta issues. And hopefully these Fatal WebDAV exceptions about bad requests on uploads fix themselves.

Step 11: Enough tweaking. Pretty URLs, Redis, and some backend items are broken, but the core server mostly works great. Invite friends and family and start sharing / syncing. Set them up with WebDAV so the official clients don’t automatically download everything to their local drives. Enjoy sharing family photos etc and allowing family to remotely access their files.

And that’s it everyone. I apologize for the informal tone, but I think it’s the best way to (relatively) succinctly capture my very long experience. As next steps I’ll be figuring out postfix with S/MIME so my Nextcloud emails don’t go straight to spam folders. I’ll also configure ZFS snapshots for backup, and I’ll continue playing with Nextcloud. I’m glad I stuck with it, and this has been great as a learning experience. But this has not been easy. I guess my advice for anyone new would be to use Ubuntu if you’re starting from scratch, since that’s what most people and the guides seem to be using, and to install Nextcloud “manually.” Hopefully you can avoid the issues I’ve faced.

Thanks everyone.

Just learn and use docker to avoid all these issues :wink: