To install services using this Ansible playbook, you need:
- (Recommended) An x86-64 (
amd64
) or arm64 server running one of these operating systems:- Red Hat Enterprise Linux or derivative distros, e.g. Rocky Linux (Major version 7 or newer)
- Debian (10/Buster or newer)
- Ubuntu (18.04 or newer, although 20.04 may be problematic)
- Archlinux
Generally, newer is better. We only strive to support released stable versions of distributions, not betas or pre-releases. This playbook can take over your whole server or co-exist with other services that you have there.
This playbook somewhat supports running on non-amd64
architectures like ARM. See Alternative Architectures.
If your distro runs within an LXC container, you may hit this issue. It can be worked around, if absolutely necessary, but we suggest that you avoid running from within an LXC container.
-
root
access to your server (or a user capable of elevating toroot
viasudo
). -
Python being installed on the server. Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like
apt-get install python3
). On some distros, Ansible may incorrectly detect the Python version (2 vs 3) and you may need to explicitly specify the interpreter path ininventory/hosts
during installation (e.g.ansible_python_interpreter=/usr/bin/python3
) -
sudo being installed on the server, even when you've configured Ansible to log in as
root
. Some distributions, like a minimal Debian net install, do not include thesudo
package by default. -
The Ansible program being installed on your own computer. It's used to run this playbook and configures your server for you. Take a look at our guide about Ansible for more information, as well as version requirements and alternative ways to run Ansible.
-
the passlib Python library installed on the computer you run Ansible. On most distros, you need to install some
python-passlib
orpy3-passlib
package, etc. -
git is the recommended way to download the playbook to your computer.
git
may also be required on the server if you will be self-building components. -
just for running
just update
and playbook installation commands, etc. (seejustfile
). You can get by withoutjust
(by runningansible-galaxy
,ansible-playbook
commands manually), but maintaining your playbook setup will require more manual work.just
(thanks to the commands defined in thejustfile
) keeps various files (setup.yml
,requirements.yml
,group_vars/mash_servers
) up-to-date with the templates in thetemplates/
directory automatically. -
at least one domain name you can use
-
Some TCP/UDP ports open. This playbook (actually Docker itself) configures the server's internal firewall for you. In most cases, you don't need to do anything special. But if your server is running behind another firewall, you'd need to open these ports:
80/tcp
: HTTP webserver443/tcp
: HTTPS webserver- potentially some other ports, depending on the services that you enable in the configuring the playbook step (later on). Consult each service's documentation page in
docs/
for that.
When ready to proceed, continue with Configuring DNS.