Skip to main content

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

Installing Install Party is done by cloning its Git repository and installing its dependencies:

git clone https://github.com/babolivier/install-party.git
cd install-party
virtualenv -p python3 env
source env/bin/activate
pip install -r requirements.txt

Then it can be run with:

source env/bin/activate
./install_party.py [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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

install-party-0.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

install_party-0.1-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file install-party-0.1.tar.gz.

File metadata

  • Download URL: install-party-0.1.tar.gz
  • Upload date:
  • Size: 5.8 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

Hashes for install-party-0.1.tar.gz
Algorithm Hash digest
SHA256 417a3c77dc1e783e53d74f5e57e64406c47591d633da3f135b3ae1c4906a3d76
MD5 989cc23524e732d04e8f672815865346
BLAKE2b-256 a26091452d6b3492143ed45d99032a09faf8a2589ac6a4152296d29f6c60df1a

See more details on using hashes here.

File details

Details for the file install_party-0.1-py3-none-any.whl.

File metadata

  • Download URL: install_party-0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.9 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

Hashes for install_party-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c19121fadc1fa31d48be39539cb6faa5bba35aeb34a3854b44aad6abaeb65411
MD5 002367fef08705264b32548ae171a21b
BLAKE2b-256 5c4e35d59be476ff3a3944b196f4e41f86c9650f3f0e42e45eff35bd950025fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page