| π¨ |
Do not run This branch ships experimental features that may be unstable, incomplete, or unsafe. For live environments, install a stable release and follow the official docs. |
| π Documentation | π§© Developer reference | π¬ Community |
|---|---|---|
|
| Layer | Technology | Path |
|---|---|---|
| π Panel API | PHP 8.5 | backend/ |
| βοΈ Web UI | Next.js Β· React Β· TypeScript | frontendv2/ |
| π¦ Async jobs | Rust (async-runner) |
runner/ |
| π¦ Installer | Bash | installer/ |
Docker images for the backend, frontend, and async runner are published through the release workflows listed below.
icanhasfeatherpanel is FeatherPanelβs static developer reference. No running panel is required to browse it.
Whatβs included
| Section | Contents |
|---|---|
| π§© Plugins | Full Markdown guides for building addons (conf.yml, backend, frontend, SDK, packaging, AI recipes) |
| π§ Pages | Every frontend Next.js route/slug (pages/all.json) for UI navigation guidance |
| π§© Widgets | Injection points as HTML + .md + .json |
| β¨οΈ CLI | All featherpanel / php cli commands + production usage (cli/usage.md, cli/all.json) |
| βοΈ Settings | Admin settings keys, types, options, categories from SettingsController (settings/all.json) |
| π§° Installer | install.bash flags, menus, automation env vars (installer/guide.md) |
| π Permissions | Every permission node as HTML + .md + .json (all.json) |
| π‘ Events | Plugin hooks as HTML + .md + .json (all.json) |
| π API reference | Redoc UI + raw openapi.json |
| π§ RAG index | catalog.json + llms.txt listing every machine-readable doc |
| π OAuth2 playground | OAuth2 docs (live API calls still need a panel) |
π Live site (GitHub Pages)
https://mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel/
Plugin authoring (Markdown + AI index):
https://mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel/plugins/
RAG / machine-readable index:
- https://mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel/rag/
- https://mythicalltd.github.io/FeatherPanel/catalog.json
- https://mythicalltd.github.io/FeatherPanel/llms.txt
Examples for crawlers: β¦/pages/all.json, β¦/cli/all.json, β¦/cli/usage.md, β¦/settings/all.json, β¦/installer/guide.md, β¦/permissions/all.json, β¦/events/all.json, β¦/widgets/index.json, β¦/api/openapi.json, β¦/plugins/ai-guide.md.
π οΈ Build locally
Hand-authored inputs live in frontendv2/icanhas/ (plugin Markdown, auth guides, assets, schemas). One command β pnpm export:docs β builds the entire public/icanhasfeatherpanel/ tree (widgets, pages, permissions, events, API + OpenAPI, CLI, settings, installer, plugins/auth indexes, RAG). That output is gitignored and produced at ship time for both GitHub Pages (pnpm build:public-docs) and Docker/panel images (host export:docs then frontendv2 image build, or pnpm build:with-docs / make frontend).
# 1. Generate OpenAPI from PHP controller annotations
cd backend
COMPOSER_ALLOW_SUPERUSER=1 composer openapi
# 2. Export docs + assemble static GitHub Pages site
cd ../frontendv2
pnpm install
pnpm build:public-docs
# Output lands in ../docs-site/
# Serve it with any static file server, e.g.:
python3 -m http.server 8080 --directory ../docs-siteFor a normal panel image / local Next build that should include /icanhasfeatherpanel/:
cd frontendv2
pnpm build:with-docs # export:docs then pnpm buildOptional environment variables for build:public-docs:
| Variable | Purpose |
|---|---|
DOCS_OUTPUT_DIR |
Output directory (default: docs-site/) |
DOCS_BASE_PATH |
URL prefix for GitHub Pages project sites (CI sets /FeatherPanel from the repo name) |
OPENAPI_JSON |
Path to the generated OpenAPI file |
| Workflow | Purpose |
|---|---|
| frontend.yml | Builds the Next.js panel UI |
| backend.yml | PHP lint, migrations, and backend tests |
| runner.yml | Builds and tests the Rust async runner |
| shell-lint.yml | ShellCheck + syntax validation for the installer |
| docs-pages.yml | Generates icanhasfeatherpanel (not committed) + OpenAPI and deploys the static site to GitHub Pages |
| docker-dev.yml | Dev Docker images β GHCR (develop) |
| docker-release.yml | Release Docker images on version tags |
| docker-oci-release.yml | OCI release artifacts |
| codeql.yml | Security analysis (JS/TS) |
| dependency-review.yml | Flags vulnerable dependency changes in PRs |
Last updated: 2026-10-09T12:13:40.750Z
| Extension | Files | Lines |
|---|---|---|
.php |
743 | 188,558 |
.tsx |
580 | 169,239 |
.ts |
195 | 24,660 |
.json |
19 | 16,057 |
.yaml |
5 | 7,755 |
.sql |
211 | 3,428 |
.rs |
16 | 3,363 |
.yml |
26 | 2,909 |
.css |
6 | 657 |
| Total | 1,801 | 416,626 |
These commands install the latest stable build ideal for evaluation, not for running develop in production.
| π§ Linux | πͺ Windows |
|---|---|
curl -sSL https://get.featherpanel.com/stable.sh | bash |
PowerShell iwr https://get.featherpanel.com/stable.ps1 | iexCMD powershell -ExecutionPolicy Bypass -Command "iwr https://get.featherpanel.com/stable.ps1 | iex" |
After installation
- Register the first account it becomes the admin automatically.
- Follow the configuration docs.
- Report bugs on GitHub Issues.
Contributions are welcome. Please read the contributing guide and code of conduct before opening a pull request.
FeatherPanel is licensed under the GNU Affero General Public License v3.0.
Made with β€οΈ by Mythical Systems
Documentation Β Β·Β Developer docs Β Β·Β Discord Β Β·Β Issues Β Β·Β Releases