3.8 KiB
3.8 KiB
layout, tk, hero, features
| layout | tk | hero | features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| home |
|
|
|
Full Stack Overview
PPanel spans three repositories working together:
- Frontend — React 19 UI + VitePress docs for both admin and user portals.
- PPanel Server — Go 1.21+ APIs focusing on privacy, observability, and multi-protocol orchestration.
- ppanel — Docker image that ships the compiled gateway plus backend binaries so you can launch everything with one container.
Frontend experience
- Responsive dashboards, granular permissions, and live counters designed for daily operator workflows.
- Shared component system (shadcn/ui + TailwindCSS) keeps admin and user spaces visually aligned.
- Documentation and guides live side-by-side with the product so teams always deploy from the latest instructions.
Backend foundation
- Multi-protocol relay for Shadowsocks, V2Ray, Trojan, and Trojan-Go backed by go-zero generated APIs.
- Node lifecycle automation (heartbeat, registration, version checks, rolling updates) to keep edges healthy.
- Business domains such as subscriptions, billing, payments, orders, and tickets mirror what you configure in the UI.
- Privacy-first defaults — user activity logs stay off unless explicitly enabled; configs live in
etc/ppanel.yaml. - Flexible delivery: Go binaries per platform, Makefile targets, and CI-published Docker images like
ppanel/ppanel-server:latest.
Gateway & deployment
The ppanel/ppanel image folds the gateway and backend into one container (amd64 + arm64). Mount modules/<platform>/etc from the repo and the UI immediately connects to the bundled services.
::: tip Docker quickstart
docker pull ppanel/ppanel:latest
docker run -d --name ppanel \
-p 8080:8080 \
-v $(pwd)/ppanel-config:/app/etc \
ppanel/ppanel:latest
:::
Recommended workflow
- Copy
modules/<arch>/etcto a persistent folder (ppanel-config) and updateppanel.yamlplus secrets. - Start with
docker runfor quick trials, then move to the Compose snippet in the repo for auto-restarts. - Upgrade by pulling the new tag, restarting the container, and letting the gateway refresh nodes in-place.
- Troubleshoot with
docker exec -it ppanel /bin/shanddocker logs -f ppanel— everything lives under/app.