Contributions are welcome. This guide covers how to get started, submit changes, and report issues. All participants are expected to follow the Code of Conduct.Documentation Index
Fetch the complete documentation index at: https://docs.sonicverse.eu/llms.txt
Use this file to discover all available pages before exploring further.
Getting started
Configure
Development workflow
| Service | How to iterate |
|---|---|
dashboard | cd apps/dashboard && npm install && npm run dev |
status-api | Edit apps/status-api/server.py, then docker compose restart status-api |
analytics | Edit services/analytics/tracker.py, then docker compose restart analytics |
liquidsoap | Edit services/streaming/liquidsoap/radio.liq, then docker compose restart liquidsoap |
nginx | Edit infrastructure/nginx/nginx.conf, then docker compose restart nginx |
Code style
- Python —
ruff check services/analytics/ apps/status-api/(config inpyproject.toml) - TypeScript —
npm run lintinsideapps/dashboard/ - Shell —
set -e, 4-space indent, double-quoted variables - Dockerfiles — must pass
hadolint
Commit messages
Use Conventional Commits. Valid types:feat, fix, chore, docs, refactor, test, ci, style, perf.
Examples:
Submitting a pull request
- Create a branch from
main(git checkout -b feat/my-feature) - Keep each PR focused on a single feature or fix
- Run linters locally before pushing
- Fill in the pull request template completely
- Reference any related issue with
Closes #123 - Expect a maintainer review within a few business days; address feedback with additional commits (do not force-push after review starts)
Adding environment variables
If your change introduces new environment variables:- Add them to
.env.examplewith a sensible default or blank value - Document them in the configuration table in
README.md
Reporting bugs
Use the Bug report issue template on GitHub. Include your OS, Docker version, and relevant logs:Communication
- GitHub Issues — bug reports and feature requests
- GitHub Discussions — questions and design conversations
- Slack — join the Sonicverse OSS Slack for real-time discussion