Mclogs
Paste, share and analyse your logs - Built for Minecraft & Hytale
Install / Use
/learn @aternosorg/MclogsREADME
Features
- Share logs by pasting or uploading files
- Automatic removal of sensitive information (e.g. IP addresses)
- Short URLs for easy sharing
- Syntax highlighting
- Line numbers
- Direct links to specific lines
- Analysis and parsing using codex
For developers
- Upload your logs using the API
- Add metadata to shared logs, e.g. version numbers, server ids, etc.
- Retrieve logs and their metadata from the API
- Open source and self-hostable
Self-hosting
You can self-host mclogs using Docker. A docker image is available in the GitHub Container Registry: ghcr.io/aternosorg/mclogs.
A MongoDB instance is also required to run mclogs.
An example docker compose files for self-hosting can be found here: docker/compose.production.yaml.
Config
You can configure mclogs by creating a config.json file in the root directory, see example.config.json or by setting
environment variables. Environment variables override settings in the config file.
Here is a list of all available config options:
| Variable / JSON Path | Default | Description |
|:--------------------------------------------------------------------|:--------------------|:--------------------------------------------|
| MCLOGS_STORAGE_TTL <br> storage.ttl | 7776000 (90d) | Time until logs are deleted after last view |
| MCLOGS_STORAGE_LIMIT_BYTES <br> storage.limit.bytes | 10485760 (10 MiB) | Maximum size of a log in bytes |
| MCLOGS_STORAGE_LIMIT_LINES <br> storage.limit.lines | 25000 | Maximum number of lines in a log |
| MCLOGS_MONGODB_URL <br> mongodb.url | "mongodb://mongo" | MongoDB connection URL |
| MCLOGS_MONGODB_DATABASE <br> mongodb.database | "mclogs" | Name of the MongoDB database |
| MCLOGS_ID_LENGTH <br> id.length | 7 | The default length for new IDs |
| MCLOGS_LEGAL_ABUSE <br> legal.abuse | null | Public email address to report abuse |
| MCLOGS_LEGAL_IMPRINT <br> legal.imprint | null | The imprint URL |
| MCLOGS_LEGAL_PRIVACY <br> legal.privacy | null | The privacy policy URL |
| MCLOGS_FRONTEND_NAME <br> frontend.name | null | Instance name (defaults to domain) |
| MCLOGS_FRONTEND_COLOR_ACCENT <br> frontend.color.accent | #5cb85c | The accent/primary color |
| MCLOGS_FRONTEND_COLOR_BACKGROUND <br> frontend.color.background | #1a1a1a | The background color |
| MCLOGS_FRONTEND_COLOR_TEXT <br> frontend.color.text | #e8e8e8 | The text color |
| MCLOGS_FRONTEND_COLOR_ERROR <br> frontend.color.error | #f62451 | The error color |
| MCLOGS_WORKER_REQUESTS <br> worker.requests | 500 | Max requests per single worker |
There are a few more environment variables that can be set to modify the FrankenPHP/Caddy setup directly:
| Variable | Default | Description |
|----------------------|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| SERVER_NAME | ":80" | Set the Caddy server name, set this to your domain for automatic SSL |
| TRUSTED_PROXIES | "private_ranges" | Set trusted proxy address ranges |
| FRANKENPHP_WORKERS | 16 | The number of FrankenPHP workers | |
Development setup
Prerequisites
Installation
# clone repository
git clone git@github.com:aternosorg/mclogs.git
# install composer dependencies
cd mclogs
composer install
# start development environment
cd dev
docker compose up
Open http://localhost in browser and enjoy.
