Skip to main content

Reliably - Resilience and Chaos Engineering Platform

Project description

Reliably Application server

Welcome to Reliably. This is the application server which serves the reliably API used by Reliably services.

Requirements

This application requires the following to run:

  • A modern Linux distribution with systemd
  • Python 3.12+
  • Access to a PostgreSQL 14+ database
  • Docker available to run the plans

Getting Started

Install the application

Run following command:

pip install \
    -U \
    --disable-pip-version-check \
    --prefer-binary \
    --no-cache-dir \
    reliably-app

The username and password should have been given to you by Reliably staff as well. You may save them in your keyring but make sure they are properly secured.

You may use the same command to update Reliably.

View the version

Run the following command:

reliably-server version

This may be handy when interacting with Reliably staff.

View this Readme

Run the following command:

reliably-server doc show-readme

Initializating a configuration file

Run the following command:

reliably-server config init --interactive

This will populate a .env file in the current directory with good default values. It will prompt you for some additional information.

Feel free to review and edit that file.

Populating the database

The first task is to ensure your database is properly populated. Once done, this should be seldom required, only reliably informs you the schema has been changed.

Run the following command:

reliably-server db migrate

You can ask for the current moigration revision:

reliably-server db revision

If you created two different PostgreSQL users with different roles, you need to create a new .env file (you can simply duplicate the application one created in the previous section) and change the database credentials accordingly.

Then run:

reliably-server db migrate --env-file .migrate.env

This will use this configuration to create the database schema.

Run Reliably

You can run the reliably-server process manually or via systemd. We will focus on first running it manually and explain the systemd supervision in a following section.

In the directory containing your .env file, run the following command:

reliably-server run

By default, Reliably creates a pidfile to track the running process. You can change the path of the pidfile or also disable the pidfile with the appropriate command line argument.

Stop Reliably

You can stop the server with the following command:

reliably-server stop

Where to go next?

At this stage, Reliably is now running and can be used. Let's see what else you may need to do.

Appendices

Database

Version

Reliably only works with a PostgreSQL database and expects a recent version (at least version 14).

Access to a PostgreSQL 14+ database

For quick start, you may run a PostgreSQL locally in a container as follows:

docker run \
    --name postgres \
    -e POSTGRES_USER=test \
    -e POSTGRES_PASSWORD=secret \
    -e POSTGRES_DB=reliably \
    -p 5432:5432 \
    --rm \
    postgres

Users and their roles

The reliably-server process expects a non-admin user but with the following privileges:

  • "CONNECT", "TEMPORARY" on the database
  • "ALL" on the public.table

In addition, to run the migration script that populates and keep the schema up to date, you need one user with the following privileges:

  • "CREATE", "CONNECT", "TEMPORARY" on the database
  • "EXECUTE" on the function.table
  • "EXECUTE" on the procedure.table
  • "ALL" on the public.sequence
  • "SELECT", "INSERT", "DELETE", "UPDATE", "TRUNCATE", "TRIGGER", "REFERENCES" on the public.table

We suggest you create two distinct users but you don't have to.

Supervision

Systemd

You may want to ensure it is supervised properly by the system in case it goes down. If you run on a modern Linux system, you probably have systemd installed. You can therefore install a systemd unit service that will ensure systemd takes care of the process.

To do that, run the following command:

reliably-server system systemd create-unit-service

This will generate a reliably.service file that can be installed as a system service following the instructions given by the command.

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

reliably_app-0.1.0.tar.gz (5.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reliably_app-0.1.0-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

Details for the file reliably_app-0.1.0.tar.gz.

File metadata

  • Download URL: reliably_app-0.1.0.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reliably_app-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bd5ef32271bdfdd1ef765bc9d0c7dd40c7457b5b928ef8b644d13cee49156df2
MD5 736078ab425203d64d5714cf9be9fd21
BLAKE2b-256 a00be001a87de42a555261394d2cb35e710f8131818b67ea086bf4099f2fa222

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliably_app-0.1.0.tar.gz:

Publisher: release-reliably.yaml on rebound-how/rebound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reliably_app-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: reliably_app-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reliably_app-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a87d0c0b24b37a3e1d391003c9237598ab604ea98124402e115e90bcb1a140de
MD5 2432910f21d39c0520ce201102b46f22
BLAKE2b-256 b70a8af621ee796dfce6241ed484d9e02d574a78e3e68cdd599ec802a711d148

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliably_app-0.1.0-py3-none-any.whl:

Publisher: release-reliably.yaml on rebound-how/rebound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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