this post was submitted on 23 Jun 2026
75 points (95.2% liked)

Selfhosted

60093 readers
1118 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

  4. Don't duplicate the full text of your blog or git here. Just post the link for folks to click.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require your active participation in selfhosting or related communities, or the post will be removed. No more than 10% of your posts or comments may be self-promotional, or your post will be removed. F/LOSS Exception: If your post is about a project that is completely open source & can be self-hosted in full without payment, your post is exempt from this rule as long as you continue to engage in comments.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

I've tried NextCloud before and didn't really love it and I'm now happy with a combination of syncthing and LibreOffice. But my wife wants the full google drive, with sheets, docs etc. without the google, and I think NextCloud is my best option for that.

I'm and experienced *nix admin and already have a Linux server running with both VMs and docker containers and also have a working OpenVPN setup for remote access. But I found the NextCloud setup frustrating. We had a discussion about it (here I think) and determined that this was because NextCloud would rather sell their hosted service, so they don't go out of their way to make the self hosted option easy. I get that and don't hold it against them at all.

But, now that I'm wanting to try it again, I'm looking for pointers to guides for setting up self hosted NextCloud. I've searched, but nothing I found seemed like "the one".

top 50 comments
sorted by: hot top controversial new old
[–] hamsda@feddit.org 2 points 18 hours ago

I cannot speak to collaborative editing of documents, but I do run my own docker-based nextcloud server for my own data.

I use nextcloud for:

  • files
  • photos (via memories app)
  • contacts
  • calendar
  • tasks
  • notes

I am not using the AIO docker image, I am using the nextcloud:APP_VERSION image, with APP_VERSION being 33 currently, preparing to upgrade to 34. My SSL-certificate is done via nginx-proxy-manager, as it was easy to setup on a different VM and it acts as a gateway to my internal services.

Syncing files, contacts and calendar works very well with my Graphene OS Pixel 9a (via the F-Droid App DAVx5, as well as my EndeavourOS desktop. The only thing I can really complain about is the documentation for selfhosting, as it seems to be missing some info. Or maybe I just didn't find it.

If you're interested, I can share my setup consisting of

  • docker-compose.yml for local tests
  • docker-compose.production.yml for production and staging deploy
  • Dockerfile for nextcloud + cron container (though I may replace this with ofelia)
  • Starter-Script for local tests
  • GitLab CI pipeline for production and staging deploy

It may be a bit over-engineered though.

[–] nullify3112@lemmy.world 1 points 21 hours ago

I’m very happy with Nextcloud so far. I run the AIO container on an old intel MacMini. I use files and photos. None of the other stuff.

Virtual files work ok on Linux desktop but you will lose the preview capability for non local files. Be careful with photos, it can preview and download them in a lower resolution than what you saved them as.

I use Jellyfin for my music but use nextcloud to upload and maintain the library. Huge pain in the beginning when I realized some folders with residual hidden files from a MacOS file system were being skipped and not shown in Nextcloud! Other than that, works great!

[–] benoegen@discuss.tchncs.de 3 points 1 day ago

I am hosting a NC container in docker with collabora behind traefik. Works nice, but collabora sometimes breaks due to updates (e.g. forbidden characters). NC itself is smooth though.

[–] sbeak@sopuli.xyz 1 points 1 day ago

I found the LearnLinuxTV tutorial on installing Nextcloud to be really good, and it's been running great! It's excellent if you want drive and has all the different other bits like notes, calendar, forms, office, etc.

However, you might also want to look at some other services too for specific tasks. I use Radicale for calendar, mostly because it was my first self-hosted service and I never bothered moving to the NC offering, but it's very simple to setup and works well for me. Etherpad is good if you want shareable MD notes (but isn't as great if you want private notes, for that local programs like Joplin, Marktext, and Markor are your best bet). For image hosting, Immich is always nice and has excellent mobile clients too (even on Linux mobile, you have the third-party Mimick!)

[–] chillpanzee@lemmy.ml 14 points 1 day ago (2 children)

I found Nextcloud all in one pretty easy to install, and it's been very stable and simple to keep running. Been up for about a year now.

It's the nextcloud ux that I find kinda frustrating for a family use case. It's got a hundred features you don't want, and the ones you want don't work as well as you'd expect them to. For example, calendar cannot subscribe to external calendars, which is oddly limiting. I don't uses photos, I don't use talk, and I don't use it for mail, presence, messaging, or or most of the other stuff bundled into it. I use files, Collabora office, and notes. And while collabora is reasonably functional on desktop, it's pretty bad on mobile. if she's used to gdocs, and expects something similar, she's probably not gonna like it.

