I posted a diagram of my homelab on Reddit and someone asked how they could make one too. That's where this project started. I wanted a way to add machines and apps, get the logos in, and update the diagram as things changed.
Atlas lays out your diagram automatically, with optional manual positioning and sizing when you want to adjust the composition. Add your servers, services, and network gear, then export a PNG or SVG for your docs or a post. The app runs locally and doesn't need an account or an LLM.
You'll need Docker with Compose v2:
curl -fsSLO https://github.com/aiden0rchad/homelab-atlas/releases/download/v0.5.0/compose.release.yaml
docker compose -f compose.release.yaml up -dOpen http://localhost:8080. This uses the 0.5.0 image and only listens on the machine running Docker. Images are available for Linux AMD64 and ARM64.
For access from another computer, updates, or running without Docker, see the setup guide. The release page has the portable ZIP, Compose file, and checksums.
Start with Load example to see how it works, or Start empty for your own lab. Add devices, fill in whatever hardware details you want to show, and group the services running on each one. Visual logo pickers are searchable and work offline. Click a device icon or an existing service logo to replace it.
You can upload PNG, JPG, WebP, or SVG logos up to 2 MB, preview their contrast background, and reuse them across devices, services, and network nodes. SVG uploads are converted to PNG, and stored images are at most 512px. They stay in project JSON and work offline and in exports. The bundled catalog still includes 27 provider marks. Atlas starts with an automatic layout; Arrange lets you move or resize device cards. Export downloads a PNG or SVG. Use Save project to download a JSON copy you can edit later.
The editor guide covers the controls, and the networking guide explains connections and VLANs.
- Save a JSON backup. Autosave lives in your browser, not the container. Clearing browser data, using private browsing, or opening Atlas at a different hostname or port can make your project appear missing. A PNG or SVG can't be imported as an editable project.
- You enter the inventory yourself. Atlas doesn't scan your network, read Docker, or check whether services are online.
- Connections are logical relationships. They don't represent individual switch ports, and network cards stay in the automatic header even when you arrange device cards.
- There's no login system. Keep it on localhost or a trusted LAN. Don't expose it directly to the internet.
- Exports include what you typed. Check names, addresses, and labels before posting a diagram publicly.
More detail is in the backup guide, privacy page, and troubleshooting guide.
This is still an early version. If something breaks or a layout looks wrong, open an issue with a screenshot and steps to reproduce it. Remove private details from anything you attach.
PRs are welcome. CONTRIBUTING.md has the checks to run, and the development docs explain the code and logo catalog. Please report security problems privately using SECURITY.md.
If you'd like to support the project, you can buy me a coffee.
The code is MIT licensed. App and hardware logos belong to their respective owners and keep their original licenses. Attribution is in THIRD_PARTY_NOTICES.md.
