Instantiate and manage hosts for Matrix homeserver install parties
Project description
Install Party
This is a project that creates and manages ephemeral servers for install parties/workshops of Matrix homeservers.
Install and run
Install Party can be installed via pip
:
pip install install-party
Then it can be run with:
python -m install_party [mode] [options]
Creation mode
The creation mode (create
) uses the OpenStack and OVH APIs to create a new host, attach a domain to it, and run a script that installs Riot and Caddy on it, so that an attendee can log in (with SSH) with the configured username and password, install a new homeserver, and directly use it with the Riot instance.
The OpenStack instance name will be {namespace}-{name}
and the domain name will be {name}.{namespace}.{zone}
, where:
{namespace}
is a configured namespace (e.g. the event's name as a slug){zone}
is a configured DNS zone (must be managed by OVH){name}
is the host's name (either provided, e.g.install_party.py create foo
, or a randomly generated 5-letter string)
Note: currently, if attendees wish/need to use a homeserver's built-in ACME support, they must set the post the ACME support listener is listening to to 8888
.
Configuration
The configuration is provided as a YAML configuration file. By default, a file named config.yaml
in the current directory will be used, but this can be overridden by setting the environment variable INSTALL_PARTY_CONFIG
to the path of the desired file.
The configuration file's content must follow the following structure. Currently, all fields are mandatory.
# General configuration that's not specific to a section.
general:
# Namespace to use when creating/listing the instances and DNS records.
namespace: my-super-event
# DNS zone to create the DNS records on.
dns_zone: example.com
# The version of Riot to install on the hosts.
riot_version: v1.4.2
# Configuration specific to the instances.
instances:
# User the attendee will use when logging into the host with SSH.
# Must already exist on the system.
user: superevent
# Password the attendee will use when logging into the host with SSH.
password: superevent2019
# Configuration to connect to the OVH API.
# See https://api.ovh.com/ for a full documentation.
ovh:
endpoint: ovh-eu
application_key: somesecret
application_secret: somesecret
consumer_key: somesecret
# Configuration to connect to the OpenStack API or that is using notions
# specific to OpenStack.
# See https://docs.openstack.org/ for a full documentation.
openstack:
# Version of the OpenStack compute API. Currently, only versions 2 and
# above are supported.
api_version: 2
auth_url: https://auth.example.com/v2.0/
tenant_name: somesecret
tenant_id: somesecret
username: somesecret
password: somesecret
region_name: GRA3
# ID of the image to use to create the instances.
image_id: my_super_image
# ID of the flavor to use to create the instances.
flavor_id: my_super_flavor
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file install-party-0.1.3.tar.gz
.
File metadata
- Download URL: install-party-0.1.3.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 330a8069cfd48f68b22a245cc8eb79e7bd9f4db3965704e762544894e11355f7 |
|
MD5 | 5048cdf14254375b8eec0c358f70807b |
|
BLAKE2b-256 | 57872434693580c1227ce73d763e096ea9aaa3d423caab5b6ebed9cca63ebe32 |
File details
Details for the file install_party-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: install_party-0.1.3-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71ab4bb32be171d86ce7f6f7797fcbf825ae356a87e98c5a36e7442b026bbbe0 |
|
MD5 | a746e7157adaf0c169d8f53fbe71aaf9 |
|
BLAKE2b-256 | e63c2ce28dbed32503057bd066dce98c7b640c7afb3ee7f8628bd732c1eec6d8 |