indifferentketchup 0282ab594e fix: buffer large pastes outside the textarea to prevent UI freeze
Pasting (or drag-loading, or file-uploading) several MB of text into
the <textarea> would lock up the browser for seconds while it laid
out millions of characters. The bottleneck is the textarea itself,
not the filter pipeline (filters only run on Save).

Hold above-threshold (256 KB) content in a JS-side `bufferedContent`
variable and render only the first 50 lines + a banner into the
textarea. The Save path uses `bufferedContent` when set, so the
upload sees the full content. The textarea becomes read-only while
the buffer is active; user-typed input invalidates the buffer
automatically (the textarea is the source of truth in normal mode).

A new `loadContent(text)` helper is the single entry point: it
chooses textarea vs. buffer based on length. All call sites
(clipboard read, paste-event for text, file load, text drop) route
through it. Threshold is 256 KB (above which textarea rendering
visibly stutters); preview is 50 lines (enough to recognise the log
without choking the renderer).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:18:31 +00:00
all
2026-04-30 09:44:02 -05:00
all
2026-04-30 09:44:02 -05:00
all
2026-04-30 09:44:02 -05:00
all
2026-04-30 09:44:02 -05:00

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.

Description
No description provided
Readme MIT 666 KiB
Languages
PHP 67.8%
CSS 20.4%
JavaScript 11.3%
Dockerfile 0.5%