panel

module
v0.1.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2026 License: AGPL-3.0

README

Ammonode Panel

An open-source all-in-one panel for hosting providers: billing, game & bot servers (compatible with Pterodactyl eggs) and web hosting — one account, one bill, one dashboard.

Status: early (Phase 1 feature-complete: billing, game servers). Not ready for production yet.

Components

  • panel (this repo) — API, billing, web UI.
  • agent — the daemon installed on every node to run game servers, bots and websites (Ammonode/agent).

Running for development

Requirements: Go (latest stable), Node.js LTS + pnpm, Docker.

make dev-db   # PostgreSQL 18 in Docker
make run      # builds the UI + panel, then runs at http://localhost:8080

Full documentation is in docs/.

Licence

Core: AGPL-3.0. Extension & theme SDKs: MIT (planned). See docs/decisions.md.

Directories

Path Synopsis
cmd
eggcheck command
Command eggcheck parses every egg export under the given directories and reports which ones Ammonode cannot import.
Command eggcheck parses every egg export under the given directories and reports which ones Ammonode cannot import.
panel command
Command panel runs the Ammonode panel: API, billing and the embedded web UI.
Command panel runs the Ammonode panel: API, billing and the embedded web UI.
internal
agentlink
Package agentlink is the panel side of the agent connection (docs/agent-protocol.md): a WebSocket over mTLS on a dedicated listener, carrying JSON messages.
Package agentlink is the panel side of the agent connection (docs/agent-protocol.md): a WebSocket over mTLS on a dedicated listener, carrying JSON messages.
auth
Package auth holds password hashing, session tokens and login rate limiting.
Package auth holds password hashing, session tokens and login rate limiting.
billing
Package billing holds pricing rules and billing settings (docs/billing.md).
Package billing holds pricing rules and billing settings (docs/billing.md).
db
Package db opens the PostgreSQL pool and applies the embedded schema migrations.
Package db opens the PostgreSQL pool and applies the embedded schema migrations.
db/dbtest
Package dbtest gives tests a fresh, migrated PostgreSQL database.
Package dbtest gives tests a fresh, migrated PostgreSQL database.
dns
Package dns manages DNS zones at an external authoritative provider (PowerDNS or Cloudflare).
Package dns manages DNS zones at an external authoritative provider (PowerDNS or Cloudflare).
extensions
Package extensions loads, verifies and runs Ammonode extensions: a signed zip package (.ammx) with a manifest, an optional WebAssembly backend run by Extism, and an optional browser module that fills UI slots.
Package extensions loads, verifies and runs Ammonode extensions: a signed zip package (.ammx) with a manifest, an optional WebAssembly backend run by Extism, and an optional browser module that fills UI slots.
gateway
Package gateway talks to payment providers over plain HTTPS (no SDKs): Stripe Checkout and PayPal Orders v2.
Package gateway talks to payment providers over plain HTTPS (no SDKs): Stripe Checkout and PayPal Orders v2.
importer
Package importer moves data from other panels into Ammonode: Pterodactyl (users, nodes, allocations, eggs, servers — following Calagopus' importer), and Paymenter or WHMCS (customers, products, services, invoices, payments, credit — following Paymenter's WHMCS importer).
Package importer moves data from other panels into Ammonode: Pterodactyl (users, nodes, allocations, eggs, servers — following Calagopus' importer), and Paymenter or WHMCS (customers, products, services, invoices, payments, credit — following Paymenter's WHMCS importer).
invoicepdf
Package invoicepdf renders an invoice as a PDF with the standard Helvetica fonts (no embedded fonts, no dependencies).
Package invoicepdf renders an invoice as a PDF with the standard Helvetica fonts (no embedded fonts, no dependencies).
mail
Package mail sends transactional email over SMTP (STARTTLS, implicit TLS or plain) with the standard library, and renders the panel's email templates in English and Indonesian.
Package mail sends transactional email over SMTP (STARTTLS, implicit TLS or plain) with the standard library, and renders the panel's email templates in English and Indonesian.
mailhost
Package mailhost manages hosted email (domains and mailboxes) on a Stalwart mail server through its JMAP management API (Stalwart 0.16+: urn:stalwart:jmap, x:Domain / x:Account).
Package mailhost manages hosted email (domains and mailboxes) on a Stalwart mail server through its JMAP management API (Stalwart 0.16+: urn:stalwart:jmap, x:Domain / x:Account).
pki
Package pki is the panel's internal certificate authority for agent mTLS.
Package pki is the panel's internal certificate authority for agent mTLS.
provision
Package provision turns a blueprint plus a service's choices into the ServiceSpec the agent runs, following Pterodactyl's conventions so official eggs and yolks images work unchanged (environment names, STARTUP, /home/container, /mnt/server).
Package provision turns a blueprint plus a service's choices into the ServiceSpec the agent runs, following Pterodactyl's conventions so official eggs and yolks images work unchanged (environment names, STARTUP, /home/container, /mnt/server).
server
Package server wires the panel's HTTP routes.
Package server wires the panel's HTTP routes.
store
Package store holds the panel's PostgreSQL queries.
Package store holds the panel's PostgreSQL queries.
webauthn
Package webauthn implements the relying-party side of WebAuthn for passkeys (W3C WebAuthn Level 2, §7.1 registration and §7.2 authentication) with the standard library: attestation "none" (the attestation statement is not checked, so authenticators are not vouched for), user verification required, ES256 / EdDSA / RS256 keys.
Package webauthn implements the relying-party side of WebAuthn for passkeys (W3C WebAuthn Level 2, §7.1 registration and §7.2 authentication) with the standard library: attestation "none" (the attestation statement is not checked, so authenticators are not vouched for), user verification required, ES256 / EdDSA / RS256 keys.
webauthn/webauthntest
Package webauthntest is a software WebAuthn authenticator for tests.
Package webauthntest is a software WebAuthn authenticator for tests.
webui
Package webui serves the React app built from web/ and embedded at compile time.
Package webui serves the React app built from web/ and embedded at compile time.
pkg
egg
Package egg parses Pterodactyl and Pelican egg exports into one normalised form.
Package egg parses Pterodactyl and Pelican egg exports into one normalised form.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL