Modern, premium, and feature-rich browser startpage with a stunning glassmorphism design.
Glassypage is a high-performance, aesthetically pleasing dashboard designed to be your browser's new home. It combines deep system integration with productivity tools and a state-of-the-art UI inspired by modern frosted glass effects.
- Premium Glassmorphism: Frosted glass effects, vibrant gradients, and smooth micro-animations.
- Dynamic Themes: Built-in support for Dark, Light, and Auto (time-based) modes, plus a powerful Custom Theme Editor.
- Responsive Design: Optimized for ultrawide monitors, standard desktops, and mobile devices.
- Spotlight-Style Search: A central hub for searching the web (DuckDuckGo/Google) with support for
!bangs. - Smart Tools: Perform mathematical calculations, currency conversions, and unit translations directly in the search bar.
- Vim Keys: Full keyboard-driven navigation with Vim-inspired keybindings for power users.
- System Monitoring: Real-time stats for CPU, RAM, Disk usage, OS/kernel, and Hostname.
- Cross-Distro Update Tracker: Live count of pending package updates with automatic distro detection — Arch (
checkupdates), Debian/Ubuntu (apt), Fedora/RHEL (dnf), openSUSE (zypper) and Alpine (apk). The package manager can also be forced from Settings → General. - Docker Widget: List, monitor (live CPU/RAM stats), control (start/stop/restart) and tail logs of your containers right from the dashboard.
- Integrated Terminal: Run whitelisted shell commands directly from your browser dashboard.
- Media Controls: Seamless integration with local media players via MPRIS (
playerctl).
- Pomodoro Timer: Stay focused with a customizable timer and visual progress ring.
- Auto-Saving Scratchpad: A slip-in panel for quick notes that persists automatically.
- Agenda & To-Dos: Manage your daily events and tasks with dedicated widgets.
- RSS Reader: Keep up with the latest news via a compact ticker or expanded card view.
- Plugin System: Architected for modularity—easily install or develop your own widgets with a manifest-based plugin system.
- AirDrop-like Clipboard: Share text and links across your devices on the same LAN effortlessly.
- Core: HTML5, Vanilla JavaScript (ES6+)
- Styling: Modern CSS3 (Variables, Flexbox, Grid, Backdrop-Filter)
- Backend: Node.js, Express (for system APIs)
- APIs: wttr.in (Weather), Frankfurter (Currency), Custom RSS Parser
Pick whichever fits you — Docker (works identically on any host), a native install (Arch, Debian/Ubuntu, Fedora, openSUSE) via the installer, or a manual dev run.
Requires Docker + the Compose plugin.
git clone https://github.com/Rexolt/glassypage.git
cd glassypage
cp .env.example .env # then edit PUID/PGID/TZ/DOCKER_GID
make up # seeds .env + config.json, then builds & startsOpen http://localhost:3000 (or your PORT). Handy targets: make logs, make down, make update, make rebuild.
Prefer raw Compose? Seed the live config first (the bind mount needs a real file), then start:
cp config.example.json config.json docker compose up -d --build
.env values (find yours with the listed commands):
| Variable | Purpose | How to find |
|---|---|---|
PORT |
Host port for the dashboard | — |
PUID / PGID |
Run as your user so config.json/plugins/ stay writable |
id -u / id -g |
TZ |
Clock & uptime timezone | e.g. Europe/Budapest |
DOCKER_GID |
Lets the Docker widget use the host socket | getent group docker | cut -d: -f3 |
The image bundles docker-cli, and the Docker socket is mounted by default so the Docker widget can manage host containers. :ro for read-only) in docker-compose.yml if you don't want it.
ℹ️ In Docker, the update tracker reflects the container's own packages (Alpine). For host package updates, use the native install below.
Auto-detects your package manager (apt/pacman/dnf/zypper), installs deps, and sets up a user systemd service that survives reboots:
git clone https://github.com/Rexolt/glassypage.git
cd glassypage
./install.shManage it with systemctl --user status|stop|restart glassypage.service.
- Node.js v18+ and npm
- (Optional)
playerctl(media) and your distro's update tool (checkupdates/apt/dnf/zypper) for full system features.
git clone https://github.com/Rexolt/glassypage.git
cd glassypage
npm install
npm run dev # serves on http://localhost:3000Glassypage is highly customizable without touching code. Click the Gear Icon (bottom-right) to access the settings menu:
- Change background wallpapers (URL or Upload).
- Customize search engines and
!bangs. - Manage widget layout and visibility.
- Override the package manager used by the update tracker.
- Export/Import your custom themes and settings.
Settings live in
config.json, which is git-ignored and created automatically fromconfig.example.jsonon first run (so your personal setup never gets committed). To change the shipped defaults, editconfig.example.json.
Contributions are welcome! If you have ideas for new widgets or styles, feel free to open an issue or submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Made with 💜 by Rexolt
