Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,165 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Stackyard

A self-hosted homelab dashboard you actually want to look at.

ghcr.io Docker Hub Latest release Tests Status

Stackyard dashboard

Try it: stackyard-demo.onrender.com
Note: The first demo visit may take up to a minute due to Render's free-tier cold start.

Most dashboards are a wall of numbers and charts. Stackyard is the opposite: a calm, launcher-style grid of app tiles, folders, and a small number of genuinely useful widgets, running in a single container. Built to be glanced at a hundred times a day without feeling cluttered.

Contents

Why Stackyard

  • Attention goes where it's needed, not everywhere at once. A calm grid, no charts or counters. Health badges only appear when something's wrong.
  • A glance should tell you more than a number would. Widgets are small visuals, not readouts.
  • Anything can be a badge. Point Stackyard at any API, pick a value from the response, and show it as a live activity badge. No custom widget, no code.
  • Configured by clicking, not by editing files. Everything is set up in the web UI, with config import and export.
  • No dependencies. Review it once and stop worrying about the supply chain.

Has a mobile layout and ships in English, Persian, Chinese, Spanish, German, and French.

Add it to a phone's home screen and it opens in its own window, without browser chrome. There is no offline mode: every tile shows live data, so the dashboard needs to reach your services.

Getting started

You need Docker.

Using Docker Compose:

services:
  stackyard:
    image: ghcr.io/sandobserver/stackyard:latest
    container_name: stackyard
    restart: unless-stopped
    ports:
      - "8700:80"
    volumes:
      - ./data:/data
      - ./icons:/icons
docker compose up -d

Or with docker run:

docker run -d \
  --name stackyard \
  --restart unless-stopped \
  -p 8700:80 \
  -v ./data:/data \
  -v ./icons:/icons \
  ghcr.io/sandobserver/stackyard:latest

On Unraid: install it from Community Apps.

Then open http://localhost:8700 and set everything up at /admin. Config and uploaded icons persist in ./data and ./icons.

The same image is on Docker Hub as sandobserver/stackyard. Prefer ghcr.io: it is the registry the release signature covers.

The repo's docker-compose.yml is the recommended version: it adds resource limits, dropped capabilities, and commented options for a reverse proxy, host access, and Docker health checks.

General holds the title, language, password protection, and import and export. Import also reads a gethomepage or Dashy YAML file.

Stackyard admin, General section

Icons

App icons resolve automatically by name from the community dashboard-icons set. You can also upload your own; custom icons are stored in ./icons.

Widgets

Widgets and the services they read:

  • Clock
  • Now Playing: Plex, Jellyfin, Emby, Navidrome
  • Weather: Open-Meteo (no API key required)
  • DNS: AdGuard, Pi-hole, Technitium, NextDNS
  • GitHub: contribution graph and pull requests
  • Books: Audiobookshelf, Komga, Kavita
  • System stats: CPU, memory, disk, throughput, uptime, and network speed from SpeedTest Tracker or MySpeed
  • Disk health: TrueNAS, Scrutiny
  • Backup: Duplicati, Kopia
  • Connections: Gluetun, Psiphon Conduit, Netbird, Plausible, Umami

Adding one is a folder plus one registry entry, with no changes to the rest of the app. See docs/widgets.md.

Live activity badges

Give Stackyard an API endpoint and it lists the numbers in the response, so you pick the one you want on the tile. Point it at Sonarr's queue and the Sonarr tile carries a count of episodes still downloading. Show From sets a floor, so a queue that is never quite empty stays quiet until it matters.

Configuring a live activity badge

Security

Stackyard never returns stored secrets to the browser, guards the URLs you test in the admin UI against SSRF and pins the resolved IP, and bounds every upstream call so one slow service cannot hang the dashboard. Some features trade safety for convenience and are opt-in with warnings. Read docs/security.md before exposing Stackyard beyond your LAN.

Building from source

git clone https://github.com/SandObserver/stackyard.git
cd stackyard
docker build -t stackyard:local .

Then run stackyard:local the same way as above. For working on the code without Docker, see CONTRIBUTING.md.

Contributing

Contributions are welcome, within the constraints that keep Stackyard small and auditable (one container, no backend dependencies, vanilla frontend). See CONTRIBUTING.md and docs/frontend.md. Participation is covered by the Code of Conduct.

Changelog

Notable changes are listed in CHANGELOG.md; per-release notes are on the GitHub Releases page.

License

Licensed under the Apache License 2.0. You are free to use, modify, fork, and build on Stackyard, including commercially. In return you must keep the existing copyright and attribution notices, and the license does not grant rights to the Stackyard name or logo: forks are welcome but must use their own name and not present themselves as the original project. See NOTICE.

About

A self-hosted homelab dashboard you actually want to look at. Calm, live activity badges from any API, single container, zero dependencies.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages