mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 15:51:26 +00:00
Backend: - GET /services/:id/metrics with real Docker container stats - DELETE /git/providers/:id and GET repo branches endpoint Frontend: - Service detail shows real telemetry or honest empty states - Live status distinguishes idle/polling/reconnecting - Git providers section in Settings; repo+branch pickers in Add Service - Real logo, compact Projects header, canvas fitView fix - index.css deduplicated (1725 -> 1384 lines) - Fixed smoke tests, lint errors, ToastProvider/context unification Repo hygiene: - Added LICENSE (MIT), CONTRIBUTING.md, SECURITY.md; rewrote README - Untracked .env.prod and data/letsencrypt secrets; fixed .gitignore - Removed legacy root src/internal/cmd and stale configs/docs/artifacts - Moved guides and design references under docs/ Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1.4 KiB
1.4 KiB
Contributing to Containr
Thanks for your interest in contributing. Containr is a self-hosted deployment platform — contributions of all sizes are welcome.
Project Layout
app/backend/ Go control-plane API (Gin, PostgreSQL, Redis, Docker SDK)
app/frontend/ React + Vite + TypeScript dashboard
infra/ Self-hosted compose stack (Traefik, Cloudflare Tunnel)
docs/ Guides, API spec, and design documents
templates/ Service template catalog notes
Development Setup
- Copy
.env.exampleto.envand fill in values (never commit.env). - Start Postgres and Redis:
docker compose up -d postgres redis - Backend:
cd app/backend && go run ./cmd/server - Frontend:
cd app/frontend && npm install && npm run dev
Checks Before Submitting
- Backend:
cd app/backend && go build ./... && go test ./... && go vet ./... - Frontend:
cd app/frontend && npm run build && npm test - Compose:
docker compose config -q
Conventions
- Reuse existing utilities before adding dependencies.
- Keep handlers thin; business logic lives in
internal/packages. - Regenerate API types after schema changes:
npm --prefix app/frontend run generate:api. - Never commit secrets, tokens, or environment files.
- Write tests for non-trivial logic.
Pull Requests
- Keep PRs focused — one concern per PR.
- Describe the "why", not just the "what".
- Include a test plan for anything touching deployment, auth, or networking.