How to Self-Host Flame with Docker Compose
What Is Flame?
Flame is a self-hosted startpage and application dashboard designed for simplicity. It provides a clean interface to organize your bookmarks and application links, with a built-in search bar, weather widget, and Docker container auto-discovery. All configuration happens through the web UI — no config file editing needed. Flame uses Node.js with SQLite on the backend and React on the frontend.
Official site: github.com/pawelmalak/flame
Prerequisites
- A Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose installed (guide)
- 150 MB of free disk space
- 128 MB of RAM (minimum)
Docker Compose Configuration
Create a docker-compose.yml file:
services:
flame:
image: pawelmalak/flame:2.3.1
container_name: flame
ports:
- "5005:5005"
volumes:
- flame_data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro # Optional: Docker auto-discovery
environment:
- PASSWORD=changeme_strong_password # Dashboard login password
restart: unless-stopped
volumes:
flame_data:
Security note: The Docker socket mount is optional. It allows Flame to automatically discover running containers. Mount it read-only (
:ro) and only if you want this feature.
Start the stack:
docker compose up -d
Initial Setup
- Open
http://your-server-ip:5005in your browser - Log in with the password you set in the
PASSWORDenvironment variable - Click Applications to add your first service links
- Click Bookmarks to organize web bookmarks into categories
Adding Applications
Click the + button on the Applications page. For each app, provide:
- Name — display name on the dashboard
- URL — link to the service
- Icon — choose from Material Design Icons or upload a custom icon
- Color — optional custom tile color
- Description — optional subtitle text
Docker Auto-Discovery
If you mounted the Docker socket, enable auto-discovery in Settings > Docker. Then add labels to your other containers:
services:
jellyfin:
image: jellyfin/jellyfin:10.11.6
labels:
- flame.type=application
- flame.name=Jellyfin
- flame.url=http://jellyfin.local:8096
- flame.icon=play-circle
Multiple apps per container use semicolons: flame.name=App1;App2.
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
PASSWORD | Yes | Login password for the dashboard |
PASSWORD_FILE | No | Path to a Docker secrets file (takes precedence over PASSWORD) |
Search Providers
Flame includes 11 built-in search providers and supports custom ones. Configure in Settings > Search:
| Provider | Description |
|---|---|
| Default web search | |
| DuckDuckGo | Privacy-focused search |
| Bing | Microsoft search |
| Custom | Any URL with %s placeholder for query |
Set a secondary search provider (added in v2.3.0) that activates with a configurable prefix.
Themes
Flame ships with 15 built-in color themes. Access Settings > Theme to switch or use the theme creator (v2.3.0+) to build custom themes. Custom CSS is also supported.
Weather Widget
Configure in Settings > Weather:
- Get a free API key from OpenWeatherMap
- Enter your city coordinates (latitude/longitude)
- Choose temperature units (Celsius/Fahrenheit)
The weather widget displays current temperature and conditions on the dashboard header.
Reverse Proxy
Flame runs on port 5005 by default. See Reverse Proxy Setup.
Nginx Proxy Manager: Create a proxy host pointing to http://flame:5005.
Backup
The /app/data volume contains the SQLite database with all applications, bookmarks, and settings:
docker compose stop
tar czf flame-backup-$(date +%Y%m%d).tar.gz /path/to/flame/data
docker compose start
See Backup Strategy for automated approaches.
Troubleshooting
Docker Containers Not Discovered
Symptom: Containers with Flame labels don’t appear on the dashboard.
Fix: Ensure the Docker socket is mounted (:ro suffix is fine). Enable Docker integration in Settings > Docker. Verify labels are correctly formatted — flame.type must be application or app.
Weather Widget Shows No Data
Symptom: Weather section displays a loading spinner or error. Fix: Verify your OpenWeatherMap API key is valid and your coordinates are correct. New API keys can take up to 2 hours to activate.
Password Not Working After Change
Symptom: Cannot log in after changing PASSWORD in Docker Compose.
Fix: The password is stored in the database on first run. Changing the environment variable alone doesn’t update it. Either change it through the Settings UI, or delete the database and restart:
docker compose down
# Remove the volume (WARNING: deletes all data)
docker volume rm flame_data
docker compose up -d
Pin Feature Not Saving
Symptom: Pinned items reset on page refresh.
Fix: Ensure the /app/data volume is correctly mounted and persistent. Pins are stored in the SQLite database.
Resource Requirements
| Metric | Value |
|---|---|
| RAM | ~60-80 MB idle |
| CPU | Very low — Node.js serving static content with minimal background work |
| Disk | ~100 MB for application + database |
Frequently Asked Questions
Does Flame have user authentication?
Yes. Flame has a simple password-based login system. Set the password with the PASSWORD environment variable. It doesn’t support multiple user accounts — it’s a single-password system to prevent unauthorized access.
Is Flame still actively developed?
Development has slowed significantly — the last release was in July 2024. The current version (2.3.1) is stable and functional, but don’t expect new features. For a more actively maintained alternative, consider Homepage or Homarr.
Can Flame auto-discover Docker containers?
Yes. Mount the Docker socket (/var/run/docker.sock:/var/run/docker.sock:ro) and add flame.* labels to your other containers. Flame automatically adds labeled containers to the dashboard. Enable Docker integration in Settings > Docker.
How does Flame compare to Homer?
Flame uses a web GUI for adding apps — no config file editing. Homer uses a single YAML file for all configuration. Flame is easier for non-technical users. Homer is lighter (~15 MB vs ~60 MB RAM) and better for version-controlled setups. Flame includes a weather widget and search bar that Homer doesn’t have by default.
Can I back up my Flame configuration?
Yes. All configuration is stored in the /app/data volume as a SQLite database. Back up this single volume to preserve all your applications, bookmarks, and settings.
Verdict
Flame is the best dashboard for users who want a simple, GUI-managed startpage without touching config files. The built-in search bar and weather widget make it a genuine browser homepage replacement, not just a link organizer. Docker auto-discovery is a nice touch for homelab setups with frequently changing containers.
The trade-off is limited customization compared to Dashy or Homarr, and no live API data from services like Heimdall offers. Development has slowed (last release July 2024), so evaluate whether the current feature set meets your needs long-term.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments