Deploy from script or cloud-init

You can use to prepare the environment and deploy AlgoVPN on the local Ubuntu server in one shot using cloud-init, or run the script directly on the server after it’s been created. The script doesn’t configure any parameters in your cloud, so you’re on your own to configure related firewall rules, a floating IP address and other resources you may need. The output of the install script (including the p12 and CA passwords) can be found at /var/log/algo.log, and user config files will be installed into the /opt/algo/configs/localhost directory. If you need to update users later, cd /opt/algo, change the user list in config.cfg, install additional dependencies as in step 4 of the main README, and run ./algo update-users from that directory.

Cloud init deployment

You can copy-paste the snippet below to the user data (cloud-init or startup script) field when creating a new server.

For now this has only been successfully tested on DigitalOcean, Amazon EC2 and Lightsail, Google Cloud, Azure and Vultr, although Vultr doesn’t officially support cloud-init.

curl -s | sudo -E bash -x

The command will prepare the environment and install AlgoVPN with the default parameters below. If you want to modify the behavior you may define additional variables.



How to customise a cloud-init deployment by variables
export SSH_TUNNELING=true
curl -s | sudo -E bash -x
How to deploy locally without using cloud-init
export METHOD=local
export ENDPOINT=[your server's IP here]
curl -s | sudo -E bash -x
How to deploy a server using arguments

The arguments order as per variables above

curl -s | sudo -E bash -x -s local true false _null true true true true phone,laptop,desktop