Skip to content

Latest commit

 

History

History
72 lines (49 loc) · 1.82 KB

File metadata and controls

72 lines (49 loc) · 1.82 KB

Contributing to Pingouin

Thanks for your interest! Pingouin is a self-hosted uptime monitor. Contributions are welcome.

Reporting Bugs

Open a GitLab issue with:

  • Environment: OS, Docker version, browser
  • Steps to reproduce
  • Expected behavior vs actual behavior
  • Error logs (from make logs) if relevant

Requesting Features

Open a GitLab issue with:

  • What problem you're solving
  • Your proposed solution (or leave it open for discussion)

Development Setup

Prerequisites: Docker + Docker Compose

git clone https://gitlab.com/cdlr75/pingouin.git
cd pingouin
cp .env.example .env
# Edit .env — set JWT_SECRET_KEY, AUTH_USERNAME, AUTH_PASSWORD
make up           # Start full stack (backend + frontend + db + mailhog)
# App runs at http://localhost:5173

# Load demo data (3 apps with 25h of probe history):
docker compose exec backend flask --app app seed create

# To reset demo data:
docker compose exec backend flask --app app seed clear

Running Tests

Backend (requires a Python virtualenv with dev dependencies):

pip install -r backend/requirements-dev.txt
cd backend && python -m pytest

Frontend unit tests:

cd frontend && npm test

E2E tests (requires full stack running via make up):

cd frontend && npm run test:e2e

Submitting Merge Requests

  1. Fork the repository and create a branch: git checkout -b feat/your-feature
  2. Keep MRs focused — one feature or fix per MR
  3. Include tests for new behavior
  4. Reference any related issues: Closes #123
  5. Open a merge request against main

Code Style

  • Python: Black + isort + flake8 — configured in backend/pyproject.toml, installed via requirements-dev.txt. Run: cd backend && black . && isort . && flake8
  • TypeScript: ESLint — run: cd frontend && npm run lint