A modern, customizable browser start page with category-based organization, service monitoring, and an admin interface.
The easiest way to run Start Page Dashboard is using the pre-built Docker image from Docker Hub.
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
docker-compose up -d
Open http://localhost:3000ā in your browser
Access the admin panel at http://localhost:3000/adminā
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
Visit /admin to manage blocks and categories through the web interface.
When adding a block, you can enable monitoring by:
You can provide custom icon URLs when creating blocks. If no icon is provided, the dashboard will automatically fetch the website's favicon.
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
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
docker-compose up -d --build
docker-compose logs -f
docker-compose down
The SQLite database is stored in ./data/prod.db and persisted through Docker volumes.
MIT License - feel free to use this project for personal or commercial purposes.
Content type
Image
Digest
sha256:919b7b476ā¦
Size
309 MB
Last updated
4 months ago
docker pull twlatx/startpage-dashboard