Contributing
Contributions are welcome, preferably via pull request. Check the GitHub issues to see what needs work, or raise an issue to discuss a new feature before building it.
Installing
Fork the project on GitHub, then clone your fork:
git clone https://github.com/radiac/privipod.git
cd privipod
uv sync --group dev
Testing
The test suite is Playwright end-to-end - it drives a real browser against a running Privipod instance. You need to start the server before running pytest.
# Terminal 1 - start the server
uv run python -m privipod 0:8765 --user=testuser --pass=testpass
# Terminal 2 - install browsers (first time only), then run tests
uv run playwright install chromium
uv run pytest
The default test server URL is http://localhost:8765. Override it with environment
variables if you want to test against a different instance:
PRIVIPOD_URL=http://localhost:9000 \
PRIVIPOD_USER=admin \
PRIVIPOD_PASS=secret \
uv run pytest tests/ -v
Running with Docker
To run the full test suite in an isolated container (no local server or browser install needed):
docker compose -f tests/docker-compose.yml up --build