@Nivix You don't grant the users actual power. Someone from YouTube said the same thing. (Can't find it where he said it though, probably in one of his livestreams) But the way to do this is to setup some clear guidelines on how you want your users to behave, Let the users engage the user in question without harassing him. Thats basically the whole trick. Adjusting is easier if the whole group communicates in the same way.
Cronjob sounds great. I would use the S3 to store the backup files.
For backing up the site, I'd use 2 different solutions. Daily DB backup with Cronjob, and another one is instance snapshot. Installed NodeBB on a Docker instance, and what I need to do is that commit the instance once a week, output it as .tar file, store it somewhere reliable.
For image assets, I prefer offshore storage like the S3, so the instance snapshot won't be really big in size..
@Mega as @Schamper said, I only discovered this last week, so we use require.parent.parent/etc for everything, but require.main works just as well.
Keep in mind require.main's "scope" is app.js, so you'd have to do require.main.require('./src/groups.js'); if you want access to the groups lib.
require.main will always be app.js for plugins, since plugins are only called by NodeBB.