Logs with errors now open already smart-folded — every entry within ±25 of an error stays visible, gaps collapse into draggable bars. Folds can only be expanded individually via per-bar click or drag; the previous "toggle to unfold everything" path is gone. The header error-count chip becomes informational only (cursor and pointer-events stripped so it no longer reads as interactive). Removed the dead toggleErrors / uncollapseAllErrors / "toggled" state plumbing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Paste, share & analyse your logs
Built for Minecraft & Hytale
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 indifferentketchup/codex, forked from aternos/codex-minecraft
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 iblogs using Docker. A docker image is available in the GitHub Container Registry: ghcr.io/indifferentketchup/iblogs.
A MongoDB instance is also required to run iblogs.
An example docker compose files for self-hosting can be found here: docker/compose.production.yaml.
Config
You can configure iblogs 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 |
|---|---|---|
IBLOGS_STORAGE_TTL storage.ttl |
7776000 (90d) |
Time until logs are deleted after last view |
IBLOGS_STORAGE_LIMIT_BYTES storage.limit.bytes |
10485760 (10 MiB) |
Maximum size of a log in bytes |
IBLOGS_STORAGE_LIMIT_LINES storage.limit.lines |
25000 |
Maximum number of lines in a log |
IBLOGS_MONGODB_URL mongodb.url |
"mongodb://mongo" |
MongoDB connection URL |
IBLOGS_MONGODB_DATABASE mongodb.database |
"iblogs" |
Name of the MongoDB database |
IBLOGS_ID_LENGTH id.length |
7 |
The default length for new IDs |
IBLOGS_LEGAL_ABUSE legal.abuse |
null |
Public email address to report abuse |
IBLOGS_LEGAL_IMPRINT legal.imprint |
null |
The imprint URL |
IBLOGS_LEGAL_PRIVACY legal.privacy |
null |
The privacy policy URL |
IBLOGS_FRONTEND_NAME frontend.name |
null |
Instance name (defaults to domain) |
IBLOGS_FRONTEND_COLOR_ACCENT frontend.color.accent |
#5cb85c |
The accent/primary color |
IBLOGS_FRONTEND_COLOR_BACKGROUND frontend.color.background |
#1a1a1a |
The background color |
IBLOGS_FRONTEND_COLOR_TEXT frontend.color.text |
#e8e8e8 |
The text color |
IBLOGS_FRONTEND_COLOR_ERROR frontend.color.error |
#f62451 |
The error color |
IBLOGS_WORKER_REQUESTS 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:indifferentketchup/iblogs.git
# install composer dependencies
cd iblogs
composer install
# start development environment
cd dev
docker compose up
Open http://localhost in browser and enjoy.