Install • Overview • Custom Services • PWA •
A lightweight self-hosted personal infrastructure dashboard built with Express + React (Vite). Dark mode by default. Displays service data in a bento-grid layout with auto-refresh every 30 seconds. Supports real API integration and custom service endpoints.
- Weather displayed inline in header (location, temp, condition)
- Gotify push notification settings (notifies on status changes, warnings, offline events)
- API Connection Setup guide page at /setup
- Dark/Light theme toggle
- Auto-refresh every 30 seconds
- Skeleton loading states
- Real API integration with automatic fallback to mock data
- Custom services: add any API endpoint as a dashboard widget
- Editable bookmark cards section at top of dashboard
- Each bookmark has: name, URL, icon (from lucide-react), and color
- CRUD via API: GET/POST /api/bookmarks, PUT/DELETE /api/bookmarks/:id
- Default sample bookmarks provided (Proxmox, Portainer, Plex, AdGuard, Home Assistant)
- In-memory storage (resets on restart)
- Add any API endpoint as a monitored service on the dashboard
- A specialized Service Monitor Card displays custom services with emphasis on URL and status
- Configurable: name, base URL, API path, icon, category, value field, unit, status check field
- CRUD via API: GET/POST /api/custom-services, PUT/DELETE /api/custom-services/:id
- Also configurable via environment variables: CUSTOM_1_NAME, CUSTOM_1_URL, CUSTOM_1_API_PATH, etc. (up to 20)
- JSON response is automatically parsed into dashboard metrics (top 4 fields displayed)
- Supports nested field access via dot notation (e.g., "data.count")
- Managed through Settings panel UI or env vars
- In-memory storage for UI-added services (resets on restart); env-based services persist
Deploy directly on Linux or LXC (Debian/Ubuntu, Alpine, Fedora, Arch). Requires Node.js 18+, npm, git, curl.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/frozendark01/argusapp/main/ct/argus.sh)"Optional overrides:
ARGUS_INSTALL_DIR=$HOME/argus \
ARGUS_PORT=5000 \
ARGUS_DATA_DIR=$HOME/argus/data \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/frozendark01/argusapp/main/ct/argus.sh)"Notes:
- Default install path:
/opt/argus - Systemd service name:
argus
Service commands:
sudo systemctl status argus
sudo systemctl restart argus
sudo systemctl stop argusLog location:
sudo journalctl -u argus -n 200 --no-pagerUninstall:
sudo systemctl disable --now argus
sudo rm -f /etc/systemd/system/argus.service
sudo systemctl daemon-reload
sudo rm -rf /opt/argus### Download example.env
wget -O .env https://raw.githubusercontent.com/frozendark01/argusapp/refs/heads/main/example.envImportant: To persist bookmarks and Gotify config, you must mount a volume to /app/data.
docker run -d \
--name argus \
-p 5000:5000 \
--env-file .env \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
ghcr.io/frozendark01/argusapp:latestservices:
argus:
image: ghcr.io/frozendark01/argusapp:latest
container_name: argus
ports:
- "5000:5000"
env_file:
- .env
volumes:
- ./data:/app/data
restart: unless-stoppedVolume Details:
- Path:
/app/datainside the container - Contents:
bookmarks.json,gotify-config.json - Note: Without this volume, all bookmarks and Gotify settings will be lost when the container is removed or updated
Deploy this dashboard on your own server to monitor your home infrastructure.
- Node.js 18 or later
- npm or yarn package manager
- A Linux server (Ubuntu, Debian, etc.) or any machine that runs Node.js
git clone https://github.com/frozendark01/argusapp.git
cd argusapp
npm install
npm run dev