[–] GreatBlueHeron@lemmy.ca 5 points 1 day ago (1 children)

Most of the mobile "office" use will be to view stuff that's maintained on desktop. I hope it can handle that?

[–] chillpanzee@lemmy.ml 2 points 1 day ago

Yeah. Not as polished or functional, but it can do that.

If she's supportive of the change for the right reasons, it'll probabky be fine. If she's being dragged into this against her will, expect some resistance. :-)

[–] autriyo@feddit.org 2 points 1 day ago (1 children)

I've gotten the calendar to subscribe to external calendars. One work related Microsoft calendar, and one for holidays.

[–] chillpanzee@lemmy.ml 1 points 1 day ago (1 children)

Sorry, I didn't describe my issue properly... Nextcloud can indeed subscribe to external calendars, but read only. This requires you to use a different app/interface to modify or update events on the external calendar, and if you need two calendar apps, it's not a particularly useful solution IMO. There are other calendars without this limitation (in fact I think every other calendar I've used recently). It's possible that I'm wrong, but it does say right in the Nextcloud interface that it's read only. If there's a way around this limitation, I'd live to hear it.

[–] autriyo@feddit.org 1 points 1 day ago (1 children)

Yeah its read only, but I don't have to edit the calendars I'm subscribed to, so it works for me.

But it would be mildly annoying if I had to edit stuff in those. I'm not sure how that would work in the first place. In my case Microsoft would have to have some sort of API, even if its just CALDav, so Nextcloud could submit the changes you make. Does Microsoft even allow for something like that?

[–] chillpanzee@lemmy.ml 1 points 22 hours ago

it's useful if you share a calendar with a friend/family member/business partner that's in a different ecosystem like Google, apple, CalDav, etc.. It has worked seamlessly for me, which is why the limitation surprised me.

[–] AbidanYre@lemmy.world 16 points 2 days ago (1 children)

I feel like I've never heard anything but complaints about the all-in-one image.

On the other hand, I've been using the community maintained docker image for a few years with minimal issues.

[–] anakin78z@lemmy.world 1 points 13 hours ago* (last edited 13 hours ago)

Here's me being the first to tell you that AIO works great for me. Installation was super easy on Linux, and not so bad on synology. Updating the containers is only 2 buttons, so that's easy as well.

[–] Shabby4582@lemmy.world 13 points 2 days ago

I ran it manually installed for years in a vm, then an LXC. It broke…a lot.

Then I ran it as docker containers with MySQL for a few years. It broke…less-ish.

Then I ran the AIO container. It was (and is) quite irritating because it’s so opinionated compared to regular docker containers. However, it hasn’t broken. It works pretty well. It’s faster than my old install and the office stuff seems to work better. However…want to do something different to the way Nextcloud AIO recommends? Nah, fuck you go kludge something together. You kinda have to do stuff their way, including things like backups.

It’s annoying to have all my other compose containers work with volumes and similar settings and Nextcloud be kinda its own thing, but I’m sticking with the AIO container. Takes a while to set up, but at least the documentation can’t be accused of being sparse.

That’s been my experience anyway. I’m sure smarter people than me have managed to bend it to their will a bit more.

[–] The_Zen_Cow_Says_Mu@infosec.pub 4 points 1 day ago (1 children)

I run nextcloud in a podman pod because I'm coocoo bananas that way. It uses authentik as an SSO provider using the nextcloud OIDC plugin. And I use the linuxserver.io container rather than the official nextcloud one because gosh darn it , it actually works

[Pod]
PodName=nextcloud
PublishPort=10443:443
PublishPort=9980:9980

Nextcloud-db.container

Description=db
Wants=network-online.target
After=network-online.target

[Service]
Restart=always

[Container]
Pod=nextcloud.pod
ContainerName=nextcloud-db
Image=docker.io/library/mariadb:11
AutoUpdate=registry
Volume=nextcloud-db.volume:/var/lib/mysql:Z
Environment=MARIADB_HOST=nextcloud
Environment=MARIADB_DATABASE=nextcloud
Environment=MARIADB_USER=nextcloud
Environment=MARIADB_PASSWORD=nextcloud
Environment=MARIADB_ROOT_PASSWORD=nextcloud

[Install]
WantedBy=default.target

Nextcloud-app.container

[Unit]
Description=Nextcloud
Wants=network-online.target
After=network-online.target

[Service]
Restart=always

[Container]
#Label=app=nextcloud
ContainerName=nextcloud-app
Pod=nextcloud.pod
Image=lscr.io/linuxserver/nextcloud:latest
AutoUpdate=registry
Volume=nextcloud-config.volume:/config:Z
#Volume=nextcloud-data.volume:/data:Z
Volume=/home/nextcloud/:/data:Z
Environment=TZ=America/New_York
Environment=PUID=1000
Environment=PGID=1000
#PublishPort=10443:443

[Install]
WantedBy=default.target

Nextcloud-office.container

[Unit]
Description=Nextcloud-office
Wants=network-online.target
After=network-online.target

[Service]
Restart=always

[Container]
#Label=app=nextcloud
ContainerName=nextcloud-office
Pod=nextcloud.pod
Image=docker.io/collabora/code:latest
AutoUpdate=registry
Environment=server_name=office.app.myserver.org
Environment=aliasgroup1="https://nextcloud.app.myserver.org/"
[Install]
WantedBy=default.target
[–] pmk@piefed.ca 1 points 1 day ago (1 children)

Always nice to see podman used well! Do you have a dedicated user or is it rootful?

[–] The_Zen_Cow_Says_Mu@infosec.pub 1 points 1 day ago (1 children)

many of the linuxserver containers don't work rootless. i didn't have luck when i tried it as a user service

[–] pmk@piefed.ca 1 points 1 day ago (1 children)

Interesting, do you remember which didn't work? I recently set up a simple service (navidrome) as rootless podman with an ansible script, but it was... there were some hoops to jump through, mainly with the uid/gid and machinectl to get it to work.

[–] The_Zen_Cow_Says_Mu@infosec.pub 1 points 1 hour ago* (last edited 1 hour ago)

the only linuxserver containers I run are nextcloud and plex. both are running as rootful containers. I also tried their calibre-web container (no longer using it), which didn't work as rootless, but worked fine as a rootful container.

most of my other non-linuxserver applications are working just fine rootless. so clearly a linuxserver thing.

[–] rtxn@lemmy.world 8 points 1 day ago* (last edited 1 day ago)

I use Docker Compose to run my Nextcloud server using the community image, which in turn lives inside an unprivileged LXC container.

compose.yaml

volumes:
  db:

services:
  db:
    image: mariadb:lts
    container_name: mariadb
    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:latest
    container_name: nextcloud
    restart: always
    ports:
      - 8080:80
    depends_on:
      - db
    volumes:
      - /var/www/html:/var/www/html
      - /srv/nextcloud:/srv
    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

Nextcloud's file storage is a mount point at /srv/nextcloud, which is backed by a ZRAID pool. The secrets are stored in files with 600 permissions. The web server is initially exposed on port 8080.

When you run the container for the first time, it will show a first time setup dialog. You'll have to fill it out manually, using mariadb for the database type and db for the database hostname.

If Nextcloud works through HTTP, you can then set up a proxy for HTTPS. I used Nginx running on the same LXC. I can't guarantee that my config is adequately secure, use it at your own risk.

10-nextcloud.conf

upstream php-handler {
	server 127.0.0.1:9000;
}

server {
	listen 80;
	listen [::]:80;
	server_name nextcloud.your.domain;
	return 301 https://$host$request_uri;
}

server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name nextcloud.your.domain;
	keepalive_timeout 70;
	client_max_body_size 32G;

	ssl_certificate /etc/nginx/ssl/ssl.crt;
	ssl_certificate_key /etc/nginx/ssl/ssl.key;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers HIGH:!aNULL:!MD5;

	add_header Referrer-Policy "no-referrer" always;
	add_header X-Content-Type-Options "nosniff" always;
	add_header X-Download-Options "noopen" always;
	add_header X-Frame-Options "SAMEORIGIN" always;
	add_header X-Permitted-Cross-Domain-Policies "none" always;
	add_header X-Robots-Tag "none" always;
	add_header X-XSS-Protection "1; mode=block" always;

	fastcgi_hide_header X-Powered-By;

	location / {
		proxy_pass http://127.0.0.1:8080/;
	}
}

