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

Uploaded Python 3

File details

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

File metadata

  • Download URL: reliably_app-0.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 ef0cb65adf80ff4ccdf4192b52b5f4cfa9e71806ebebced32c51dadb2bbda3c8
MD5 855e36e30aebce143eb91ab9a1dd3b54
BLAKE2b-256 8b22d004a7c9cc682666368d5f094785ebb65e6249cbd5bc79c2a129b7f77291

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: reliably_app-0.2.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2557ed6a1d9aff94b81019043e1156960ada902b1c2d3567938ceea5e6a2dc3
MD5 3eeda5d6211ef45fde9ed2afcc760462
BLAKE2b-256 05f2a0df2ff797e50a6d87be0202da6cf3f703535679d650d86eca6c53fb4ce5

See more details on using hashes here.

Provenance

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