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.5.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.5.0-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for reliably_app-0.5.0.tar.gz
Algorithm Hash digest
SHA256 5662079a80d9fa0fc880a5200a7c39ea07dc6704bfaf68e24b8a7f19aad7500e
MD5 bf8735005d247f9e06c34d550148ccdc
BLAKE2b-256 c5b445b258c33a3f0962e7f6f26b9e89c874611bbb34e9b4e6fabd080b4a15ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliably_app-0.5.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: reliably_app-0.5.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.13.7

File hashes

Hashes for reliably_app-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e933912e61db118d31f0bb42ff8b3d5a3e8361ea83e7c15fbcee3116caca67ec
MD5 061cb68ce90372b32f642a815b60c65b
BLAKE2b-256 3709f75304efff7ca1542e710bdab2293889c9c206974ca2dd935b8974886d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliably_app-0.5.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