Shell-Eggs Docs · Configuration

Startup variables

The complete table from egg-shell-multi.json - 24 variables, every one with a working default. SHELL_USERS (the login users) is mandatory in practice; auto password slots generate crypto-random secrets that are shown once and persisted mode-600.

VariableNameDescriptionDefault
SHELL_TYPEoptional
Shell TypeWhich shell(s) to run. 'auto' opens an interactive paginated picker in the console on first boot. Otherwise a comma-separated list of ids:auto
SHELL_USERSrequired
Shell UsernamesMANDATORY in practice: comma-separated login users created inside the container (e.g. 'alice,bob'). Each gets a private home + bash. Invalid names are skipped with a warning.empty
SHELL_PASSWORDSoptional
Shell User PasswordsPositionally matched to Shell Usernames ('S3cretA,S3cretB'). Empty or 'auto' slots generate cryptographically random secrets (recorded in .env and .sh-users/credentials, mode 600, shown once in console).auto
SHELL_EXTRA_TYPESoptional
Extra Shell TypesOPTIONAL: additional shell ids to run alongside the primary (same catalog as Shell Type). Example: 'socat,tmux' to also run a socat reverse shell and a tmux session.empty
SHELL_EXTRA_PORTSoptional
Extra PortsOPTIONAL: comma-separated extra panel ports for additional PORTED shells (the primary shell always binds this server's default port). Positionally matched to Extra Shell Types order. Reverse shells and multiplexers need no port.empty
SHELL_REVERSE_HOSToptional
Reverse Target HostOPTIONAL: where reverse shells connect OUT to (your public IP / listener host). Required only when running reverse shells.empty
SHELL_REVERSE_PORToptional
Reverse Target PortOPTIONAL: port of your listener (nc -lvnp). Default 4444.4444
SHELL_REVERSE_TLSoptional
TLS Reverse ShellsOPTIONAL: 1 = TLS-capable reverse profiles (ncat, socat) wrap the channel with TLS when both sides support it.0
SHELL_SSH_PUBKEY_RAWoptional
SSH Public KeyOPTIONAL: your public key (one line, e.g. ssh-ed25519 AAAA... comment). Installed into authorized_keys; the ONLY way in for the ssh-hardened profile.empty
SHELL_SSH_PASSWORD_AUTHoptional
SSH Password AuthOPTIONAL: yes/no for the standard ssh + ssh-cert profiles (ssh-hardened is always keys-only).yes
SHELL_MOSH_UDP_STARToptional
MOSH UDP Start PortOPTIONAL: first UDP port for Mosh roaming (opens SHELL_MOSH_UDP_COUNT ports downward range). Default 60000.60000
SHELL_WEB_USERoptional
Web Shell UserOPTIONAL: basic-auth user for ttyd/gotty web terminals (password below). Empty = first generated credential is used.empty
SHELL_WEB_PASSoptional
Web Shell PasswordOPTIONAL: basic-auth password for ttyd/gotty.empty
SHELL_WEB_TOKENoptional
Web Shell TokenOPTIONAL: bearer token for php/node web shells (auto-generated when empty, shown once in console).empty
SHELL_MOTDoptional
MOTD BannerOPTIONAL: message shown on every shell login.Welcome to the Multi-Shell Universal Egg (Pot...
SHELL_MUX_SESSIONoptional
Multiplexer Session NameOPTIONAL: tmux/screen session name. Default 'shell-eggs'.shell-eggs
DEFAULT_SHELL_MUXoptional
Default Login MultiplexerOPTIONAL: tmux|screen - drop SSH/Telnet logins straight into the persistent session.empty
SHELL_SHOW_CREDENTIALSoptional
Show Credentials in ConsoleOPTIONAL: 1 = print generated credentials on the boot console (they are always written to .env and .sh-users/credentials, mode 600).1
AUTO_GENERATE_CREDENTIALSoptional
Auto Generate Credentials1 = generate crypto-random secrets for empty/'auto' password slots and persist them. Credentials are the one mandatory input of this egg - everything else is optional.1
PANEL_STOP_WATCHERoptional
Panel Stop WatcherWatch console stdin for stop commands ('stop', '^C', 'exit', ...) delivered as text by TTY daemons. auto = on for all consoles; 0 = disable; 1 = force on.auto
CLI_THEMEoptional
Console ThemeConsole output style. 'sh' = agent theme (</> shell-eggs prefixes); 'classic' = [PotenFYR] bracket style.sh
CLI_BANNER_GRADIENToptional
Banner GradientBoot banner gradient: auto (random per boot), aurora, candy, citrus, forest, sunset, ocean, or none.auto
EGG_UPDATE_URLoptional
Egg Update URLCheck on startup and self-update the launcher when the upstream egg changed (raw GitHub egg JSON or entrypoint URL).https://raw.githubusercontent.com/PotenFYR-St...
AUTO_UPDATE_EGGoptional
Auto Update Egg1 = check EGG_UPDATE_URL on startup and self-update. 0 = disable the check entirely.1

Port pairing rule: the primary ported shell binds the panel port (SERVER_PORT); extra ported shells consume SHELL_EXTRA_PORTS positionally in the order of SHELL_EXTRA_TYPES. Reverse shells and multiplexers never need an inbound port. See the install guide for the panel allocation walkthrough.