To allow the web app to work using the DNS name, you'll have to edit /var/www/html/config/config.php and change/add these values:

config.php (partial)

'trusted_domains' => array(
    0 => '127.0.0.1:8080',
    1 => 'nextcloud.your.domain',
    // 2 => whatever other addresses you want to use
),
'overwrite.cli.url' => 'https://nextcloud.your.domain/',
'overwriteprotocol' => 'https',
'overwritehost' => 'nextcloud.ng.local'

If at any point you need to start over, remember to delete the contents of /var/www/html.

(edit) Forgot to mention: the web server will accept connections from all addresses, you'll need to set up a strict firewall to only allow 443 (maybe 80) and 22.

[–] cenzorrll@piefed.ca 2 points 1 day ago (1 children)

Nextcloud has worked wonderfully for pretty much everything except for the office suite, which almost never works, I've heard AIO runs it fine. I've just had more useful luck with collabora on my phone and libreoffice on desktop that I'm not willing to fuss about to try and get it to work for the fifth time just for it to break again.

As for installation, I went the nextcloudpi route on a normal PC and haven't really had any issues that weren't my own fault. The biggest struggle I had was figuring out what packages I needed to install on a minimal Debian install before I could successfully run the installer.

I did spin up a nextcloudpi lxc container on proxmox since I'm expecting to containerize it in the future and it just started up perfectly along with the normal office suite issues.

