# OpenClaw Dashboard 🦞 Self-hosted Web-UI zur Verwaltung von OpenClaw- und OpenCode-Instanzen. ## πŸš€ Live Deployment **URL:** https://ai-center.tail7b642c.ts.net/ **Auth:** `admin / openclaw` ## ✨ Features - **Dashboard-Übersicht:** Live-Status aller Instanzen (Gateway, Modelle, System) - **Config-Editor:** openclaw.json direkt bearbeiten mit Syntax-Highlighting - **Log-Viewer:** Live-Logs des Gateway-Prozesses mit Auto-Refresh - **Provider-Management:** API-Keys hinzufΓΌgen und verwalten - **Model-Switcher:** Aktives Model wechseln mit allen verfΓΌgbaren Modellen - **Quick Actions:** Gateway starten/stoppen/neustarten ## πŸ› οΈ Tech Stack - **Frontend:** Next.js 14 + React + Tailwind CSS + shadcn/ui - **Backend:** Next.js API Routes - **Auth:** Basic Auth (Middleware) - **Deployment:** Node.js + Tailscale Funnel (HTTPS) - **Design:** Dark Mode mit Apple/Vercel-Γ„sthetik ## πŸ“¦ Setup & Deployment ### 1. Dependencies installieren ```bash cd /mnt/pve/Main-HDD/user-data/projects/openclaw-dashboard npm install ``` ### 2. Environment konfigurieren ```bash cp .env.example .env # Edit .env to change credentials ``` ### 3. Server starten (Development) ```bash npm run dev ``` ### 4. Server starten (Production) ```bash npm run build PORT=3001 npm start ``` ### 5. HTTPS via Tailscale Funnel ```bash # Starte den Server PORT=3001 npm start & # Tailscale Funnel aktivieren (HTTPS) tailscale funnel --bg 3001 # Funnel deaktivieren tailscale funnel --https=443 off ``` ## πŸ” Authentifizierung Standard-Credentials: - **Username:** `admin` - **Password:** `openclaw` Γ„ndern in `.env`: ``` AUTH_USERNAME=your_username AUTH_PASSWORD=your_password ``` ## πŸ“ Projektstruktur ``` openclaw-dashboard/ β”œβ”€β”€ app/ β”‚ β”œβ”€β”€ api/ # API Routes β”‚ β”‚ β”œβ”€β”€ status/ # Gateway Status β”‚ β”‚ β”œβ”€β”€ config/ # Config Editor β”‚ β”‚ β”œβ”€β”€ logs/ # Log Viewer β”‚ β”‚ β”œβ”€β”€ providers/ # API Key Management β”‚ β”‚ β”œβ”€β”€ models/ # Model Switcher β”‚ β”‚ └── actions/ # Gateway Actions β”‚ β”œβ”€β”€ layout.tsx # Root Layout β”‚ β”œβ”€β”€ page.tsx # Main Page β”‚ └── globals.css # Tailwind Styles β”œβ”€β”€ components/ β”‚ β”œβ”€β”€ ui/ # shadcn/ui Components β”‚ β”œβ”€β”€ DashboardOverview.tsx β”‚ β”œβ”€β”€ ConfigEditor.tsx β”‚ β”œβ”€β”€ LogViewer.tsx β”‚ β”œβ”€β”€ ProviderManager.tsx β”‚ β”œβ”€β”€ ModelSwitcher.tsx β”‚ └── QuickActions.tsx β”œβ”€β”€ lib/ β”‚ β”œβ”€β”€ db.ts # SQLite Database β”‚ β”œβ”€β”€ openclaw.ts # OpenClaw API Wrapper β”‚ └── utils.ts # Utilities β”œβ”€β”€ middleware.ts # Basic Auth Middleware β”œβ”€β”€ next.config.ts # Next.js Config β”œβ”€β”€ Dockerfile # Docker Build └── docker-compose.yml # Docker Compose ``` ## 🌐 API Endpoints | Endpoint | Method | Description | |----------|--------|-------------| | `/api/status` | GET | System status & Gateway status | | `/api/config` | GET/POST | Get/update openclaw.json | | `/api/logs` | GET | Get Gateway logs | | `/api/providers` | GET/POST | Get/update provider API keys | | `/api/models` | GET/POST | Get available models / switch model | | `/api/actions` | POST | Execute gateway actions (start/stop/restart) | ## 🎨 Design - **Colors:** Dark (#0a0a0a) + Orange (#f97316) + Cyan (#06b6d4) - **Theme:** Dark Mode only - **Responsive:** Desktop + Mobile - **Animations:** Framer Motion (subtil) ## πŸ”§ Troubleshooting ### Server startet nicht ```bash # Check logs cat /tmp/dashboard.log # Check port lsof -i :3001 ``` ### Tailscale Funnel nicht erreichbar ```bash # Check Tailscale status tailscale status # Check Funnel status tailscale funnel status # Reset Funnel tailscale funnel reset tailscale funnel --bg 3001 ``` ### Auth funktioniert nicht ```bash # PrΓΌfe .env Variablen cat .env | grep AUTH # Middleware neu kompilieren npm run build npm start ``` ## πŸ“ TODO (Future Features) - [ ] OpenCode Instanzen Integration - [ ] Multi-Instance Support - [ ] Real-time WebSocket Updates - [ ] Advanced Analytics Dashboard - [ ] Backup & Restore Configuration - [ ] Custom Alerts & Notifications ## πŸ“„ License MIT --- **Built with ❀️ for OpenClaw by Yannick**