- CVE-2026-53514 (HIGH): better-auth <1.6.11 vulnerable to unverified-email invitation acceptance; pinned 1.6.33 (1.7.x breaks the migration introspection + schema check on this setup) - qs override to >=6.16.0 clears moderate DoS via express - kysely audit fix pulled 0.29.x requiring node>=22; node:20 is EOL anyway - both Dockerfiles now on node:22-alpine, matching CI - npm audit: 0 vulnerabilities; e2e verified (migrations run, sign-up returns session) Authored By: TDvorak <[email protected]> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Containr
Self-hosted platform for deploying and managing containerized services. Railway-style project canvases on your own hardware.
Quick Start • Features • Architecture • Guides • Contributing
What is Containr?
Containr is an open-source control plane for Docker. It gives you a project-first deployment workflow — create a project, drop services onto a visual canvas, wire them together with environment variables, and deploy — without Kubernetes, without a cloud bill, and without giving up control of your infrastructure.
The UI is inspired by Railway's project canvas: services appear as nodes, connections are inferred automatically, and everything — logs, metrics, deployments, builds — is one click away.
Features
- Project canvas — visual service topology with groups, drag/drop layout, and auto-inferred connections
- Deployments — Docker-based deploys with history, logs, and rollback
- Git integration — deploy from GitHub, GitLab, Bitbucket, or Gitea; repository and branch pickers, webhooks, GitHub App support
- Builds — build pipeline with live status over WebSocket
- Service metrics — real CPU/memory/network telemetry from Docker stats
- Templates — one-click service catalog (databases, apps, tooling)
- Databases — managed database services with backup/restore actions
- Cron jobs — scheduled jobs with execution history
- Preview environments — per-project preview deploys
- Variables & environments — per-service env vars, production/preview/dev
- Node monitoring — host CPU, memory, disk, and network telemetry
- Security — audit logs, vulnerability scans, compliance reports
- Auth — Better Auth sessions (email + OAuth), per-user resource scoping
- Self-hosted networking — Traefik reverse proxy, optional Cloudflare Tunnel for exposure without port forwarding
Architecture
app/frontend/ React 19 + Vite + TypeScript + Tailwind + React Flow
app/backend/ Go API (Gin) · PostgreSQL · Redis · Docker SDK · Better Auth sidecar
infra/ Self-hosted compose: Traefik + Cloudflare Tunnel
docs/ Guides, OpenAPI spec, design documents
| Component | Default port |
|---|---|
| Frontend | 3000 (prod) / 5173 (dev) |
| API | 8082 |
| Auth sidecar | 3001 |
| PostgreSQL | 5432 |
| Redis | 6379 |
Quick Start
Easy install (recommended)
Requires Docker with the Compose plugin, openssl, and curl.
git clone https://github.com/Dvorinka/Containr.git
cd Containr
./install.sh
The script creates .env from .env.example, fills in all required secrets
with random values, builds the images, and starts the stack. It keeps an
existing .env untouched, so it is safe to re-run.
Frontend at http://localhost:3000, API at http://localhost:8082.
Docker Compose (manual)
cp .env.example .env # fill in secrets
docker compose up -d --build
Host ports can be remapped in .env (HTTP_PORT, API_PORT,
POSTGRES_PORT, REDIS_PORT) if the defaults collide with other services.
Local development
docker compose up -d postgres redis # data services only
cd app/backend && go run ./cmd/server # API + embedded auth sidecar
cd app/frontend && npm install && npm run dev
Frontend dev server at http://localhost:5173.
Self-hosted with Traefik + Cloudflare Tunnel
See infra/docker-compose.yml and
docs/guides/CLOUDFLARE_SETUP.md.
Configuration
All configuration is via environment variables — see .env.example.
Required for production: JWT_SECRET, BETTER_AUTH_SECRET,
BETTER_AUTH_INTERNAL_TOKEN, database and Redis credentials.
Never commit .env or .env.prod. Both are gitignored; if a secret was
ever committed, rotate it.
Documentation
- docs/guides/ — setup, deployment, Cloudflare, autoscaling
- docs/api/openapi.yaml — API contract
- docs/developers/onboarding.md — contributor onboarding
- docs/design/ — UI design references
make help— common tasks
Contributing
See CONTRIBUTING.md. Issues and PRs welcome.
Security
See SECURITY.md. Report vulnerabilities privately — do not open public issues.
License
MIT © 2026 Tomas Dvorak