Thank you for your interest in contributing to our project!
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Sign your commits with DCO:
git commit -s -m "Your commit message" - Push to your fork and submit a pull request
We use the Developer Certificate of Origin (DCO) in lieu of a Contributor License Agreement (CLA) for all contributions to this project. DCO is a legally binding statement that asserts that you are the creator of your contribution and that you wish to allow us to use it in this project.
When you contribute to this repository with a pull request, you need
to sign-off that you agree to the DCO. You do this by adding a
Signed-off-by line to your commit messages containing your name and
email:
git commit -s -m "Your commit message"
This will automatically add a sign-off message to your commit. Alternatively, you can manually add:
Signed-off-by: John Doe <john.doe@example.org>- Keep code clean and simple
- Follow existing code style
- Update documentation if needed
- Go 1.21+
- Node.js 22+
- Docker
- mkcert (for SSL certificates)
-
Clone the repository:
git clone https://github.com/getprobo/probo.git cd probo -
Install Go dependencies:
go mod download
-
Install JavaScript dependencies:
npm ci
-
Start the Docker infrastructure stack:
make stack-up
The fastest way to develop is to use the make dev command, which starts the Go backend and frontend dev servers with hot module replacement (HMR):
# Start Docker services first
make stack-up
# Then start all dev servers with one command
make devThis starts 3 processes:
- Go backend with auto-reload (gow) on
http://localhost:8080 - Console frontend dev server (Vite) on
http://localhost:5173 - Trust center dev server (Vite) on
http://localhost:5174
Backend automatically proxies to Vite servers, so you get:
- ⚡ No TypeScript builds needed - Skip the long build step
- 🔄 Hot Module Replacement - Changes appear instantly in browser
- 🚀 Fast iteration - 3-5 second backend rebuild vs 58+ second full build
- 📝 One command - All services managed together
If you prefer to run services separately:
# Terminal 1 - Start the API server
bin/probod -cfg-file cfg/dev.yaml
# Terminal 2 - Start the console frontend dev server
npm -w @probo/console run dev
# Terminal 3 - Start the trust frontend dev server (optional)
npm -w @probo/trust run devIf running services separately, set environment variables to enable dev mode:
# Terminal 1 - Start with dev proxies
VITE_DEV_SERVER_CONSOLE=http://localhost:5173 \
VITE_DEV_SERVER_TRUST=http://localhost:5174 \
bin/probod -cfg-file cfg/dev.yamlTo build the project with optimized frontend bundles:
make buildFor detailed information about all Docker services in the development stack, see Docker Services Documentation.
Create an issue if you:
- Found a bug
- Have a feature request
- Need help with something
Thank you for contributing!