Tomas DvorakandDevin 060038cb6f feat: swap Redis for Dragonfly, fix remote installs, self-hosted email-only auth
- Replace redis:7-alpine with Dragonfly (Redis-protocol compatible; go-redis
  client unchanged) in root, infra, and backend-dev compose files. Bounded
  defaults --proactor_threads/--maxmemory so it boots on small VPSs.
- Frontend now defaults to same-origin API calls; nginx proxies /api/* to the
  backend (WebSocket-aware, docker DNS resolver for upstream re-resolution).
  Removes the baked localhost:8082 that broke installs reached by IP/domain.
- /auth/bootstrap returns configured OAuth providers; the UI hides
  GitHub/Google buttons unless real credentials exist. Self-hosted stays
  email/password only - OAuth reserved for a future managed offering.
- Sidecar ignores PLACEHOLDER_* OAuth credentials and trusts same-host
  origins dynamically (Origin host == request Host) so remote installs pass
  origin checks without config; cross-origin requests still rejected.
- install.sh writes ENVIRONMENT=production; COOKIE_SECURE=false in
  production is now a startup warning instead of fatal (plain-HTTP installs).
- Bootstrap failure surfaces an error notice instead of silently rendering
  the sign-in page.

Authored By: TDvorak <[email protected]>

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 17:24:43 +02:00
2026-04-10 12:02:36 +02:00
2026-04-10 12:02:36 +02:00
2026-04-10 12:02:36 +02:00
2026-04-10 12:02:36 +02:00
2026-04-10 12:02:36 +02:00

Containr

Containr

Self-hosted platform for deploying and managing containerized services. Railway-style project canvases on your own hardware.

Quick Start • Screenshots • Features • Guides • Contributing

CI License: MIT

Containr is an open-source control plane for Docker. Create a project, drop services onto a visual canvas, wire them together with environment variables, and deploy — no Kubernetes, no cloud bill. Services appear as nodes with auto-inferred connections; logs, metrics, builds, and rollbacks are one click away.

Screenshots

Projects dashboard Project canvas
Projects dashboard with host telemetry Visual service canvas with two services
Service detail Managed databases
Service view with metrics, logs and config tabs Managed database list showing a running PostgreSQL

Features

  • Project canvas — visual service topology, groups, drag/drop, auto-inferred connections
  • Deployments & builds — Docker deploys with history, logs, rollback, live build status
  • Git integration — GitHub, GitLab, Bitbucket, Gitea; webhooks, GitHub App
  • Managed databases — one-click provisioning with backup/restore
  • Metrics — per-service Docker stats plus host CPU/memory/disk telemetry
  • Templates, cron, previews — service catalog, scheduled jobs, preview deploys
  • Auth & security — Better Auth sessions (email/password self-hosted), audit logs, vuln scans
  • Networking — Traefik reverse proxy, optional Cloudflare Tunnel

Quick Start

Requires Docker with the Compose plugin, openssl, and curl:

curl -fsSL https://raw.githubusercontent.com/Dvorinka/Containr/main/install.sh | bash

Installs into ./containr, generates secrets, pulls the published :latest images, and starts the stack — UI at http://localhost:3000, API at http://localhost:8082. Non-interactive; re-runs never overwrite .env. On first visit you create the owner account (email/password); registration then closes automatically.

Override with env vars:

curl -fsSL https://raw.githubusercontent.com/Dvorinka/Containr/main/install.sh | \
  HTTP_PORT=8080 CONTAINR_DIR=/opt/containr bash

CONTAINR_VERSION pins a release tag, CONTAINR_REF selects the git ref for downloaded files, CONTAINR_BUILD=1 builds from source. From a git checkout, ./install.sh installs in place; plain docker compose up -d pulls the same images (--build to compile locally).

Local development and self-hosted deployment (Traefik + Cloudflare Tunnel): see docs/guides/ and infra/docker-compose.yml.

Architecture

app/frontend/   React 19 + Vite + TypeScript + Tailwind + React Flow
app/backend/    Go API (Gin) · PostgreSQL · Dragonfly · Docker SDK · Better Auth sidecar
infra/          Self-hosted compose: Traefik + Cloudflare Tunnel
docs/           Guides, OpenAPI spec, design documents

All configuration is via environment variables — see .env.example. Never commit .env or .env.prod; if a secret was ever committed, rotate it.

Documentation


Contributing · Security · MIT License © 2026 Tomas Dvorak

S
Description
No description provided
Readme MIT
44 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 46.4%
TypeScript 44.2%
PLpgSQL 4.2%
CSS 1.9%
Shell 1.7%
Other 1.4%