[–] Luckyfriend222@lemmy.world 1 points 1 day ago (1 children)

Install and run EuroOffice. Integrates with Nextcloud. Based off OnlyOffice. Works really well.

[–] Lazarus@mastodon.xyz 1 points 1 day ago (1 children)

@Luckyfriend222 @cenzorrll Is Euro Office ready and officially released now or still in semi-beta state ? Do you know of any simple tutorial to hook it up to an existing nextcloud stack ?

[–] Luckyfriend222@lemmy.world 2 points 1 day ago (1 children)

IIRC the first release was supposed to be early June. Have not checked. No tutorial yet, maybe I should write one. But you can basically follow ANY OnlyOffice install procedure talking about Docker image, and replace the onlyoffice with euro-office, and it should just work.

https://github.com/Euro-Office/DocumentServer -> Run this to get the server going.

https://github.com/Euro-Office/eurooffice-nextcloud -> Run this to install it into Nextcloud.

[–] Lazarus@mastodon.xyz 1 points 1 day ago

@Luckyfriend222 Tnx, this is on my todo list 🙂

[–] Damage@feddit.it 3 points 1 day ago

Nextcloud AIO container runs pretty much without fuss on my VPS, but I don't use the office features, just file syncing/sharing, contacts and calendar

[–] mhzawadi@lemmy.horwood.cloud 4 points 1 day ago (1 children)

I run nextcloud in a collection of vms, nginx with SSL offloading, php-fpm, mariaDB and a docker host. Its rock solid and is a full google replacment, with office and even an RSS reader.

https://homelab.horwood.biz/?nextcloud

Please let me know if you need more words

