I wrote a cloud-init script to automate the deployment of a shadowsocks server. I shared it in a gist here.
Features:
- Creates a non-privileged user
- Uploads your ssh public key to the user
- Adds this user to the sudoers group
- Disables ssh login for the root user
- Downloads and installs libraries required for chacha20
- Creates a “random” password and writes it in the config.json file
- config.json file is in the /root directory. (You will need the password in this config file to be able to connect to your shadowsocks server.)
- Starts the shadowsocks server.
You have to fill out the _YOURUSERNAMEHERE_, _YOURSSHPUBLICKEYHERE_ and _YOURFULLNAMEHERE_ with your data.
You can use this script in DigitalOcean easily following this document.