PharosVPN
§09 · community

Apache-2.0 · DCO · no CLA

Community.

PharosVPN is open source on purpose. The licence asks commercial users to contribute back, not to pay. The contribution model is chosen to keep the code yours, not ours.

where the code lives

One GitHub org, four repos.

File bugs and feature requests in the relevant repo. Cross-cutting questions about the architecture belong on PharosVPN/docs.

licence · Apache-2.0

Why Apache-2.0.

Every PharosVPN repo is licensed under Apache-2.0. The goal is the widest possible adoption and contribution. A copyleft licence like the AGPL would force service operators to publish their changes — but in practice it repels the commercial users whose contributions we want (many organisations ban the AGPL outright), shrinking both adoption and the contributor pool.

A permissive licence maximises reach, and Apache-2.0's explicit patent grant suits a cryptography and networking project — it gives adopters and contributors clear patent terms. There is no commercial edition, no paid tier, no CLA.

What that means in practice

  • You can run, modify, and redistribute PharosVPN for any purpose — personal or commercial — at no cost beyond your cloud bill.
  • You can build proprietary products on top of it; there is no obligation to publish your changes.
  • Apache-2.0 grants you a patent licence from contributors, and asks only that you preserve notices and state significant changes.
  • We'd still love your improvements upstream — contribution is invited, not compelled.

read Apache-2.0 ↗

contributions · DCO, no CLA

DCO, not CLA.

Contributions are accepted under the Developer Certificate of Origin — sign off each commit with git commit -s. That appends a Signed-off-by: Your Name <you@example.com> trailer, which is your statement that you wrote the patch or otherwise have the right to contribute it under the project's licence.

We don't ask contributors to sign a Contributor License Agreement. A CLA gives the project's maintainers the right to relicense contributors' code later. Under a permissive licence there is nothing to relicense toward, so asking you to sign one would just be a speed bump.

how to contribute

A pull request, signed off, against the right repo.

  • Cross-cutting design changes go to docs/DESIGN.md first. If code and the document disagree, the document is wrong — fix it in the same PR.
  • Component-local changes go to the component's repo. Each repo carries a CONTRIBUTING.md and a BUILD.md.
  • Protobuf contracts live in docs/proto/. No subproject hand-rolls message types.
  • Status: pre-alpha. The design is locked; the code is scaffolding. The most useful contributions right now are stress-testing the architecture by trying to build against it.