109 lines
4.3 KiB
Markdown
109 lines
4.3 KiB
Markdown
# SATT: Self-host all the things!
|
|
|
|
A repository containing a set of [Ansible](https://www.ansible.com/) 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 <a id="#quickstartVagrant"></a>
|
|
|
|
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](https://www.virtualbox.org/wiki/Downloads) and install Virtualbox ([Documentation](https://www.virtualbox.org/wiki/End-user_documentation))
|
|
|
|
1. Follow the [guide to install the Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10). This SATT guide assumes Ubuntu 18.04 LTS
|
|
|
|
1. Open Ubuntu through the Windows Start Menu
|
|
|
|
1. Inside the Ubuntu Terminal, continue the setup by following the next section.
|
|
|
|
### Vagrant + Ansible on Linux
|
|
|
|
1. Obtain Vagrant by [downloading the corresponding package](https://www.vagrantup.com/downloads.html) for your distribution, assuming Ubuntu in the next steps.
|
|
|
|
2. Install the package by opening a Terminal and running:
|
|
|
|
```bash
|
|
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](https://github.com/cogitatio/vagrant-hostsupdater) 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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):
|
|
|
|
```bash
|
|
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:
|
|
|
|
* Nextcloud: [https://nextcloud.satt.local](https://nextcloud.satt.local)
|
|
* Jitsi: [https://jitsi.satt.local](https://jitsi.satt.local)
|
|
|
|
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.
|