Skip to main content

A Discord bot for managing game server status embeds.

Project description

ministatus

A Discord bot for managing game server status embeds.

Terminal demonstration Command demonstration

Setup

This project requires Python 3.11 or newer. You can manually install this project into a virtual environment:

$ python3 -m venv
$ .venv/bin/activate
(.venv) $ pip install ministatus
(.venv) $ ministatus  # or python3 -m ministatus

Or use one of pipx or uv to manage the virtual environment for you:

$ pipx install ministatus
$ ministatus
# Or:
$ uv tool install ministatus
$ ministatus
# Or:
$ uvx ministatus

Usage

$ ministatus
Usage: ministatus [OPTIONS] COMMAND [ARGS]...

  A Discord bot for managing game server status embeds.

Options:
  -p, --password SECRET  The password to unlock the database, if any
  -v, --verbose          Increase logging verbosity.
  -V, --version          Show the version and exit.
  -h, --help             Show this message and exit.

Commands:
  appdirs  Show directories and important files used by this application.
  config   Get or set a configuration setting.
  db       Manage the application database.
  start    Start the Discord bot in the current process.
  status   Manage server statuses.

View where files are saved:

$ ministatus appdirs
user_data_path    = /home/thegamecracks/.local/share/ministatus
user_log_path     = /home/thegamecracks/.local/state/ministatus/log
DB_PATH           = /home/thegamecracks/.local/share/ministatus/ministatus.db

Enable database encryption (see notes below):

$ export MIST_PASSWORD=abc123
$ ministatus db encrypt
Successfully encrypted!
# Alteneratively use -p/--pasword:
$ ministatus -p abc123 db encrypt
Database is already encrypted 😴
# Or type the password interactively:
$ unset MIST_PASSWORD
$ ministatus config
Database Password:
There are no settings defined 🙁

[!NOTE] This requires SQLite3MultipleCiphers, SQLCipher, or an equivalent library with PRAGMA key and PRAGMA rekey support. This is only possible if you are able to replace the sqlite3.dll or .so shared library used by Python.

In the case of uv-managed Python installations, they are statically built against SQLite and cannot be replaced with encryption extensions.

Start the bot and store your bot token:

$ ministatus start
2025-10-23 04:01:17 INFO     ministatus.db.migrations Migrating database to v1
2025-10-23 04:01:17 INFO     ministatus.db.migrations Migrating database to v2
No Discord bot token found in config.
Would you like to enter your token now?
You can change your token at any time using the 'config' command.
 [y/N]: y
Your Discord bot token should look something like this:
    MTI0NjgyNjg0MTIzMTMyNzI3NQ.GTIAZm.x2fbSNuYJgpAocvMM53ROlMC23NixWt-0NOjMc
Token:
2025-10-23 04:01:21 WARNING  discord.client PyNaCl is not installed, voice will NOT be supported
2025-10-23 04:01:21 INFO     discord.client logging in using static token
2025-10-23 04:01:21 INFO     ministatus.bot.bot Loading extension ministatus.bot.cogs.status
2025-10-23 04:01:21 INFO     ministatus.bot.bot Loaded jishaku extension (v2.6.3)
2025-10-23 04:01:21 INFO     ministatus.bot.cogs.status.cog Waiting 38.22s before starting query loop...
2025-10-23 04:01:22 INFO     discord.gateway Shard ID None has connected to Gateway (Session ID: 9bd2e577bbc4a21be5eed933900d076f).

View or change configuration settings:

$ ministatus config
Settings:
    token = ****

$ ministatus config token xyz
$ ministatus config token
xyz

License

This project is written under the MIT License.

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

ministatus-0.1.1.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

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

ministatus-0.1.1-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

Details for the file ministatus-0.1.1.tar.gz.

File metadata

  • Download URL: ministatus-0.1.1.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ministatus-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b955e5bc3978a4d6f915c1c9ee3e087ff6f2a94a817e92ec3d79eeb19fd48c81
MD5 aeb76a5df5f5e8046d5e68ba03d1d3e2
BLAKE2b-256 4a43077fecf842b386b7153052fd1d7000ac1cb4ca427d838f57c4ee48d9ab0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ministatus-0.1.1.tar.gz:

Publisher: publish.yml on thegamecracks/ministatus

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

File details

Details for the file ministatus-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ministatus-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 52.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ministatus-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 53e76a6a8a04b9584815da73bedea06d3b51dfa7dc647766902768775de636d7
MD5 b34b6338c13752e613859de9cdebab56
BLAKE2b-256 3486637b40b700a2adbb2d6bdc5830f85b68f7ba35229d8946eac798166569b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ministatus-0.1.1-py3-none-any.whl:

Publisher: publish.yml on thegamecracks/ministatus

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