How does nextcloud-snap compares with nextcloud official vm install?
https://github.com/nextcloud/vm
What is the main difference between the two?
When is one is better than another?
Currently I prefer snap because of quick and small install.
nextcloud vm script install took almost 4GB of space and too many package downloads
Heh, you might want to ask in a less biased place. Not just because I maintain the snap, but because I know very little about the VM.
That said, I'll still throw in my uneducated opinion. The snap is nice for getting up and running quickly with minimal space, and will work great if you're happy not messing with it. Since it's a snap you also get the benefit of automatic updates and the ability to rollback without worrying about needing to take a snapshot, etc.
However, the snap is very opinionated. Don't want to use Apache? Sorry, the snap uses it. Don't want to use MySQL? Sorry. Something other than PHP 7.0.15? Only when we feel you deserve it! It's not very tinker-friendly. We don't do this to be mean, we do this so that we can reliably update it without your needing to worry about it.
I assume the VM is much more flexible. It's a full version of Linux, allowing you to tweak whatever you need. This of course makes it larger. You'll also need to make sure you maintain it and keep the OS up-to-date. Since it's virtualized you can assign disk, CPU, memory, and network quotas to it (you'd need to install the snap in an lxc container or a VM to get the same abilities).
Perfect answer. I think I'll add it to the wiki.
To bring this to a close, wiki entry is here.
Please update the false text at https://github.com/nextcloud/nextcloud-snap/wiki/Snap-or-VM%3F
As both Nextcloud and Owncloud developers have used MariaDB in their reference architecture is strongly suggest you use MariaDB instead. I am willing to help you with Snap packaging if you need help.
Which false text? About MariaDB on ARM? I didn't write that, and don't know if it's true or not, but your saying that MariaDB is "strongly suggested" seems unsupported by the Nextcloud install docs. Can you back that up? This page simply says "The MySQL or MariaDB databases are the recommended database engines." No preference indicated.
I don't have any strong opinions about this, but moving to MariaDB would require the current MySQL databases to be seamlessly migrated to MariaDB, which sounds non-trivial, and what we'd gain by doing so is unclear. I do have strong opinions about hard work with little gain :stuck_out_tongue: . Thoughts?
I know some of the developers in person, and my knowledge about NC development is based on what they told me, so I cannot link to that.
Upgrading from a previous version of MySQL to a newer version of MariaDB is as easy as upgrading to a newer MySQL version. E.g from MySQL 5.5 you can easily upgrade to MariaDB 5.5 or 10.0. From MySQL 5.6 you can upgrade to MariaDB 10.1 or newer, and so on.
For example in Debian MariaDB replaced MySQL for millions of users in a simple apt-get upgrade. That said, if you have some special configs, something might occur. Luckily your use case and configs are well defined, so you can test it in advance pretty well.
Luckily your use case and configs are well defined, so you can test it in advance pretty well.
That's true, although note that we actually maintain a custom fork of MySQL to remove setpriority calls. Will we have to re-do that work for MariaDB? Also, are there technical benefits?
The page https://mariadb.com/kb/en/library/high_priority-and-low_priority/ does not seem to list a config option that would allow to disable it directly. Maybe if you ask on Freenode #mariadb ? This particular feature is something I've never come across before.
Also, you could port your patch to MariaDB, and submit it at jira.mariadb.org. Unlike Oracle MySQL, the MariaDB development is done in true open source fashion on git in real-time, and you can contribute if you want, and follow up the issue on Jira in real time to champion it.
Most helpful comment
Heh, you might want to ask in a less biased place. Not just because I maintain the snap, but because I know very little about the VM.
That said, I'll still throw in my uneducated opinion. The snap is nice for getting up and running quickly with minimal space, and will work great if you're happy not messing with it. Since it's a snap you also get the benefit of automatic updates and the ability to rollback without worrying about needing to take a snapshot, etc.
However, the snap is very opinionated. Don't want to use Apache? Sorry, the snap uses it. Don't want to use MySQL? Sorry. Something other than PHP 7.0.15? Only when we feel you deserve it! It's not very tinker-friendly. We don't do this to be mean, we do this so that we can reliably update it without your needing to worry about it.
I assume the VM is much more flexible. It's a full version of Linux, allowing you to tweak whatever you need. This of course makes it larger. You'll also need to make sure you maintain it and keep the OS up-to-date. Since it's virtualized you can assign disk, CPU, memory, and network quotas to it (you'd need to install the snap in an lxc container or a VM to get the same abilities).