Database-Eggs Docs · Catalog

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

PTDL_v2egg-database-multi.json

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 optionReferenceTag
Universal Multi-Database (All Engines)ghcr.io/potenfyr-studios/database-eggs:latestlatest

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

mariadbmysqlpostgresqlcockroachdbyugabytedbtidbdolt

NoSQL

mongodb (mongo)ferretdbarangodborientdbravendbcassandraaerospikerethinkdb

In-Memory/KV

redisvalkeykeydbdragonflymemcachedetcdnatsimmudbconsul

Vector/Search

meilisearchtypesenseqdrantelasticsearchopensearchsolrmanticoresearchmilvusweaviatequickwit

Time-Series/Storage

influxdbclickhousevictoriametricsprometheusquestdbseaweedfsgarageminiopocketbaselokisqlite

Graph/Ledger/Events

neo4jdgraphsurrealdbkafka

Misc

sqldcustom

All exported variables

Every variable the egg exports to the panel. user = viewable & editable by server owners; admin = root admin only.

VariableDefaultEditableDescription
DATABASE_TYPEmariadbuserEngine to run (installed isolated inside the container on demand).
DB_VERSIONlatestuserVersion 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_VERSION1user1 = refuse to start if the exact requested version cannot be provided (no silent downgrades). 0 = warn and fall back to best available binary.
DB_NAMEdatabaseuserThe default database/schema to create on startup.
DB_USERNAMES(empty)userComma-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_PASSWORDSautouserComma-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)userPassword 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_CREDENTIALS1user1 = Automatically generate cryptographically secure 32-character random passwords if fields are empty or 'auto', and update startup environment variables.
SAVE_TO_ENV1user1 = Persist database connection parameters and credentials into /home/container/.env (mode 600). Set to 0 to keep credentials strictly in process startup variables.
PERFORMANCE_TUNING1user1 = Automatically calculate buffer pools, cache sizes, memory limits, and I/O threads based on allocated container RAM and CPU cores.
SECURITY_HARDENING1user1 = Enforce SCRAM-SHA-256 encryption, drop insecure default database accounts, restrict permissions, and disable dangerous debug commands.
EXTRA_ARGS(empty)userAdditional custom CLI flags passed directly to the database daemon on startup.
EXTRA_URLS(empty)userExtra files to download at install time (one per line, e.g. 'dest/name|url' or plain URL).
CUSTOM_COMMAND(empty)userCommand to run when DATABASE_TYPE=custom.
EXTRA_RUNTIMES(empty)userComma-separated companion tools to dynamically inject on-demand into .runtimes/ (e.g. python, uv, nodejs, bun, litestream, rclone, aws, psql, mongosh).
ARCHIVE_ON_SWITCH1user1 = 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_MEMORY1user1 = 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_SOMAXCONN0userAttempt net.core.somaxconn on the host for connection-heavy engines (0 = skip). Needs root; unprivileged runs print guidance only.
HOST_DISABLE_THP1user1 = attempt THP=madvise on the host (reduces latency spikes for Redis/MongoDB). Needs root; unprivileged runs are silent no-ops.
GIT_REPO_URL(empty)userhttps 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)userBranch to track in the Git repository (empty = the repo's default branch).
GIT_TOKEN(empty)adminAdmin-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_UPDATE1user1 = 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_URLhttps://raw.githubusercontent.com/PotenFYR-Studios/Database-Eggs/master/egg-database-multi.jsonuserCheck 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_EGG1user1 = check EGG_UPDATE_URL on startup and self-update the launcher when the upstream egg changed. 0 = disable the check entirely.
PANEL_STOP_WATCHERautouserWatch 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_THEMEdbuserConsole output style. 'db' = agent theme (</> database-eggs prefixes); 'classic' = the previous [PotenFYR] bracket style.
CLI_BANNER_GRADIENTautouserBoot 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):

startup
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