A Discord bot for managing game server status embeds.
Project description
ministatus
A Discord bot for managing game server status embeds.
Supported Games / Query Protocols
- Arma 3
- Arma Reforger
- Minecraft (Bedrock Edition)
- Minecraft (Java Edition)
- Project Zomboid
- Valve Source Query (A2S)
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.
invite Print the bot's invite link.
start Start the Discord bot in the current process.
To start the bot and store your bot token:
$ ministatus start
2025-10-28 22:50:34 INFO ministatus.db.migrations Migrating database to v3
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-28 22:50:37 INFO discord.client logging in using static token
2025-10-28 22:50:37 INFO ministatus.bot.bot Loading extension ministatus.bot.cogs.cleanup
2025-10-28 22:50:37 INFO ministatus.bot.bot Loading extension ministatus.bot.cogs.errors
2025-10-28 22:50:37 INFO ministatus.bot.bot Loading extension ministatus.bot.cogs.owner
2025-10-28 22:50:37 INFO ministatus.bot.bot Loading extension ministatus.bot.cogs.status
2025-10-28 22:50:37 INFO ministatus.bot.bot Invite link:
https://discord.com/oauth2/authorize?client_id=...
2025-10-28 22:50:37 INFO ministatus.bot.cogs.status.cog Waiting 22.01s before starting query loop...
2025-10-28 22:50:38 INFO discord.gateway Shard ID None has connected to Gateway.
To synchronize the bot's application commands with Discord, invite the bot to
a server and send the message, @mention sync, to run the sync command.
Alternatively, you can synchronize application commands during startup
by using the --sync flag:
$ ministatus start --sync
Make sure to only synchronize once to avoid being ratelimited by Discord. If ministatus is updated with changes to application commands, you may need to synchronize them again.
Other commands
View where files are saved:
$ ministatus appdirs
user_data_path = /home/thegamecracks/.local/share/ministatus
user_log_path = /home/thegamecracks/.local/state/ministatus/log
$ ministatus db path
/home/ministatus/.local/share/ministatus/ministatus.db
View or change configuration settings:
$ ministatus config
Settings:
appid = 1430326736775544903
status-interval = 60
token = ****
$ ministatus config token xyz
$ ministatus config token
xyz
Enable database encryption (see notes below):
$ export MIST_PASSWORD=abc123
$ ministatus db encrypt
Successfully encrypted!
# Alteneratively use -p/--password:
$ 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 extension with
PRAGMA keyandPRAGMA rekeysupport. 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 used with encryption extensions.
Environment Variables
The following environment variables are supported:
-
MIST_APPDIR_SUFFIXThe suffix to append to the application directory, changing where the database and log files are written to. This allows for multiple instances of ministatus to run on the same user, as each instance uses a separate database and can load different Discord bot tokens.
For example,
MIST_APPDIR_SUFFIX=2results in data files being stored in the~/.local/share/ministatus-2directory on Linux, andC:\Users\<name>\AppData\Local\thegamecracks\ministatus-2on Windows. -
MIST_PASSWORDThe password to use for encrypting and decrypting the database. Most commands will abort if the database isn't already encrypted, aside from
ministatus db encryptitself and commands that don't require database access likeministatus appdirs.Alternatively, you can use the
ministatus -p <password> ...option to provide a password,ministatus -p "" ...to always prompt for a password, or simply omit it and let ministatus prompt for the database password when needed. Note that the-p <password>form may be logged by your terminal to some history like.bash_history. -
MIST_TOKENThe Discord bot's token. This supersedes any token stored in the database. This token will also not be committed to the database, so omitting this afterwards will use the previously stored token or prompt for a new token.
[!NOTE] Environment variables defined in a
.envfile are currently not recognized by ministatus. You should set these usingexport ABC=123on Linux,set ABC=123on Windows, or another equivalent method.
License
This project is written under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ministatus-0.5.0.tar.gz.
File metadata
- Download URL: ministatus-0.5.0.tar.gz
- Upload date:
- Size: 43.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b4dcd4a4d0ae14a7cf67dddbf8d9208ccb063bcb1825d7dcde35563ef53ed40
|
|
| MD5 |
c0d73f359d3b1354403a10da0c531ec4
|
|
| BLAKE2b-256 |
e26e31682560b629ae8aff5fbca7b5d6bb5b5a5ac1b4184ea2e365d60b71df5b
|
Provenance
The following attestation bundles were made for ministatus-0.5.0.tar.gz:
Publisher:
publish.yml on thegamecracks/ministatus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ministatus-0.5.0.tar.gz -
Subject digest:
2b4dcd4a4d0ae14a7cf67dddbf8d9208ccb063bcb1825d7dcde35563ef53ed40 - Sigstore transparency entry: 660714328
- Sigstore integration time:
-
Permalink:
thegamecracks/ministatus@df21c9dd54aba176f7a0e32c8b5fd6acb6735463 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/thegamecracks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@df21c9dd54aba176f7a0e32c8b5fd6acb6735463 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ministatus-0.5.0-py3-none-any.whl.
File metadata
- Download URL: ministatus-0.5.0-py3-none-any.whl
- Upload date:
- Size: 65.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d697fa2668c9a722e9218957c3cba3d96b195c1e318fe17d1f6305b1bdaab3d2
|
|
| MD5 |
992bbe6fc4771baf40b69a3a6c375362
|
|
| BLAKE2b-256 |
6c0a501ddf0496412c0c4c0e00b323aa3f2eeaffa76ef5609ec50b717361829b
|
Provenance
The following attestation bundles were made for ministatus-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on thegamecracks/ministatus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ministatus-0.5.0-py3-none-any.whl -
Subject digest:
d697fa2668c9a722e9218957c3cba3d96b195c1e318fe17d1f6305b1bdaab3d2 - Sigstore transparency entry: 660714332
- Sigstore integration time:
-
Permalink:
thegamecracks/ministatus@df21c9dd54aba176f7a0e32c8b5fd6acb6735463 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/thegamecracks
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@df21c9dd54aba176f7a0e32c8b5fd6acb6735463 -
Trigger Event:
workflow_dispatch
-
Statement type: