# Deploy from Fedora Workstation These docs were written based on experience on Fedora Workstation 30. ## Prerequisites ### DNF counterparts of apt packages The following table lists `apt` packages with their `dnf` counterpart. This is purely informative. Using `python2-*` in favour of `python3-*` as per [declared dependency](https://github.com/trailofbits/algo#deploy-the-algo-server). | `apt` | `dnf` | | ----- | ----- | | `build-essential` | `make automake gcc gcc-c++ kernel-devel` | | `libssl-dev` | `openssl-devel` | | `libffi-dev` | `libffi-devel` | | `python-dev` | `python2-devel` | | `python-pip` | `python2-pip` | | `python-setuptools` | `python2-setuptools` | | `python-virtualenv` | `python2-virtualenv` | ### Install requirements First, let's make sure our system is up-to-date: ```` dnf upgrade ```` Next, install the required packages: ```` dnf install -y \ ansible \ automake \ gcc \ gcc-c++ \ kernel-devel \ openssl-devel \ libffi-devel \ libselinux-python \ python2-devel \ python2-pip \ python2-setuptools \ python2-virtualenv \ python2-crypto \ python2-pyyaml \ python2-pyOpenSSL \ python2-libselinux \ make ```` ## Get Algo [Download](https://github.com/trailofbits/algo/archive/master.zip) or clone: ```` git clone git@github.com:trailofbits/algo.git cd algo ```` If you downloaded Algo, unzip to your prefered location and `cd` into it. We'll assume from this point forward that our working directory is the `algo` root directory. ## Prepare algo Some steps are needed before we can deploy our Algo VPN server. ### Check `pip` Run `pip -v` and check the python version it is using: ```` $ pip -V pip 19.0.3 from /usr/lib/python2.7/site-packages (python 2.7) ```` `python 2.7` is what we're looking for. ### Setup virtualenv and install requirements ```` python2 -m virtualenv --system-site-packages env source env/bin/activate pip -q install --user -r requirements.txt ```` ## Configure Edit the userlist and any other settings you desire in `config.cfg` using your prefered editor. ## Deploy We can now deploy our server by running: ```` ./algo ```` Note the IP and password of the newly created Algo VPN server and store it safely. If you want to setup client config on your Fedora Workstation, refer to [the Linux Client docs](client-linux.md). ## Notes on SELinux If you have SELinux enabled, you'll need to set appropriate file contexts: ```` semanage fcontext -a -t ipsec_key_file_t "$(pwd)(/.*)?" restorecon -R -v $(pwd) ```` See [this comment](https://github.com/trailofbits/algo/issues/263#issuecomment-328053950).