Contributing
ArcPanel is built in the open. Join in.
You don't need to write code to help. Reports, translations, docs and testing move the project forward just as much.
Ways to help
CODE
Fix a bug or build a feature
Bash v-* commands, the Laravel panel, Vue islands, templates and the Docker catalog all need hands.
Browse open issues
TRANSLATE
Translate the panel
Bring ArcPanel to your language on Crowdin. No setup, just a browser.
Join on Crowdin
REPORT
Report a bug
Tell us your OS, ArcPanel version and the steps to reproduce. Logs help most.
Open an issue
DOCS
Improve the docs
Fix a step that tripped you up or write the guide you wish you had found.
Edit the docs
TEST
Test pre-releases
Install release candidates on a spare server — Debian, Ubuntu, amd64 or arm64 — and tell us what breaks.
See what's changing
FUND
Fund the work
Donations and support plans pay for test servers, security work and releases.
Donate
Your first pull request
-
1
Clone the repository with its submodules.
git clone --recurse-submodules https://github.com/arc-panel-oss/arcpanel.git
-
2
Branch from
develop, make your change and add a test: BATS for commands, Pest and Vitest for the panel. -
3
Run the checks before you push.
bash test/shellcheck.sh bash test/brand-check.sh
-
4
Open a pull request against
developwith a Conventional Commit title, such as fix(mail): …
House rules
- The CLI is the system of record: the panel calls v-* commands and never edits server files itself.
- Every query is scoped to its owner. Users never see each other's data.
- The web UI never runs as root; it crosses the privilege boundary only through v-* commands.
- User-visible text says ArcPanel and is written in plain English.
- Code and docs in English; translations go through Crowdin.
- Be kind in reviews. Our code of conduct applies everywhere.
Contributors
Thank you to everyone who has helped, including the HestiaCP and VestaCP contributors whose work ArcPanel builds on.
[CONTRIBUTOR AVATARS FROM THE GITHUB API]