Glade is the official, web-based administration panel that is bundled with every Gingee server. It provides a simple, secure, and powerful user interface for managing the entire lifecycle of all applications running on your server instance.
Glade is itself a Gingee application, built to showcase the platform's capabilities. It is a privileged app, meaning it has special permission to use the powerful platform module to perform its administrative tasks.
When you create a new Gingee project using the gingee-cli init command, the Glade application is automatically installed and configured for you.
Initial Credentials: During the init wizard, you are prompted for an administrator username and password. The CLI securely hashes the password using Argon2 and stores these credentials inside Glade's configuration file.
Configuration File: The credentials are saved in web/glade/box/app.json:
{
"name": "glade",
"env": {
"ADMIN_USERNAME": "admin",
"ADMIN_PASSWORD_HASH": "$argon2id$v=19$m=..."
}
}
Accessing Glade: By default, Gingee is configured to make Glade the default_app. To access it, simply navigate your browser to the root URL of your running server (e.g., http://localhost:7070). You will be automatically directed to the Glade login page.
Failed logins are rate-limited using the server cache (memory or Redis), keyed by client IP and username. Defaults:
| Setting | Default | Meaning |
|---|---|---|
LOGIN_MAX_ATTEMPTS |
5 |
Failures before lockout (per IP and per username) |
LOGIN_WINDOW_SEC |
900 |
Window for counting failures (15 minutes) |
LOGIN_LOCKOUT_SEC |
900 |
Lockout duration after the limit is hit |
Override in web/glade/box/app.json β env if needed. When locked, /glade/login returns HTTP 429 with Retry-After and a generic message (no username enumeration). Successful login clears counters for that IP and username.
Argon2 password verification is expensive by design; rate limiting reduces online guessing and login DoS. Prefer keeping Glade off the public internet when possible.
Credentials are chosen at gingee-cli init, not a shared product default. Still rotate the admin password if:
app.json, compromised host)Use gingee-cli reset-pwd (below) or edit ADMIN_PASSWORD_HASH after hashing a new password. Restart the server after changing app.json.
After a successful login, you are taken to the main Glade dashboard. This is your central hub for viewing and managing all applications.
Login
Dashboard
The dashboard consists of two main components:
web/).app.json file.All major application management tasks can be performed directly from the Glade UI.
This is for deploying a new application from a package file. Glade provides an intelligent, multi-step wizard to ensure applications are installed securely and correctly.
.gin file, Glade analyzes the package in your browser and transforms the modal into a tabbed installation wizard.mandatory and optional permissions the application requires (read from its pmft.json manifest). You must review and consent to these permissions before proceeding.
Upload App Package(.gin) File
Grant Permissions
Configure App
Confirm Install
Security is managed at the application level. You can review and change the permissions for any installed app at any time.
This is for deploying a new version of an existing application. The process is nearly identical to a new installation, ensuring the same level of security and configuration.
.gin package file, the wizard will analyze it and guide you through the same Permissions and Configuration tabs, allowing you to approve any new permissions the upgraded version requires.
Upload App Package(.gin) File
Grant Permissions
Configure App
Confirm Upgrade
This allows you to create a distributable .gin package from a live, running application.
<app-name>.gin file. This file can be used to install the application on another Gingee server or for backup purposes.If a recent upgrade has caused issues, you can quickly and safely revert to the previous version.
This is a destructive action that will permanently remove an application and all of its associated configuration and content.
Top nav Logs opens a viewer for this Gingee process only:
logs/gingee-YYYY-MM-DD.log. Includes engine lines and app-forwarded lines (JSON field app). Optional Engine only hides forwarded app lines.web/<app>/box/logs/app-YYYY-MM-DD.log for any installed app, including glade..log only; rotated .gz not opened), level filter, search in the current window, default last 100 lines.logs-list.js / logs-read.js execute/reload/response lines). Uncheck to see those lines.APIs: platform.listLogFiles / readLogFile β /glade/api/logs-list, /glade/api/logs-read. Paths are jailed to the server logs directory and each appβs box/logs.
The top navigation bar includes a Schedules control. It opens an admin panel for jobs registered on this node from app.json β schedules (only when gingee.json β scheduler.enabled is true):
APIs: platform.getSchedulerStatus / listSchedulerJobs / runSchedulerJob (also /glade/api/schedule-list, /glade/api/schedule-run). If the scheduler is disabled, the list is empty and an info banner explains why.
The top navigation bar includes a Queue / DLQ control (next to Schedules / About / Logout). It opens an admin panel for the engine background job system (gingee.json β queue):
default_attempts budget; Discard removes the entry.State legend: running / waiting = this node; pending / delayed = driver pool (memory local; redis shared). Memory DLQ is lost on restart; Redis DLQ is durable (TTL). APIs: platform.getQueueStats / listQueueLiveJobs / listQueueDlq / β¦ (/glade/api/queue-*). See Server Config β queue.
Glade actions are recorded by the engine in an append-only JSONL audit log. By default this is logs/audit.jsonl relative to the project root (gingee.json β audit). Each line includes timestamp, event name, actor (typically glade), target app when applicable, and details.
Covered events include:
scheduler.run_now)queue.dlq.retry, queue.dlq.discard)logs.list, logs.read β metadata only; log line bodies are not copied into the audit file)This is separate from application request logsβsee Server Config β audit.
To securely end your administrative session, simply click the Logout button in the top-right corner of the header. This will delete your session on the server and clear the authentication cookie from your browser.
The password is set during gingee-cli init (hashed with Argon2 into ADMIN_PASSWORD_HASH). There is no recoverable plaintext. If you forget it, or you are rotating credentials, use the CLI with host access:
gingee-cli:
gingee-cli reset-pwd
web/glade/box/app.json file, replacing the old value for the ADMIN_PASSWORD_HASH key.Note: The hash that may appear in the Gingee source repository under web/glade/ is for development only. Production projects should only use credentials produced by init / reset-pwd, never a copied repo default.