this post was submitted on 09 Aug 2023
22 points (95.8% liked)

Selfhosted

39964 readers
428 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 posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

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

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Hi all, sorry if this has been asked/discussed before (I couldn't find any directly overlapping posts):

I have been running the Nextcloud snap now for quite some time, and although things have run quite smoothly, I never really managed to properly back things up.

I make weekly backups of the database, config and data, but it's very hard and time consuming to glue these elements back together. And as they say: when you can't check whether a backup works, it's not really a backup.

I have been experimenting with KVM/qemu lately and things look pretty great. The idea of simply backing up the entire OS that runs Nextcloud (a backup that you can easily deploy/run somewhere else to test if it's working) sounds very attractive.

Reading around, however, tells me that some of you recommend running the Nextcloud docker (instead of a VM).

My questions:

  1. What would be the advantage of running Nextcloud as a docker, instead of within a VM?
  2. What would be a sensible way to have an incremental/differential backup of the VM/Docker?
  3. The storage usage of my Nextcloud instance exceeds 1TB. If I run it within a VM, I will have to connect it to a 2TB SSD. Does it make sense to add the external storage space to the VM? How does that affect the ease of backing the full VM up? Or (as I have read here and there) should I simply put the entire VM on the external SSD?
top 14 comments
sorted by: hot top controversial new old
[–] fraydabson@sopuli.xyz 8 points 1 year ago (1 children)

From my experience docker seems to be best for me. I’m also no expert in any of this.

What I do is run the container in docker and then I user rsync to backup my files to both a secondary hard drive and off site storage with a backup provider.

I haven’t looked into database backups yet. Just files.

[–] partizan@lemm.ee 10 points 1 year ago (1 children)
docker exec nextcloud-mariadb-1 /usr/bin/mariadb-dump --defaults-extra-file=/backup/.mylogin.cnf -u root --single-transaction --quick --all-databases |gzip > /mnt/mysql/backup/nc${NUM}_dump.gz

You are welcome

[–] pe1uca@lemmy.pe1uca.dev 0 points 1 year ago (1 children)

What would be the difference between this and creating a volume to the data directory and backing up that one?
I mean, is it not recommended? Is there a potential to backup in the middle of a DB transaction which would make the backup useless?

[–] partizan@lemm.ee 1 points 1 year ago

Exactly, you can end up with inconsistent DB state. Only possible filesystem level solution is take a LVM/btrfs/zfs snapshot and copy the DB files from there, but at that point, the dump is much easier and more convenient.

[–] rambos@lemm.ee 4 points 1 year ago

Im running nextcloud in docker from lsio atm. Doing daily file backups, so not database, mostly because it seems its pain to test backups, but also dont rly need anything else (at least not for now).

There is also a community !nextcloud@lemmy.world

First time I hear about running nextcloud in VM. Following to learn more.

[–] noneabove1182@sh.itjust.works 2 points 1 year ago

I have the snap installed, for what it's worth it's pretty painless AS LONG AS YOU DON'T WANT TO DO ANYTHING SILLY

I've found it nearly impossible to alter the base behaviour and have it not entirely break, so if nextcloud out of the box does exactly what you want, go ahead and install it via snap...

I predict that on docker you're going to have a bad time if you can't give it host network mode and try to just forward ports

That said, docker >>>> VM in my books

[–] vegetaaaaaaa@lemmy.world 2 points 1 year ago* (last edited 1 year ago) (1 children)

Follow the official documentation https://docs.nextcloud.com/server/latest/admin_manual/installation/

Plain old webserver + php-fpm + database engine (I use postgres), no docker. People not following the recommended setup seem to have all kinds of woes (https://lemmy.world/comment/1981161)

[–] Batbro@lemmy.world 4 points 1 year ago (1 children)

Don't they offer an official all in one docker image?

https://github.com/nextcloud/all-in-one

[–] boonhet@lemm.ee 4 points 1 year ago

It's more of a pain to get running than you might think for an official image. I got it running but definitely had issues getting started.

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

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

Fewer Letters More Letters
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption

2 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.

[Thread #34 for this sub, first seen 13th Aug 2023, 08:55] [FAQ] [Full list] [Contact] [Source code]

[–] preya@mastodon.social 1 points 1 year ago

@notsofunnycomment Best set-up would be no Nextcloud at all. If you only use it for files, take a look at OCIS, SyncThing or Seafile.

[–] Muehe@kbin.social 1 points 1 year ago
  1. What would be the advantage of running Nextcloud as a docker, instead of within a VM?

    • No idea really beyond the usual VM/container trade-offs, I guess it would allow you to use orchestration tools and similar for Docker.
  2. What would be a sensible way to have an incremental/differential backup of the VM/Docker?

    • If you use Proxmox as your hypervisor it comes with a sophisticated backup solution, probably the same for ESXi or whatever. Not sure about Docker.
  3. The storage usage of my Nextcloud instance exceeds 1TB. If I run it within a VM, I will have to connect it to a 2TB SSD. Does it make sense to add the external storage space to the VM? [...]

    • That's what I would do at least. Connecting external storage space to a VM/container is relatively trivial and Nextcloud recommends to separate binaries and data directory anyway. Plus this allows you to use different backup strategies for data versus binaries+metadata.

In case you haven't yet, I'd also recommend taking a look at this: https://github.com/nextcloud/vm

It's basically a collection of three shell scripts to install, manage, and update Nextcloud. Last time I tried it also worked on LXC/LXD, not only VMs. It would probably work on Docker as well and has some files related to that in the migrate/docker directory.

[–] Swiggles@lemmy.blahaj.zone 1 points 1 year ago

If you can use containers always use containers as a rule of thumb. VMs are less efficient in almost every way and they add some unnecessary complexity.

For docker you basically only have to backup the persistent data. So in case of the docker setup you just have to backup the mounts and probably your compose file you are using. This probably also answers your third question already. Container files can be left alone and don't need to be considered for backups as they should be stateless and can reside in their default location (/var/lib/docker/overlay2 or so by default).

Overall it is quite simple as you only really have to consider the mounts and the docker setup. The mounts you define and should be really obvious and the docker setup is just a few config files at most or just the compose file.

[–] maggio@discuss.tchncs.de 1 points 1 year ago

My friend and I run most things in kubernetes (k3s), and then we use longhorn to backup volumes, which then can be re-used if your cluster crashes. Here's a blog post describing the process (although not for nextcloud specifically, it could be applied to Nextcloud as well, as we do this for nextcloud as well)

Octopusx blog: Backup and Restore