Sign inSign up

twlatx/startpage-dashboard

By twlatx

•Updated 4 months ago

Image
0

4.7K

twlatx/startpage-dashboard repository overview

ā šŸš€ Start Page Dashboard

A modern, customizable browser start page with category-based organization, service monitoring, and an admin interface.

Dashboard Preview

⁠✨ Features

  • šŸŽØ Modern Glassmorphism Design - Beautiful dark theme with animated gradients
  • šŸ“‚ Categorized Blocks - Organize your links by category
  • šŸ”¤ Alphabetical Sorting - Blocks automatically sorted within each category
  • šŸ–¼ļø Custom Icons - Support for custom images or auto-fetched favicons
  • šŸ“Š Service Monitoring - Monitor the health of your self-hosted services
  • šŸŒ¤ļø Weather Display - Show current weather with location search
  • šŸš— Traffic Information - Real-time commute times with color-coded status
  • āš™ļø General Settings - Customize site title and favicon
  • šŸ” Security - 2FA/TOTP support, session management, rate limiting
  • ⚔ Admin Interface - Web UI to manage all settings
  • 🐳 Docker Ready - Easy deployment with Docker Compose
  • āŒØļø Keyboard Shortcuts - Ctrl+K to focus search
  • šŸ“± Responsive - Works on all devices

ā šŸš€ Quick Start

The easiest way to run Start Page Dashboard is using the pre-built Docker image from Docker Hub.

  1. Create a docker-compose.yml file:
version: '3.8'

services:
  startpage:
    image: twlatx/startpage-dashboard:latest
    container_name: startpage-dashboard
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=file:/app/data/prod.db
      - NEXT_PUBLIC_APP_NAME=Start Page Dashboard
    volumes:
      - ./data:/app/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
  1. Start the application:
docker-compose up -d
  1. Open http://localhost:3000⁠ in your browser

  2. Access the admin panel at http://localhost:3000/admin⁠

ā šŸ“ Project Structure

startpage-dashboard/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ app/              # Next.js app router
│   │   ā”œā”€ā”€ api/          # API routes
│   │   ā”œā”€ā”€ admin/        # Admin interface
│   │   ā”œā”€ā”€ globals.css   # Global styles
│   │   ā”œā”€ā”€ layout.tsx    # Root layout
│   │   └── page.tsx      # Main dashboard
│   ā”œā”€ā”€ components/       # React components
│   ā”œā”€ā”€ lib/              # Utility functions
│   └── types/            # TypeScript types
ā”œā”€ā”€ prisma/
│   ā”œā”€ā”€ schema.prisma     # Database schema
│   └── seed.ts           # Seed data
ā”œā”€ā”€ docker-compose.yml    # Docker Compose config
ā”œā”€ā”€ Dockerfile            # Docker image
└── README.md             # This file

ā šŸ”§ Configuration

⁠Adding Blocks

Visit /admin to manage blocks and categories through the web interface.

⁠Service Monitoring

When adding a block, you can enable monitoring by:

  1. Checking "Is Monitored"
  2. Providing a health check URL
  3. The dashboard will show a status indicator
⁠Custom Icons

You can provide custom icon URLs when creating blocks. If no icon is provided, the dashboard will automatically fetch the website's favicon.

ā šŸ”Œ API Endpoints

  • GET /api/categories - List all categories with blocks

  • POST /api/categories - Create a new category

  • PUT /api/categories/:id - Update a category

  • DELETE /api/categories/:id - Delete a category

  • GET /api/blocks - List all blocks

  • POST /api/blocks - Create a new block

  • PUT /api/blocks/:id - Update a block

  • DELETE /api/blocks/:id - Delete a block

  • GET /api/health/:id - Check service health

⁠🐳 Docker Deployment

Pull and run the official image from Docker Hub:

# Pull the latest image
docker pull twlatx/startpage-dashboard:latest

# Run with docker run
docker run -d \
  --name startpage-dashboard \
  -p 3000:3000 \
  -v ./data:/app/data \
  -e NODE_ENV=production \
  -e NEXT_PUBLIC_APP_NAME="Start Page Dashboard" \
  --restart unless-stopped \
  twlatx/startpage-dashboard:latest
⁠Building from Source
docker-compose up -d --build
⁠View logs:
docker-compose logs -f
⁠Stop:
docker-compose down
⁠Data persistence:

The SQLite database is stored in ./data/prod.db and persisted through Docker volumes.

ā šŸ› ļø Tech Stack

ā šŸ“ License

MIT License - feel free to use this project for personal or commercial purposes.

Tag summary

Content type

Image

Digest

sha256:919b7b476…

Size

309 MB

Last updated

4 months ago

docker pull twlatx/startpage-dashboard