{"id":23722375,"url":"https://github.com/fastybird/smart-panel","last_synced_at":"2026-04-06T23:04:21.309Z","repository":{"id":270219204,"uuid":"907300866","full_name":"FastyBird/smart-panel","owner":"FastyBird","description":":calling: A scalable, real-time, and customizable ecosystem for managing smart devices. Includes the backend, admin panel, and display app—built for seamless home automation.","archived":false,"fork":false,"pushed_at":"2025-02-18T23:11:27.000Z","size":64397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-18T23:31:06.523Z","etag":null,"topics":["dashboard","fastybird","flutter","homea-automation","iot","nestjs","raspberry-pi","smart-home","smart-panel","typescript","vue"],"latest_commit_sha":null,"homepage":"https://smart-panel.fastybird.com","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FastyBird.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"akadlec"}},"created_at":"2024-12-23T09:24:24.000Z","updated_at":"2025-02-18T23:11:28.000Z","dependencies_parsed_at":"2025-02-09T22:21:35.637Z","dependency_job_id":"f6acb6f4-3b60-46bc-9dc2-bc6aad936c4b","html_url":"https://github.com/FastyBird/smart-panel","commit_stats":null,"previous_names":["fastybird/smart-panel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastyBird%2Fsmart-panel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastyBird%2Fsmart-panel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastyBird%2Fsmart-panel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastyBird%2Fsmart-panel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FastyBird","download_url":"https://codeload.github.com/FastyBird/smart-panel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239817486,"owners_count":19701955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","fastybird","flutter","homea-automation","iot","nestjs","raspberry-pi","smart-home","smart-panel","typescript","vue"],"created_at":"2024-12-30T23:51:44.824Z","updated_at":"2026-04-02T18:29:12.920Z","avatar_url":"https://github.com/FastyBird.png","language":"Dart","funding_links":["https://github.com/sponsors/akadlec"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/fastybird/.github/blob/main/assets/repo_title.png?raw=true\" alt=\"FastyBird\"/\u003e\n\u003c/p\u003e\n\n# FastyBird Smart Panel\n\nA smart touchscreen interface for your smart home.\n\n**FastyBird Smart Panel** is a modular and extensible **user interface platform** designed to bring your smart home system to life on touchscreen displays.\n\nIt provides a seamless way to interact with your home setup, acting as a **real-time control dashboard** for systems like Home Assistant, Shelly, Zigbee2MQTT, WLED, and more.\n\n---\n\n## What FastyBird Smart Panel Offers\n\n### Elegant, User-Centric UI\n\nCreate dynamic dashboards with customizable tiles, icons, and layouts -- all optimized for embedded screens and modern devices.\n\n### Modular Architecture\n\nEach feature -- from tiles to data sources -- is handled by independent plugins. This makes the platform easy to extend and tailor to any smart home setup.\n\n### Built for Integration\n\nFastyBird Smart Panel connects with your existing smart home backend. It fetches data, executes commands, and displays device status in real-time.\n\n### Touch-Optimized Display App\n\nCrafted with **Flutter**, the display app runs smoothly on Raspberry Pi and other embedded Linux devices with small screens (e.g., 4\" or 7\").\n\n---\n\n## System Components\n\n| Component | Technology | Description |\n|-----------|------------|-------------|\n| **Backend** | NestJS, TypeORM, SQLite | Core service managing devices, dashboards, pages, tiles, and configuration |\n| **Admin** | Vue 3, Pinia, Element Plus | Web-based interface for managing pages, configuring layouts, and controlling devices |\n| **Panel** | Flutter (Dart) | Touchscreen display app for Raspberry Pi and embedded Linux devices |\n| **Website** | Next.js, React, MDX | Project documentation and marketing website |\n\n---\n\n## Supported Integrations\n\n### Device Integrations\n\n| Integration | Protocol | Description |\n|-------------|----------|-------------|\n| **Home Assistant** | WebSocket API | Full entity sync with Home Assistant instances |\n| **Shelly (Gen 2+)** | HTTP/CoAP | Native support for Shelly Gen 2+ (NG) devices |\n| **Shelly (Gen 1)** | HTTP/CoAP | Support for Shelly Gen 1 devices |\n| **Zigbee2MQTT** | MQTT | Integration with Zigbee devices via Zigbee2MQTT |\n| **WLED** | HTTP | Control WLED-powered RGB/LED devices |\n| **OpenWeatherMap** | HTTP API | Weather data for dashboard tiles |\n\n### AI \u0026 Voice Integrations\n\n| Integration | Description |\n|-------------|-------------|\n| **Claude (Anthropic)** | AI-powered smart home assistant via Claude API |\n| **OpenAI** | AI assistant powered by OpenAI models |\n| **OpenAI Codex** | Code-generation AI assistant |\n| **Ollama** | Local AI assistant using self-hosted Ollama models |\n| **ElevenLabs** | High-quality text-to-speech voice synthesis |\n| **System TTS** | Built-in system text-to-speech engine |\n| **Whisper (Local)** | Local speech-to-text transcription |\n\n### Messaging Integrations\n\n| Integration | Description |\n|-------------|-------------|\n| **Discord** | Control your smart home through Discord bot |\n| **Telegram** | Control your smart home through Telegram bot |\n| **WhatsApp** | Control your smart home through WhatsApp |\n\n---\n\n## Features at a Glance\n\n- **Configurable Grid Layouts** -- Tile-based, card-based, and detail-style page views\n- **Customizable Tiles** -- Clocks, weather, device previews, scenes, and more\n- **Plugin System** -- Extensible architecture for data sources, pages, tiles, and device integrations\n- **Real-Time Updates** -- WebSocket-powered instant sync across all clients\n- **API-first Design** -- OpenAPI-documented REST API for easy third-party integration\n- **Multi-Display Support** -- Multiple displays showing different dashboards with role-based views\n- **Spaces \u0026 Rooms** -- Room-first control with domain-based device grouping (lights, climate, media, security)\n- **Scenes** -- Automations and scene presets for one-tap control\n- **Energy Monitoring** -- Track consumption and production across devices and spaces\n- **AI Assistant (Buddy)** -- Built-in AI assistant with support for Claude, OpenAI, and local Ollama models\n- **Voice Control** -- Speech-to-text (Whisper) and text-to-speech (ElevenLabs, system TTS) support\n- **Messaging Bots** -- Control your home via Discord, Telegram, or WhatsApp\n- **Extension SDK** -- Build and distribute custom extensions as npm packages\n\n---\n\n## Quick Start (Production)\n\nSmart Panel supports three deployment scenarios. Choose the one that fits your setup:\n\n### All-in-One (Server + Display on One Device)\n\nThe simplest setup — ideal for a standalone Raspberry Pi with a touchscreen:\n\n```bash\n# Install the server (backend + admin interface)\ncurl -fsSL https://get.smart-panel.fastybird.com | sudo bash\n\n# Install the display app with kiosk mode\ncurl -fsSL https://get.smart-panel.fastybird.com/panel | sudo bash -s -- --backend http://localhost:3000 --kiosk\n```\n\n### Server Only\n\nRun just the backend and admin interface on a central device. Display panels connect remotely:\n\n```bash\n# Option A: One-liner install script\ncurl -fsSL https://get.smart-panel.fastybird.com | sudo bash\n\n# Option B: NPM global install\nsudo npm install -g @fastybird/smart-panel\nsudo smart-panel-service install\n```\n\n### Display Only\n\nInstall the panel app on a device that connects to an existing server:\n\n```bash\ncurl -fsSL https://get.smart-panel.fastybird.com/panel | sudo bash -s -- --backend http://YOUR_SERVER_IP:3000\n```\n\nSupports Raspberry Pi (flutter-pi), Linux x64 (eLinux DRM or GTK desktop), and Android (APK via ADB).\n\nFor detailed installation instructions, see the [Installation Guide](build/docs/INSTALLATION.md) or the [online documentation](https://smart-panel.fastybird.com/docs/get-started/installation).\n\n---\n\n## Development Setup\n\n### Prerequisites\n\n- **Node.js** \u003e= 24\n- **pnpm** \u003e= 10\n- **Flutter/Dart** (for panel app development)\n\n### Getting Started\n\n```bash\n# Clone the repository\ngit clone https://github.com/fastybird/smart-panel.git\ncd smart-panel\n\n# Bootstrap the project (installs deps, generates code, runs migrations, builds)\npnpm run bootstrap\n\n# Create the first user\npnpm run onboard\n\n# Start the backend in dev mode\npnpm run start:dev\n```\n\nThe backend runs on `http://localhost:3000` with Swagger docs at `http://localhost:3000/api/docs`.\n\n### Common Commands\n\n```bash\n# Development\npnpm run start:dev              # Backend dev server\npnpm run admin:build            # Build admin app\n\n# Testing\npnpm run test:unit              # Run unit tests\npnpm run test:e2e               # Run E2E tests\n\n# Linting \u0026 Formatting\npnpm run lint:js                # Lint TypeScript\npnpm run lint:js:fix            # Auto-fix lint issues\npnpm run pretty                 # Format code\n\n# Code Generation\npnpm run generate:openapi       # Generate OpenAPI spec and API clients\npnpm run generate:spec          # Generate device/channel specifications\n```\n\n---\n\n## Project Structure\n\n```\napps/\n  backend/       NestJS backend application\n  admin/         Vue.js admin interface\n  panel/         Flutter/Dart display app\n  website/       Next.js documentation site\n\npackages/\n  extension-sdk/       SDK for building Smart Panel extensions\n  example-extension/   Example extension implementation\n\nspec/                  Generated API and device specifications\ndocs/                  Developer documentation\ntasks/                 Feature and technical task specifications\nbuild/                 Production build and installation tools\n```\n\n---\n\n## Documentation \u0026 Resources\n\n- [Project Website](https://smart-panel.fastybird.com)\n- [User Documentation](https://smart-panel.fastybird.com/docs)\n- [Installation Guide](build/docs/INSTALLATION.md) - Server, display, and all-in-one setup\n- [Architecture Overview](docs/architecture.md)\n- [Extensions Guide](docs/extensions.md)\n- [Extension SDK](packages/extension-sdk/README.md)\n- [Issue Tracker](https://github.com/FastyBird/smart-panel/issues)\n\n---\n\n## Contributing\n\nContributions are welcome! Please fork this repository and submit a pull request.\n\n1. Fork the project\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a pull request\n\n---\n\n## License\n\nThis project is licensed under the **Apache License 2.0**. See the [LICENSE](LICENSE.md) file for details.\n\n***\nHomepage [https://smart-panel.fastybird.com](https://smart-panel.fastybird.com) and repository [https://github.com/fastybird/smart-panel](https://github.com/fastybird/smart-panel).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastybird%2Fsmart-panel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastybird%2Fsmart-panel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastybird%2Fsmart-panel/lists"}