A repository containing a set of Ansible roles and playbooks to provision self-hosted Open Source services to reduce dependency on big platforms, take back your data and foster decentralisation.
Find a file
2020-03-29 16:08:45 +02:00
files Initial commit 2020-03-24 01:04:18 +01:00
group_vars Added Quickstart with Vagrant 2020-03-29 16:08:45 +02:00
playbooks Initial commit 2020-03-24 01:04:18 +01:00
ansible.cfg Initial commit 2020-03-24 01:04:18 +01:00
collabora-online.yml Added Collabora Online Developer Edition (CODE) 2020-03-28 18:07:00 +01:00
common.yml Initial commit 2020-03-24 01:04:18 +01:00
docker.yml Initial commit 2020-03-24 01:04:18 +01:00
inventory.ini.sample Added Quickstart with Vagrant 2020-03-29 16:08:45 +02:00
jitsi.yml Fixed broken group name 2020-03-25 23:38:23 +01:00
nextcloud.yml Initial commit 2020-03-24 01:04:18 +01:00
README.md Added Quickstart with Vagrant 2020-03-29 16:08:45 +02:00
requirements.yml Added Collabora Online Developer Edition (CODE) 2020-03-28 18:07:00 +01:00
site.yml Initial commit 2020-03-24 01:04:18 +01:00
Vagrantfile Added Quickstart with Vagrant 2020-03-29 16:08:45 +02:00

SATT: Self-host all the things!

A repository containing a set of Ansible roles and playbooks to provision self-hosted Open Source services

The main goals of this project are:

  • regain control of your data,
  • counter the growing vendor lock-in of big corporations,
  • foster decentralisation and federation
  • enable individuals but also e.g. educational institutions or NGOs to quickly set up their own infrastructure,
  • provide an overall well integrated set of tools which allows to use one tool together with another.

Services

Working

  • Nextcloud Hub
  • Jitsi Meet
  • Collabora Online (integrates with Nextcloud)

WIP

  • BigBlueButton

Backlog

  • Mumble
  • Moodle
  • Matrix+Riot
  • Opencast

Prerequisites

  • A server running Ubuntu or some other Debian-based distribution and working SSH access. (To try SATT in a local virtual machine, check out the Quickstart with Vagrant below)
  • Ansible on another computer that will send SSH commands to the target server to provision it

Quickstart: Vagrant

To give SATT a quick spin, you could easily bootstrap a development VM using Vagrant on your local machine.

Vagrant + Ansible on Windows 10 using Windows Subsystem for Linux

  1. Download and install Virtualbox (Documentation)

  2. Follow the guide to install the Windows Subsystem for Linux, we recommend to choose Ubuntu 18.04 LTS or later as a distribution.

  3. Open Ubuntu through the Windows Start Menu

  4. Inside the Ubuntu Terminal, continue the setup by following the next section.

Vagrant + Ansible on Linux

  1. Obtain Vagrant by downloading the corresponding package for your distribution, assuming Ubuntu in the next steps.

  2. Install the package by opening a Terminal and run:

    user@vmhost: ~$ sudo dpkg install <vagrant-package-name>.deb
    
  3. To check whether Vagrant was installed successfully, try running vagrant --version which must not return an error.

  4. Recommended: Install the Vagrant::Hostsupdate plugin that will automatically add the hostname of the virtual machine to the list of static hosts on your local machine (VM host). This allows you to later open e.g. nextcloud.satt.local in a browser from your local machine. Updates to the hosts file will require entering a sudo password:

    user@vmhost: ~$ vagrant plugin install vagrant-hostsupdater
    

    Note for VM host Windows 10 with WSL: This host update will currently have no effect outside of WSL, as the updated hosts file is only used within the WSL context, not Windows itself.

  5. Install Ansible:

    user@vmhost: ~$ sudo apt update && sudo apt upgrade
    user@vmhost: ~$ sudo apt install python3 python3-pip
    user@vmhost: ~$ pip3 install --user ansible
    
  6. Test ansible by running ansible --version

  7. Clone the SATT repo:

    user@vmhost: ~$ git clone https://git.jotbe.io/jotbe/ansible-selfhosted-services.git
    
  8. Change to the local copy and try bootstrapping the VM (this will take a while and you might be asked for a sudo password):

    user@vmhost: ~$ cd ansible-selfhosted-services
    user@vmhost: ~/ansible-selfhosted-services$ vagrant up
    
  9. If everything went fine, you should be able to SSH into the machine by running vagrant ssh from within the same directory and services should be up and running.

  10. If you installed the Vagrant::Hostsupdate plugin in step (4) and didn't change the configuration, you should be able to open some services in a browser:

By default, a vagrant user will be provisioned (if not already available) and used throughout the provisioning.

Quickstart: Regular server/VM

  • Clone this repo
  • Install dependencies (roles): ansible-galaxy install -r requirements.yml
  • Adapt the inventory and choose the services
  • Configure each desired service by following the README of its role.
  • Run the playbook site.yml or one of the service playbooks.