Documents the web editor, preset management, auth gate, undo, and Docker deployment. Credits and links back to upstream glanceapp/glance. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.4 KiB
modern-glance
Install • Editor • Configuration • Themes
A fork of glanceapp/glance that adds a web-based dashboard editor so you can manage your config without touching YAML.
Upstream credit: All core functionality — widgets, theming, layout engine, hot-reload — is the work of the Glance project and its contributors. This fork adds an editing UI on top and nothing else. If you find Glance useful, consider sponsoring the upstream project.
What's added
In-place edit mode
A pencil button in the dashboard header toggles edit mode. While active you can:
- Drag and drop widgets between columns and reorder them
- Add widgets via a form dialog (for most widget types) or a YAML editor fallback
- Edit widgets inline with per-field forms — includes live lookup for weather locations, market symbols, and RSS feed validation
- Delete widgets
- Add, delete, resize, and reorder columns
- Add and manage head widgets (the row above the columns)
Page management (/edit)
- Add, delete, and reorder pages
- Per-page settings: name, slug, width, navigation options, mobile header
Site settings (/edit/site-settings)
- App name, logo, favicon, footer — all editable without touching YAML
Theme settings (/edit/theme-settings)
- Color pickers for background, primary, positive, and negative colors (hex input, stored as HSL)
- Contrast and text saturation multipliers
- Light mode toggle, hide-picker toggle, custom CSS file path
- Preset management: add, edit, and delete named theme presets with live preview swatches
- Built-in theme catalog: 14 themes from the upstream docs (Dracula, Catppuccin variants, Gruvbox, and more) importable with one click
Multi-step undo
/edit keeps a 10-step numbered backup chain (glance.yml.bak.1 … .bak.10). Each save rotates the chain; any backup can be restored individually.
Auth gate
/edit returns 403 unless auth.users is configured or admin.allow-without-auth: true is set. See docs/glance.yml for examples of both.
Installation
Docker (recommended)
# docker-compose.yml
services:
glance:
image: ghcr.io/uhlwoogi/modern-glance:latest
ports:
- "8080:8080"
volumes:
# Config dir — glance.yml lives here and is written by /edit
- ./config:/app/config
# Optional: custom CSS / images (set server.assets-path: /app/assets in glance.yml)
- ./assets:/app/assets
restart: unless-stopped
# environment:
# MY_SECRET_TOKEN: abc123 # reference as ${env:MY_SECRET_TOKEN} in glance.yml
-
Create the config directory and grab the starter config:
mkdir -p config assets curl -o config/glance.yml https://raw.githubusercontent.com/uhlwoogi/modern-glance/main/docs/glance.yml -
Start:
docker compose up -d -
Open
http://localhost:8080— click the pencil icon in the header to start editing.
The starter
glance.ymlhasadmin.allow-without-auth: trueso/editis open by default. Switch to the auth block in the file before exposing to a network you don't fully trust.
Updating
docker compose pull && docker compose up -d
Original Glance features
Everything from upstream is intact:
- Widgets: RSS, Reddit, Hacker News, weather, YouTube, Twitch, markets, Docker containers, server stats, bookmarks, calendar, monitors, and many more
- Fast and lightweight: low memory, minimal JS, single ~20 MB binary, pages load in ~1s
- Highly customizable: multiple layouts, pages, themes, custom CSS
- Mobile optimized
- Themeable: tweak a few numbers or pick from the theme gallery
Full configuration reference: docs/configuration.md
Building from source
# Run locally
go run .
# Build binary
go build -o glance .
# Build and push Docker image
docker build -t ghcr.io/uhlwoogi/modern-glance:latest .
docker push ghcr.io/uhlwoogi/modern-glance:latest
Requires Go ≥ 1.23.
