Egg catalog
Every egg published in this repository, generated directly from the exported egg JSON: engines, Docker images and all 28 startup variables. The unified mirror lives at nest.potenfyr.in.
Multi Database
One egg. Every database. Every version. Supports 55+ SQL, NoSQL, In-Memory, Vector, Time-Series, Search, Graph and Object-Storage engines. Versions install isolated inside the container on demand from startup variables ('latest' auto-resolves). Switching engine or major version never deletes previous data - instances are kept per version until you remove them manually.
- author:
- support@potenfyr.in
- exported:
- 2026-08-22
- variables:
- 28
- features:
- pid_limit
Docker image tags
The egg uses a single universal image; engines not baked into the base image are provisioned on demand into bin/ and cached across boots.
| Image option | Reference | Tag |
|---|---|---|
| Universal Multi-Database (All Engines) | ghcr.io/potenfyr-studios/database-eggs:latest | latest |
Databases included
51 dispatch targets (50 engines plus the custom bring-your-own binary target), selected via DATABASE_TYPE. Aliases are shown in parentheses.
SQL
NoSQL
In-Memory/KV
Vector/Search
Time-Series/Storage
Graph/Ledger/Events
Misc
All exported variables
Every variable the egg exports to the panel. user = viewable & editable by server owners; admin = root admin only.
| Variable | Default | Editable | Description |
|---|---|---|---|
DATABASE_TYPE | mariadb | user | Engine to run (installed isolated inside the container on demand). |
DB_VERSION | latest | user | Version to run. 'latest' auto-resolves upstream newest. Series like 18 or 11.4 resolve to the latest patch automatically; full versions (8.0.45) are used as-is. Switching majors never deletes old data - a fresh data/<engine>/<version> instance is created and the old one is preserved. |
STRICT_VERSION | 1 | user | 1 = refuse to start if the exact requested version cannot be provided (no silent downgrades). 0 = warn and fall back to best available binary. |
DB_NAME | database | user | The default database/schema to create on startup. |
DB_USERNAMES | (empty) | user | Comma-separated database users to create/manage (no limit; e.g. 'alice,bob,carol'). Each user owns their private database '<user>_db' with full rights and also gets access to the shared database below. Adding or removing names applies on the next start: new users are created, removed users are deleted with their credentials (their database is preserved). Invalid/reserved names are skipped with a warning. Leave empty for the legacy single user 'dbuser'. |
DB_PASSWORDS | auto | user | Comma-separated passwords positionally matched to Database Usernames (e.g. 'S3cretA,S3cretB'). An empty slot generates a fresh random password for that user. Passwords apply exactly once, at user creation: existing users' credentials are never changed by restarts or edits. Generated/stored passwords are recorded in .env and .db-users/credentials (mode 600). |
DB_ROOT_PASSWORD | (empty) | user | Password for Root, Superuser, Admin, or Master Key. Leave EMPTY (or 'auto') to auto-generate an ultra-strong random secret. If you set a password, it is used for the root account and rotates an existing root credential on the next start. |
AUTO_GENERATE_CREDENTIALS | 1 | user | 1 = Automatically generate cryptographically secure 32-character random passwords if fields are empty or 'auto', and update startup environment variables. |
SAVE_TO_ENV | 1 | user | 1 = Persist database connection parameters and credentials into /home/container/.env (mode 600). Set to 0 to keep credentials strictly in process startup variables. |
PERFORMANCE_TUNING | 1 | user | 1 = Automatically calculate buffer pools, cache sizes, memory limits, and I/O threads based on allocated container RAM and CPU cores. |
SECURITY_HARDENING | 1 | user | 1 = Enforce SCRAM-SHA-256 encryption, drop insecure default database accounts, restrict permissions, and disable dangerous debug commands. |
EXTRA_ARGS | (empty) | user | Additional custom CLI flags passed directly to the database daemon on startup. |
EXTRA_URLS | (empty) | user | Extra files to download at install time (one per line, e.g. 'dest/name|url' or plain URL). |
CUSTOM_COMMAND | (empty) | user | Command to run when DATABASE_TYPE=custom. |
EXTRA_RUNTIMES | (empty) | user | Comma-separated companion tools to dynamically inject on-demand into .runtimes/ (e.g. python, uv, nodejs, bun, litestream, rclone, aws, psql, mongosh). |
ARCHIVE_ON_SWITCH | 1 | user | 1 = when switching engine versions/upgrading, snapshot the previous data directory into ./archive/<engine>/ (compressed copy; originals are never deleted) so rollback is always possible. Credentials in .env are retained across switches either way. 0 = skip archiving. |
REDIS_OVERCOMMIT_MEMORY | 1 | user | 1 = attempt vm.overcommit_memory=1 on the host for safe Redis fork()/background saves (requires root; otherwise prints one guidance line). Set 0 to skip entirely. |
HOST_SOMAXCONN | 0 | user | Attempt net.core.somaxconn on the host for connection-heavy engines (0 = skip). Needs root; unprivileged runs print guidance only. |
HOST_DISABLE_THP | 1 | user | 1 = attempt THP=madvise on the host (reduces latency spikes for Redis/MongoDB). Needs root; unprivileged runs are silent no-ops. |
GIT_REPO_URL | (empty) | user | https GitHub repository to sync into the server workspace on startup (e.g. https://github.com/owner/repo or owner/repo). Leave empty to disable. On the first boot the repo is cloned; on later boots new commits are detected, the previous code is archived into ./archive/git-sync/ and only repo-managed files are replaced. Database data (data/), credentials (.env), bin/, logs/, config/ are never touched. |
GIT_BRANCH | (empty) | user | Branch to track in the Git repository (empty = the repo's default branch). |
GIT_TOKEN | (empty) | admin | Admin-only access token for PRIVATE repositories (classic PAT or fine-grained, read-only is enough). Never logged, never written to disk. Leave empty for public repos. |
GIT_ARCHIVE_ON_UPDATE | 1 | user | 1 = when new commits are detected, snapshot the previous synced code into ./archive/git-sync/ before updating (rollback always possible). 0 = replace without archiving. |
EGG_UPDATE_URL | https://raw.githubusercontent.com/PotenFYR-Studios/Database-Eggs/master/egg-database-multi.json | user | Check EGG_UPDATE_URL on startup and self-update the launcher when the upstream egg changed (raw GitHub egg JSON or run.sh URL). |
AUTO_UPDATE_EGG | 1 | user | 1 = check EGG_UPDATE_URL on startup and self-update the launcher when the upstream egg changed. 0 = disable the check entirely. |
PANEL_STOP_WATCHER | auto | user | Watch console stdin for stop commands ('stop', '^C', 'exit', ...) delivered as text by TTY daemons (Feather Panel and other Wings-family stops). auto = on for all consoles; 0 = disable (keep stdin for the database); 1 = force on. |
CLI_THEME | db | user | Console output style. 'db' = agent theme (</> database-eggs prefixes); 'classic' = the previous [PotenFYR] bracket style. |
CLI_BANNER_GRADIENT | auto | user | Boot banner color gradient: auto (random per boot), citrus, aurora, sunset, ocean, candy, spectrum, or none (flat). |
Startup command
For reference, the exact startup line the egg runs (it prefers the on-disk entrypoint and only fetches the remote bootstrap as a fallback):
if [ -f /entrypoint.sh ]; then exec bash /entrypoint.sh; elif [ -f /usr/local/bin/entrypoint.sh ]; then exec bash /usr/local/bin/entrypoint.sh; elif [ -f ./entrypoint.sh ]; then exec bash ./entrypoint.sh; else echo "[startup] Fetching remote entrypoint bootstrap..."; (curl -fsSL --retry 3 https://raw.githubusercontent.com/PotenFYR-Studios/Database-Eggs/master/entrypoint.sh || wget -qO- https://raw.githubusercontent.com/PotenFYR-Studios/Database-Eggs/master/entrypoint.sh) | tr -d "\r" | exec bash; fi