Skip to content

302Co/302Hub

Repository files navigation

302Hub

302Hub Dashboard Preview

302Hub is an open-source homelab dashboard for service monitoring, quick links, kiosk screens, and integration-driven wallboards.

Repository: github.com/302Co/302Hub

⚠️ Pre-Release Note (We need your feedback!)

Please keep in mind that this is a beta (pre-release) version. You might encounter some bugs, rough edges, or missing features. We released it early because we want to build this with the community!

If you find a bug or have a great idea:

  • 🐛 Report Issues: Please open an issue on our GitHub repository.
  • 🛠️ Contribute: Pull Requests (PRs) are more than welcome. Let's make this better together!
  • 📧 Contact: You can also reach out to us at info@302.com.tr.

Features

  • Guided setup with PIN unlock or username + password
  • Home dashboard and kiosk wallboard
  • Live layout editing with panels and kiosk pages
  • Built-in widgets such as Clock, Stats, Services, Notes, Quick note, Weather, Google, Pi-hole, REST, and Iframe
  • Integration engine for Pi-hole v6, Portainer, Grafana iframe, and Custom REST
  • Theme, quick links, compact UI scale, backup, cleanup, and update checks

Documentation

Tech Stack

  • Next.js 16 App Router
  • TypeScript
  • Tailwind CSS 4
  • Prisma ORM
  • SQLite

Quick Start (Docker)

The easiest way to run 302Hub is via Docker. Create a docker-compose.yml file:

services:
  app:
    image: 302co/302hub:latest
    container_name: 302hub
    environment:
      DATABASE_URL: file:/app/data/dev.db
      SESSION_SECRET: "change-this-to-a-long-random-string"
      MASTER_PASSWORD: "your-secure-password"
      NEXT_PUBLIC_APP_NAME: 302Hub
      NEXT_PUBLIC_DEFAULT_LOCALE: en
    ports:
      - "3020:3020"
    volumes:
      - ./302hub_data:/app/data
    restart: unless-stopped

Start the container:

docker compose up -d

Then open http://localhost:3020.

Local Development

  1. Copy .env.example to .env
  2. Install dependencies
  3. Generate the Prisma client
  4. Start the app
npm install
npm run prisma:generate
npm run dev

Then open http://localhost:3020.

Example local environment:

DATABASE_URL="file:./dev.db"
SESSION_SECRET="change-this-before-production"
MASTER_PASSWORD=""
NEXT_PUBLIC_APP_NAME="302Hub"
NEXT_PUBLIC_DEFAULT_LOCALE="en"

Useful Scripts

npm run dev
npm run build
npm run lint
npm run typecheck
npm run prisma:generate
npm run prisma:migrate:dev
npm run db:seed

Security Notes

  • Settings and mutation APIs are protected by the active auth mode
  • PIN unlock keeps the dashboard readable but protects settings changes
  • Credentials mode requires an admin session for protected routes
  • Iframe panels only allow parsed http or https sources from embed code
  • External links and branding URLs are sanitized to safe protocols

Contributing

Contributions are welcome.

Typical contribution flow:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run:
npm run lint
npm run build
  1. Open a Pull Request

If you prefer, you can also share improvements directly with us at info@302.com.tr.

Open Source and Commercial Licensing

This project is licensed under AGPL-3.0-only.

If you run a modified network-accessible version of this project, you must provide the complete corresponding source code of that modified version under the same license terms.

If you want to use this project commercially, keep your modifications private, or remove the 302.com.tr references and resell it under your own brand, the AGPL license does not permit that. In those cases, you must contact 302 Yazılım Geliştirme to purchase a separate commercial license.

This project is licensed under AGPL-3.0. To help improvements flow back into the community and keep the main repository growing, please send your changes as a Pull Request (PR) or share them with us at info@302.com.tr.

About

🚀 Open-source homelab dashboard & liquid-glass wallboard. Features live layouts, Pi-hole v6, Portainer & Grafana integrations, telemetry proxy, and secure PIN/Auth. Built with Next.js 16, TypeScript, Tailwind 4 & SQLite. 🛠️

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages