Getting Started

Introduction

FlatRun is a lightweight, self-hosted platform for managing Docker containers with no lock-in.

FlatRun is an open-source container management platform designed for developers, hobbyists, and small teams who want a simple yet powerful way to run Docker containers on their own infrastructure — without vendor lock-in.

Our Philosophy

We believe infrastructure should not be magical or locked-in. Too many server management tools hide your configuration in databases, proprietary formats, or obscure volume directories. This makes migrations painful and gives vendors leverage to increase prices — because leaving is hard.

Tools like Portainer store compose files in numbered folders inside volumes, making it difficult to understand or recover your setup. Control panels like Plesk have steadily increased prices over the years, knowing that migration is a nightmare for their users.

FlatRun takes a different approach:

  • Flat Files Everything lives on the filesystem in plain, readable directories
  • Recognized Standards Standard docker-compose.yml files you can use anywhere
  • No Lock-in Walk away anytime with docker compose up
  • Full Transparency No hidden databases, no magic, no surprises

What is FlatRun?

FlatRun consists of two main components:

  • FlatRun Agent — A lightweight Go service that manages containers, handles SSL certificates, configures Nginx, and provides a REST API.
  • FlatRun UI — A modern Vue.js dashboard for managing your containers through an intuitive interface.

Key Features

  • Templates Deploy popular applications like WordPress, Ghost, Laravel with pre-configured templates.
  • Standard Docker Compose Uses standard docker-compose files you already know.
  • Automatic SSL Let's Encrypt integration for automatic certificate provisioning and renewal.
  • Reverse Proxy Built-in Nginx integration for domain routing.
  • Database Management Manage MySQL, MariaDB, and PostgreSQL databases directly from the UI.
  • Clustering Connect multiple FlatRun nodes together for distributed deployments and high availability.
  • Backup & Restore Automated backup scheduling with one-click restore for your deployments.
  • Security Threat detection, IP blocking, rate limiting, and security event monitoring.
  • Scheduled Tasks Cron-based task scheduling for recurring operations on your deployments.
  • Audit Logging Complete audit trail of all actions across the platform.
  • Traffic Analytics Monitor request volumes, response codes, and traffic patterns per deployment.
  • Multi-User with RBAC Role-based access control with admin and user roles.
  • Real-Time Monitoring View container logs, resource usage, and health status.
  • REST API Full API access for automation and scripting.
  • Self-Hosted Run on your own server with complete control.

How it Works

FlatRun uses a simple filesystem-based approach. Each container stack is a directory with a standard docker-compose.yml file. The agent watches this directory and manages the container lifecycle.

/var/flatrun/
├── nginx/                    # Reverse proxy (managed by agent)
│   ├── conf.d/              # Virtual host configs
│   └── certs/               # SSL certificates
├── my-blog/                  # Your container stack
│   ├── docker-compose.yml   # Standard compose file
│   └── service.yml          # Optional: FlatRun metadata
└── my-api/                   # Another stack
    └── docker-compose.yml

When you create a container through the UI or API, the agent:

  1. Creates the directory with your docker-compose.yml
  2. Configures Nginx if you specify a domain
  3. Obtains SSL certificates via Let's Encrypt
  4. Runs docker compose up to start your containers

If you ever want to leave FlatRun, your containers keep running. Just use standard Docker commands — there's nothing proprietary to untangle.

Who is FlatRun For?

  • Developers Self-host your side projects and applications.
  • Small Teams Simple container management without Kubernetes complexity.
  • Hobbyists Run home servers or VPS instances with ease.
  • Agencies Manage multiple client projects on dedicated servers.

Getting Help

If you run into issues or have questions:

Star us on GitHub