Flame: A Self-Hosted Startpage That Doesn't Make You Edit YAML by Hand
If you've ever run a home server, you know the drill. You've got a dozen services scattered across different ports—a media server here, a dashboard there, some container you spun up six months ago and half-forgot about. Bookmarking them all in your browser works, sort of, until you're on a different machine and have to remember whether it was port 8080 or 8090. Flame is a self-hosted startpage built to solve exactly that problem, and it takes a different approach than most: instead of editing config files, you manage everything through a built-in GUI.
What It Does
Flame is a startpage for your server—a single page that acts as a hub for all your applications and bookmarks. Its design takes heavy inspiration from SUI, so if you've seen that project, you'll recognize the aesthetic. The core idea is simple: you get a customizable dashboard where you can pin your most-used services for quick access, search across everything you've added, and organize it all without touching a text editor.
Under the hood, it's a Node.js and Express backend paired with a React frontend, using Redux and TypeScript on the client side. Data is stored via Sequelize ORM with SQLite, which keeps things lightweight and means you're not running a separate database just to track your bookmarks. The whole thing is designed to be deployed with Docker, though there's a wiki guide for running it without containers if that's your preference.
The feature set covers the practical stuff: create, update, and delete applications and bookmarks directly from the app; pin favorites to the homescreen; an integrated search bar with local filtering that supports 11 web search providers (plus the ability to add your own); and an authentication system to protect your settings. There's also a weather widget showing current temperature, cloud coverage, and an animated status indicator—a small touch, but a nice one for a page you'll see every day.
Why It's Cool
The GUI editors are the headline here. Most self-hosted dashboards expect you to hand-edit a config file—often YAML, often with strict indentation rules, often with a restart required to see changes. Flame skips all of that. You add an app through the interface, it shows up. You want to reorder things or change a color theme, you do it in the browser. For anyone who's spent twenty minutes debugging a misplaced tab character in a dashboard config, this is a genuine quality-of-life improvement.
-
Docker integration that actually does something useful. If you mount the Docker socket, Flame can automatically pick up running containers and add them based on their labels. That means less manual entry—your containers announce themselves, and Flame listens. It's optional, but it's a clever way to keep your startpage in sync with what's actually running.
-
Customization without a rebuild. You get 15 built-in color themes, a custom theme builder, and support for custom CSS. That's a meaningful range—enough to make it feel like yours without forcing you to fork the project and maintain your own changes.
-
Authentication that respects your setup. The password can be set via an environment variable, and there's support for Docker secrets through the
_FILEsuffix convention. If bothPASSWORDandPASSWORD_FILEare set, the secret file takes precedence. It's a small detail, but it shows the project understands how people actually deploy containers. -
Search that works the way you'd want. The default behavior searches across all your apps and bookmarks, but you can also search using specific providers. With 11 built-in options and support for adding your own, it's flexible enough to fit different workflows.
The tech stack is also worth noting—Node, Express, React, Redux, TypeScript, SQLite—because it's approachable. If you want to contribute or just understand how something works, you're not dealing with an exotic framework or a language you've never touched.
How to Try It
Docker is the recommended path, and it's about as simple as it gets.
- Pull the image:
docker pull pawelmalak/flame
For ARM (like a Raspberry Pi), use the multiarch tag:
docker pull pawelmalak/flame:multiarch
- Run the container:
docker run -p 5005:5005 -v /path/to/data:/app/data -e PASSWORD=change_me pawelmalak/flame
- Visit port 5005 and start adding your applications.
If you prefer Docker Compose, the README includes a full example with optional Docker socket mounting (for the Docker integration) and Docker secrets support. There's also a Skaffold setup if you're into that workflow.
For development, you can clone the repo and run:
git clone https://github.com/pawelmalak/flame
cd flame
npm run dev-init
npm run dev
That spins up both the backend and frontend dev servers. If you'd rather not use Docker at all, there's a wiki page covering installation without it.
The repository is at github.com/pawelmalak/flame.
Final Thoughts
Flame is a solid choice if you want a self-hosted startpage that doesn't require you to become a part-time YAML maintainer. The GUI editors, Docker integration, and customization options make it practical for people who want their server dashboard to be useful without being a project in itself. It's not trying to be everything—it's a focused tool that does a specific job well. If you've been putting off setting up a startpage because the config looked tedious, this is worth a look.
Follow @githubprojects for more developer tools and open source projects.