# Mangrove > Docs for Mangrove, a self-hosted platform for running your apps on one box you own. - [Mangrove docs](https://docs.mangrove.dino.icu/index.md): The manual for Mangrove, a self-hosted platform for running your apps on one box you own. - [What is Mangrove](https://docs.mangrove.dino.icu/start/what-is-mangrove.md): Mangrove turns one Linux box into a small platform for running your apps. - [Install](https://docs.mangrove.dino.icu/start/install.md): Mangrove runs on a Debian or Ubuntu box with Docker and Caddy. - [First deploy](https://docs.mangrove.dino.icu/start/first-deploy.md): The shortest path: a GitHub repo, deployed, reachable on a port, redeploying itself on every push. - [Concepts](https://docs.mangrove.dino.icu/start/concepts.md): A handful of nouns cover everything in Mangrove. - [Simple mode](https://docs.mangrove.dino.icu/start/simple-mode.md): Simple mode is a second face for the dashboard, for people who want "a blog" or "a password manager" running and don't want to think about Dockerfiles. - [From GitHub](https://docs.mangrove.dino.icu/deploy/from-github.md): A GitHub-linked project builds from its repository, redeploys on every push, and unlocks staging environments and PR previews. - [From GitLab, Gitea and others](https://docs.mangrove.dino.icu/deploy/from-other-git.md): Mangrove's repository linking, push webhooks, staging and PR previews are GitHub-only today. - [From an image](https://docs.mangrove.dino.icu/deploy/from-an-image.md): Run a pre-built container image without building anything: your own image from a registry, or an off-the-shelf one like nginx:alpine. - [Builds](https://docs.mangrove.dino.icu/deploy/builds.md): Every deployment has a build strategy: how its source becomes something Mangrove can run. - [Domains and HTTPS](https://docs.mangrove.dino.icu/deploy/domains.md): Every public deployment is reachable on its own port straight away. - [Networking](https://docs.mangrove.dino.icu/deploy/networking.md): How traffic reaches your apps, and how your apps reach each other. - [Scaling and resources](https://docs.mangrove.dino.icu/deploy/scaling.md): Mangrove runs on one box, so the questions are how much of it each app may use and how many copies of it run. - [Storage](https://docs.mangrove.dino.icu/deploy/storage.md): Containers are replaced on every deploy, so anything an app writes inside its container is lost unless it's on a volume. - [Rollbacks](https://docs.mangrove.dino.icu/deploy/rollbacks.md): The History tab lists every run of a deployment, newest first: its trigger, commit, status and duration. - [Health checks and self-healing](https://docs.mangrove.dino.icu/deploy/health-checks.md): A health check is how Mangrove knows a container is actually working, not just running. - [Protection](https://docs.mangrove.dino.icu/deploy/protection.md): Put a password in front of a deployment without touching its code: useful for staging sites, previews and internal tools. - [Databases](https://docs.mangrove.dino.icu/data/databases.md): Databases are ordinary deployments made from a template, with a volume for their data. - [Backups and restore](https://docs.mangrove.dino.icu/data/backups.md): Back up Mangrove's database and encryption key together, schedule it, and restore on a new box. - [Environments and variables](https://docs.mangrove.dino.icu/run/environments.md): Variables and secrets per service, plus staging environments, promote, and PR previews. - [Compose stacks](https://docs.mangrove.dino.icu/run/compose.md): Deploy a docker-compose.yml as one deployment: several services that start, stop and deploy together. - [Templates](https://docs.mangrove.dino.icu/run/templates.md): A template installs a ready-to-run app into a project: one or more deployments, their volumes and variables, generated passwords, and the wiring between them. - [Idle sleep](https://docs.mangrove.dino.icu/run/idle-sleep.md): Let a deployment stop itself when nobody's using it, and start again when someone visits. - [Logs and shell](https://docs.mangrove.dino.icu/run/logs-and-shell.md): Live container logs, one-off commands, and an interactive shell through the terminal UI. - [Metrics and health](https://docs.mangrove.dino.icu/run/metrics.md): Mangrove shows how each app and the box as a whole are doing. - [Notifications](https://docs.mangrove.dino.icu/run/notifications.md): Mangrove tells you about deploys in three places. - [Webhooks](https://docs.mangrove.dino.icu/run/webhooks.md): Mangrove receives webhooks from GitHub to deploy on push and to manage PR previews. - [Profile and settings](https://docs.mangrove.dino.icu/account/profile.md): Appearance, instrument metal, password, and the settings each browser remembers. - [Sign-in and sessions](https://docs.mangrove.dino.icu/account/sign-in.md): Mangrove has email-and-password accounts, created by an owner. - [Workspaces and roles](https://docs.mangrove.dino.icu/teams/workspaces-and-roles.md): Access in Mangrove works on two levels: what someone can do to the box, and what they can do inside each workspace. - [Audit logs](https://docs.mangrove.dino.icu/teams/audit-logs.md): Mangrove records who deployed, deleted or changed access to what, and when. - [Architecture](https://docs.mangrove.dino.icu/operate/architecture.md): Mangrove is one Go binary, one SQLite file, and two things it drives: Docker and Caddy. - [Configuration](https://docs.mangrove.dino.icu/operate/configuration.md): Every environment variable Mangrove and its clients read, with defaults. - [Host commands](https://docs.mangrove.dino.icu/operate/host-commands.md): Commands for the box Mangrove runs on: the service, files, apps, Caddy, disk and memory. - [Upgrades](https://docs.mangrove.dino.icu/operate/upgrades.md): Build a new binary, swap it in atomically, and roll back if needed. Running apps keep running throughout. - [Going to production](https://docs.mangrove.dino.icu/operate/production.md): A checklist for a box people rely on: slices, HTTPS for the dashboard, Caddy caveats, backups. - [Security and isolation](https://docs.mangrove.dino.icu/operate/security.md): What Mangrove protects, what it doesn't, and why. - [Troubleshooting](https://docs.mangrove.dino.icu/operate/troubleshooting.md): Start with the symptom: deploys, pushes, unreachable apps, the dashboard, the box. - [CLI and TUI](https://docs.mangrove.dino.icu/interfaces/cli.md): mangrovectl for scripting, and mangrove-tui, a full-screen terminal dashboard with a real container shell. - [HTTP API](https://docs.mangrove.dino.icu/interfaces/api.md): Everything the dashboard does goes through a JSON API under /api. - [MCP for agents](https://docs.mangrove.dino.icu/interfaces/mcp.md): mangrove-mcp lets AI agents such as Claude Code, Claude Desktop and claude.ai operate Mangrove through the Model Context Protocol. - [Docs for agents](https://docs.mangrove.dino.icu/interfaces/agents.md): Two kinds of agent work with Mangrove: agents that operate a running install, and agents that change Mangrove's code. - [Architecture in depth](https://docs.mangrove.dino.icu/internals/architecture.md): The request path, the blue/green deploy flow, lifecycle actions, GitHub auto-deploy, staging and PR previews, and why each works the way it does. - [Production deployment](https://docs.mangrove.dino.icu/internals/deployment.md): The exact systemd, slice and Caddy setup this project runs in production, and why. - [Multi-user and roles](https://docs.mangrove.dino.icu/internals/multi-user.md): Global and workspace roles, how they're enforced server-side, and the audit log. - [Technical vs. simple mode](https://docs.mangrove.dino.icu/internals/modes.md): The dashboard's two front-end flows, and how they share one backend. - [Backup internals](https://docs.mangrove.dino.icu/internals/backup.md): What a backup contains, how the snapshot is taken, and how restore works. - [Idle sleep design](https://docs.mangrove.dino.icu/internals/idle-sleep.md): How auto-stop and wake-on-request work: the shared gate handler, the sleeper, and the waking page. - [Self-healing design](https://docs.mangrove.dino.icu/internals/self-healing.md): How health-check-triggered restarts and automatic deploy retries work, and their fixed thresholds. - [Protection design](https://docs.mangrove.dino.icu/internals/protected-deployments.md): How the password gate, public paths, and the Mangrove-account handoff work. - [NAS helper design](https://docs.mangrove.dino.icu/internals/storage.md): Why drive mounting lives in a separate privileged helper, and what sharing a drive as a NAS actually does. - [Template file format](https://docs.mangrove.dino.icu/internals/templates.md): The JSON format for one-click templates: generated secrets, cross-deployment references, seed files and post-deploy commands. - [Clients in depth](https://docs.mangrove.dino.icu/internals/clients.md): mangrovectl, mangrove-tui and mangrove-mcp: the shared API client, authentication, and MCP transports. - [Working on the dashboard](https://docs.mangrove.dino.icu/internals/frontend.md): How the SvelteKit dashboard is built and embedded, its state and polling patterns, styling and dark mode, and how to QA it safely. ## Optional - [GitHub](https://github.com/evanxdsouza/mangrove) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.