diff --git a/README.md b/README.md
index a346ebf..40cb476 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,6 @@
Quick Start •
Screenshots •
Features •
- Architecture •
Guides •
Contributing
@@ -23,17 +22,11 @@
-## 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.
+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
@@ -47,23 +40,41 @@ 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
+- **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 + OAuth), audit logs, vuln scans
+- **Networking** — Traefik reverse proxy, optional Cloudflare Tunnel
+
+## Quick Start
+
+Requires Docker with the Compose plugin, `openssl`, and `curl`:
+
+```bash
+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`.
+
+Override with env vars:
+
+```bash
+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/](docs/guides/) and `infra/docker-compose.yml`.
## Architecture
@@ -74,97 +85,16 @@ 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`. One-liner,
-no clone needed:
-
-```bash
-curl -fsSL https://raw.githubusercontent.com/Dvorinka/Containr/main/install.sh | bash
-```
-
-Installs into `./containr`, generates secrets, pulls the published `:latest`
-images from GHCR, and starts the stack. Non-interactive — configure with
-env vars:
-
-```bash
-curl -fsSL https://raw.githubusercontent.com/Dvorinka/Containr/main/install.sh | \
- HTTP_PORT=8080 API_PORT=8082 CONTAINR_DIR=/opt/containr bash
-```
-
-`CONTAINR_VERSION` pins a release tag (e.g. `0.1.1`), `CONTAINR_REF` selects
-the git ref for downloaded files, and `CONTAINR_BUILD=1` skips the registry
-and builds from source — the installer downloads the source tarball when it
-needs to build. An existing `.env` is never overwritten, so it is safe to
-re-run.
-
-From a git checkout, `./install.sh` does the same thing in place.
-
-Frontend at `http://localhost:3000`, API at `http://localhost:8082`.
-
-### Docker Compose (manual)
-
-```bash
-cp .env.example .env # fill in secrets
-docker compose up -d # pulls ghcr.io/dvorinka/containr-*:latest
-```
-
-Compose pulls the published images by default; run `docker compose up -d
---build` to build from source. Host ports can be remapped in `.env`
-(`HTTP_PORT`, `API_PORT`, `POSTGRES_PORT`, `REDIS_PORT`) if the defaults
-collide with other services.
-
-### Local development
-
-```bash
-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](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.
+All configuration is via environment variables — see `.env.example`. Never
+commit `.env` or `.env.prod`; if a secret was ever committed, rotate it.
## Documentation
- [docs/guides/](docs/guides/) — setup, deployment, Cloudflare, autoscaling
- [docs/api/openapi.yaml](docs/api/openapi.yaml) — API contract
- [docs/developers/onboarding.md](docs/developers/onboarding.md) — contributor onboarding
-- [docs/design/](docs/design/) — UI design references
- `make help` — common tasks
-## Contributing
+---
-See [CONTRIBUTING.md](CONTRIBUTING.md). Issues and PRs welcome.
-
-## Security
-
-See [SECURITY.md](SECURITY.md). Report vulnerabilities privately — do not
-open public issues.
-
-## License
-
-[MIT](LICENSE) © 2026 Tomas Dvorak
+[Contributing](CONTRIBUTING.md) · [Security](SECURITY.md) · [MIT License](LICENSE) © 2026 Tomas Dvorak