--- title: Quickstart description: Get Sencho running in under five minutes. --- This walks you from a clean Docker host to a working Sencho cockpit. Five minutes if your Compose directory is already in the right place, ten if you need to lay it out first. ## Prerequisites - Docker and Docker Compose installed on the host. - A directory where your Compose projects live (for example `/opt/compose`). Each subdirectory inside becomes one stack in Sencho. ## Run with Docker Compose Drop this into a `docker-compose.yml` next to your Compose tree (or anywhere convenient) and bring it up: ```yaml services: sencho: image: saelix/sencho:latest container_name: sencho restart: unless-stopped ports: - "1852:1852" volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/compose:/opt/compose # 1:1 path rule, see below - sencho_data:/app/data environment: - COMPOSE_DIR=/opt/compose volumes: sencho_data: ``` ```bash docker compose up -d ``` ```bash docker run -d \ --name sencho \ --restart unless-stopped \ -p 1852:1852 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/compose:/opt/compose \ -v sencho_data:/app/data \ -e COMPOSE_DIR=/opt/compose \ saelix/sencho:latest ``` Sencho is mirrored on GitHub Container Registry at `ghcr.io/studio-saelix/sencho:latest` with the same tags and digests as Docker Hub. Pull from whichever registry your environment prefers. `JWT_SECRET` is generated on first boot and persisted to the database. You do not need to provide one. ## The 1:1 path rule The Compose directory must be mounted at the **same path** inside and outside the container. The example above mounts `/opt/compose` to `/opt/compose`, which is correct. If your stacks live somewhere else, adjust both sides of the mount to match. This is the most common source of deployment problems. If the host and container paths differ, every relative volume in your Compose files will resolve to the wrong location once Sencho asks Docker to bring a stack up. See the [Configuration guide](/getting-started/configuration#compose-directory-the-11-path-rule) for the full explanation. ## First boot Open `http://localhost:1852` in a browser. On a fresh install you land on the **Cold start** card, where Sencho asks you to create the first admin account. Sencho first-boot Cold start card with Username, Password, and Confirm password fields, and an Initialize console button Pick a username (the placeholder shows `admin`), choose a password, confirm it, and click **Initialize console**. The strength indicator under the password field expects at least eight characters. The Cold start card only appears the first time you open Sencho. Once the admin account exists, every subsequent visit goes to the regular sign-in screen. ## After signing in You land on the dashboard. A status bar across the top tells you whether the fleet is healthy, the gauge strip below it shows CPU, memory, disk, and network at a glance, and the **Stack health** table sorts your stacks by load. Sencho dashboard with status bar across the top, CPU/MEMORY/DISK/NETWORK gauges, and a Stack health table sorted by load The top nav (HOME, FLEET, RESOURCES, APP STORE, LOGS, AUTO-UPDATE, CONSOLE, AUDIT, SCHEDULES) is your map of the cockpit. The sidebar on the left lists every stack Sencho discovered under `COMPOSE_DIR`; on a fresh install it is empty until you create one. Click **Create Stack** in the sidebar to deploy your first stack, or open **App Store** in the top nav for a one-click template. ## Where to next Environment variables, volume mounts, reverse proxy, and the 1:1 path rule in detail. Deploy, edit, restart, update, and roll back stacks from the cockpit. Add a remote Sencho instance and manage it from the same console. Browse 190+ pre-configured templates and deploy in one click.