[–] Decronym@lemmy.decronym.xyz 2 points 1 day ago* (last edited 1 hour ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
DNS Domain Name Service/System
LXC Linux Containers
SSO Single Sign-On
VPS Virtual Private Server (opposed to shared hosting)
nginx Popular HTTP server

[Thread #25 for this comm, first seen 23rd Jun 2026, 21:00] [FAQ] [Full list] [Contact] [Source code]

[–] phoenixz@lemmy.ca 3 points 1 day ago

J love next cloud with onlyoffice but man, onlyoffice is a huge pain in the ass to get it working stable with next cloud.

It was a pain in the ass when I set that up 10 or so years ago, and it still is today. I just set it up a few weeks ago, took me days with all the problems I had and a single reboot later again it's broken

I think only office is probably the best web based office suite out there but they seriously need to look into fixing this connection crap

[–] T4V0@lemmy.pt 3 points 1 day ago* (last edited 1 day ago) (1 children)

From what I've gathered about Nextcloud, they seem to be a fast paced rolling release model, which breaks often due to their pace.

Since I didn't want to handhold it constantly, their ~~forks~~ — upstream and fork — drew my attention, OwnCloud and OpenCloud — fork from OwnCloud infinitescale — I went with OpenCloud, due to the smaller footprint required.

I'm currently using systemd container services built from the "full" docker compose version. The services I'm hosting are: OpenCloud server, Caddy as a reverse proxy and automatic cert renew, Keycloak for IDM, Collabora office, Apache Tika full version for text search and extraction and Radicale for contacts and calendar. They also recently updated to support EuroOffice.

While it has less features than NextCloud, it runs fine on a 4-core 8GB VPS, though it needs swap when starting for the first time or updating.

[–] phoenixz@lemmy.ca 3 points 1 day ago (1 children)

IIRC, next cloud is a fork from own cloud who went closed source or something. This is almost a decade ago, so take that with a grain of salt, but I remember own cloud back then pulling some corporate crap, and then next cloud came into existence

[–] T4V0@lemmy.pt 1 points 1 day ago (1 children)

Ahh yes, that's correct, I jumbled them together lol.

[–] phoenixz@lemmy.ca 2 points 20 hours ago

Welk yeah, not many people know those kinds of details from that long ago lol. I just saw the name one cloud and it all came flashing back

[–] darcmage@lemmy.dbzer0.com 3 points 2 days ago (1 children)

Can you elaborate on what you didn't like about what you've seen so far? I imagine most guides advise you to spin up an AIO instance of nextcloud in docker.

[–] GreatBlueHeron@lemmy.ca 2 points 1 day ago

I can't elaborate - it was a while ago. I think I did try the AIO and the consensus here then was that the AIO isn't necessarily the best way to go. That's why I'm asking before I try again - to see if there is any consensus. Apparently not.

[–] StrawberryPigtails@discuss.tchncs.de 2 points 1 day ago (2 children)

I currently run the official Nextcloud-AIO. No issues once I got the reverse proxy figured out. That was a bit of a pain at the time. Caddy hadn't yet become a popular choice for reverse proxies.

I will say that Nextcloud really wants dedicated hardware, not a VM, or proformance will suffer. Still useable but it tends to to be a bit slower. Can't vouch for the office suite as I just don't use it.

[–] Nighed@feddit.uk 2 points 1 day ago (1 children)

I tried the AIO docker build I never got the file sync working at an acceptable level. Would be using piss all resources and still only syncing a few files a second.

Does installing bare metal make it faster, or is that not what you meant?

[–] StrawberryPigtails@discuss.tchncs.de 1 points 20 hours ago (1 children)

From what I've noticed, yes. Considerably.

I'm not knowledgeable enough to explain why, but something about running Baremetal --> VM --> Docker --> Nextcloud-AIO is massively slower than running Baremetal --> Docker --> Nextcloud-AIO. Hell, Nextcloud-AIO on a Pi4 was running faster than when I put it in a much roomier VM.

Someone tried to explain it to me but all I understood was that the databases don't like that. Something about nested virtualization restricting performance.

Oddly I didn't run into the same issue when I ran Nextcloud-AIO off of a Digital Ocean VPS. Not sure what they are doing differently, but that was running just as fast as bare metal.

[–] Nighed@feddit.uk 1 points 19 hours ago

I was running on unraid docker, so no VM and it was still awful ☹️

[–] nexttech@lemmy.world 1 points 1 day ago (1 children)

what does your name mean ? just curious :)

[–] StrawberryPigtails@discuss.tchncs.de 1 points 1 day ago (1 children)

It's all good. The name came out a random name generator a while back. I liked the name enough that I started using it generally for my fediverse presence. No meaning beyond that.

[–] nexttech@lemmy.world 2 points 1 day ago

Oh nice. I like it !

[–] vegetaaaaaaa@lemmy.world 1 points 1 day ago

they don’t go out of their way to make the self hosted option easy

Just follow the docs https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html ? The manual install is a simple webserver + PHP-FPM + postgres setup

I have automated it with an ansible role [1], there's nothing complicated about it, really.

[–] RanchBranch@anarchist.nexus 2 points 2 days ago (2 children)

I tried the AIO, the standalone community maintained one, and had problems with both of them. I could get them running, but the second ANYTHING changed, it would break. I kept having permissions issues, networking issues, and all sorts of random issues.

I ended up using the Linuxserver.io one and have had no issues since then.

I don't know how much if it is a skill issue on my part, but I have had the Linuxserver.io running for a while now with no issues.

load more comments (2 replies)
[–] AcornTickler@sh.itjust.works 1 points 1 day ago

I currently run it in Kubernetes but I just translated my existing Docker setup to it. I recommend setting up PostgreSQL and Redis if you can for the best performance, but SQLite and no-cache-approach is also fine for the beginning (you just run a single container).

That being said, I think Nextcloud is not very cloud-native. I set up Redis just so I can do rolling updates with zero downtime (filesystem locks are kept in Redis' memory instead of the app's own), but I still get some server errors for a brief moment during updates (for less than 10 seconds).

[–] ikidd@lemmy.dbzer0.com 1 points 1 day ago (1 children)

Were you using the Nextcloud AIO? I've used every method of installing NC over the last decade+ and the AIO is painless to install and maintain.

[–] GreatBlueHeron@lemmy.ca 1 points 1 day ago (1 children)

I did try the AIO, or maybe read the docs and decided not to. Either way - it did not present as painless. Maybe your decade+ experience makes it hard to imagine what it's like for someone coming to it fresh?

[–] ikidd@lemmy.dbzer0.com 1 points 1 day ago

Well, perhaps, but it shouldn't be any more complicated than starting up the docker stack.

What are the specific problems? I might be able to help. You might also point an agent at the repo and ask it to stand it up, they're pretty good at that sort of thing, just approve the commands it's running to make sure it doesn't shit the bed.

load more comments
view more: next ›