‘Shameless plug’-time: I am working on this framework called freckles, which does all sort of configuration-management stuff. Among other things, it has a so-called ‘adapter’ (basically a plug-in) which can setup a new instance of a Seafile server for you, without any of the pain a Seafile install usually brings. Bold claim, I know 
I always was slightly annoyed that Seafile doesn’t provide proper distribution packages, and needs a lot of manual intervention to be installed with all its bells and whistles. I think there’s a Docker package now, but I don’t like to use Docker for use-cases like this, unfortunately. So, if that is you too, you might be interested in the following.
Small caveat: only Debian Stretch is supported for now (Jessie would probably work as well). Extending this to other platforms would be fairly easy, and I’d be super keen to work with anybody who is interested to help me improve this.
Anyway, long story short, here’s what you have to do to setup Seafile on a new (Debian) machine/VM/LXC container (you obviously need ‘curl’ installed, would work with ‘wget’ too though):
bash <(curl https://freckles.io) freckelize -pw true -r frkl:seafile -f blueprint:seafile_mysql -t /var/lib/freckles
I’ve written more about how all this works here: https://freckles.io/blog/example-seafile
Now, you might be reluctant to just copy and paste and execute something like this, and you are right to be. There’s not much I can do to make you trust me enough to do this in the short term, and the freckles project is too new to have any sort of reputation either. I’d suggest using this in a VM, or on a VPS that you can just delete and re-install after you’ve given it a go. Up to you though, obviously 
If you decide to try it out, this will happen:
-
freckles will bootstrap itself, which might take a while (into
$HOME/.local/inaugurate– after everything is done you can safely delete that folder if you want – it won’t affect Seafile) - the bootstrap script will execute the
freckelizecommand with the options you see above -
freckelizewill ask you a few questions about your setup (email address, domain name, port, whether you want to setup https and request a “Let’s encrypt” certificate – which you should only saytrueto if your server is publicly available, and DNS is setup to the domain name you provided earlier) - MySQL, Seafile and it’s dependencies will be installed and configured, as well as ‘nginx’, a “Let’s encrypt” certificate might be requested (depending on your input earlier), nginx will be configured to use it, and a cron job will be setup that makes sure that the certificate will be renewed before it expires
Once all that is done, you can go to http://domain_name:port, probably:
Hopefully this opens up the Seafile login page. The username to login is the email address you provided earlier. Password is ‘change_me’, and you should, well, … change it. Now-ish.
Check out the other posts on https://freckles.io or visit the freckles documentation pages if you want to know more about freckles itself, what it is and how it works.
Feedback welcome. Contributions even welcomer.