Skip to content

Configuration reference

The plugin writes a default plugins/CreeperCLI/config.yml on first boot. Edit it and run /creepercli reload, or restart the server. Listener host and port require a restart: binding happens once at enable.

Full default file:

config-version: 1

network:
  # Host IP interface to bind to ("0.0.0.0" for all interfaces, "127.0.0.1" for SSH tunnel only)
  host: "0.0.0.0"
  port: 45678
  max-connections: 16
  max-payload-bytes: 10485760

auth:
  session-timeout-minutes: 15
  login-limiter:
    max-attempts: 3
    window-minutes: 5
  fail2ban:
    max-failures: 3
    window-minutes: 10
    ban-minutes: 10

sandbox:
  # Path jail root ("." or empty string defaults to the server working directory)
  server-root: "."

exec:
  timeout-seconds: 30
  allowlist:
    - "list"
    - "whitelist *"
    - "say *"
    - "restart"

limits:
  commands-per-second: 30
  file-lock-ttl-minutes: 5
  transfer-chunk-size: 65536
  max-transfer-bytes: 1073741824

monitor:
  log-buffer-lines: 500
  top-refresh-seconds: 2
  # Set debug-log to true for detailed RPC payload logging in the server console
  debug-log: false

audit:
  max-mb: 10

config-version and auto-migration

When you upgrade the plugin, missing keys are injected into config.yml automatically while your passwords, ports, and allowlists are preserved.

network

Key Default Meaning
host "0.0.0.0" Bind address. Binds all interfaces by default so hosted containers (Pterodactyl, Apex, Docker) work out of the box. Use "127.0.0.1" and an SSH tunnel on a machine you control. Requires restart.
port 45678 TCP port. Requires restart.
max-connections 16 Hard cap on concurrent TCP connections; extra sockets get one E_SERVER_FULL response and close.
max-payload-bytes 10485760 (10 MiB) Largest single protocol frame accepted, e.g. one transfer chunk or one fs.cat reply. Larger frames get E_PAYLOAD_TOO_LARGE.

auth

Key Default Meaning
session-timeout-minutes 15 Session inactivity timeout. A token unused this long becomes invalid (E_SESSION_EXPIRED); activity resets the clock.
login-limiter.max-attempts 3 Failed logins per IP per window before temporary lockout.
login-limiter.window-minutes 5 Window for max-attempts.
fail2ban.max-failures 3 Login failures that trigger a ban, counted within the fail2ban window.
fail2ban.window-minutes 10 Window in which failures accumulate.
fail2ban.ban-minutes 10 Ban duration. Banned IPs get E_BANNED on login.

sandbox

Key Default Meaning
server-root "." Jail root for all file actions. "." or empty string means the main server directory (parent of plugins/). Any absolute path works, e.g. /var/mc/data. ~ expands to the jail root.

exec

Key Default Meaning
timeout-seconds 30 Max time a console command may run before the client sees an error.
allowlist list, whitelist *, say *, restart Console commands the API may run, as space-separated patterns with * wildcards. See security.md.

limits

Key Default Meaning
commands-per-second 30 Token-bucket rate for authenticated actions, per session. Bursts get E_RATE_LIMITED.
file-lock-ttl-minutes 5 How long an edit lock survives if the client dies.
transfer-chunk-size 65536 (64 KiB) Chunk size for push and pull streams.
max-transfer-bytes 1073741824 (1 GiB) Per-transfer size cap, server-side.

monitor

Key Default Meaning
log-buffer-lines 500 Lines of console history buffered for creepercli log.
top-refresh-seconds 2 Refresh interval for the top dashboard.
debug-log false Logs detailed RPC action dispatches, IPs, and payload events to the server console.

audit

Key Default Meaning
max-mb 10 Size cap for plugins/CreeperCLI/creepercli-audit.log before rotation.

Update checker

The plugin checks Modrinth (project fPKEvBZo) silently every 4 hours. A new version prints a notice to the console and to OP players on join. Run /creepercli update to check manually.

Usage metrics (bStats)

The plugin sends anonymous usage metrics to bStats: plugin version, server software and version, Java version, OS, online player count, and online-mode. No usernames, paths, commands, or tokens are ever sent.

Beyond the standard data, CreeperCLI reports:

Chart Type Values
bind_host SimplePie the configured network.host value
debug_log SimplePie enabled / disabled
two_fa_users AdvancedPie accounts with and without 2FA
user_count SingleLineChart number of accounts

Server owners can disable metrics in the shared plugins/bStats/config.yml (enabled: false). The bStats library is shaded into the plugin jar and relocated, so it never conflicts with other plugins.