2025-05-30 12:43:55 -06:00

200 lines
5.4 KiB
Markdown

# Homepage
Modern dashboard for accessing all your self-hosted services.
## Overview
Homepage is a modern, fully static, fast, secure fully configurable application dashboard with integrations for over 100 services. It provides a beautiful and customizable interface to access all your Changemaker Lite services from a single location.
## Features
- **Service Dashboard**: Central hub for all your applications
- **Docker Integration**: Automatic service discovery and monitoring
- **Customizable Layout**: Flexible grid-based layout system
- **Service Widgets**: Live status and metrics for services
- **Quick Search**: Fast navigation with built-in search
- **Bookmarks**: Organize frequently used links
- **Dark/Light Themes**: Multiple color schemes available
- **Responsive Design**: Works on desktop and mobile devices
## Access
- **Default Port**: 3010
- **URL**: `http://localhost:3010`
- **Configuration**: YAML-based configuration files
## Configuration
### Environment Variables
- `HOMEPAGE_PORT`: External port mapping (default: 3010)
- `PUID`: User ID for file permissions (default: 1000)
- `PGID`: Group ID for file permissions (default: 1000)
- `TZ`: Timezone setting (default: Etc/UTC)
- `HOMEPAGE_ALLOWED_HOSTS`: Allowed hosts for the dashboard
### Configuration Files
Homepage uses YAML configuration files located in `./configs/homepage/`:
- `settings.yaml`: Global settings and theme configuration
- `services.yaml`: Service definitions and widgets
- `bookmarks.yaml`: Bookmark categories and links
- `widgets.yaml`: Dashboard widgets configuration
- `docker.yaml`: Docker integration settings
### Volumes
- `./configs/homepage:/app/config`: Configuration files
- `./assets/icons:/app/public/icons`: Custom service icons
- `./assets/images:/app/public/images`: Background images and assets
- `/var/run/docker.sock:/var/run/docker.sock`: Docker socket for container monitoring
## Changemaker Lite Services
Homepage is pre-configured with all Changemaker Lite services:
### Essential Tools
- **Code Server** (Port 8888): VS Code in the browser
- **Listmonk** (Port 9000): Newsletter & mailing list manager
- **NocoDB** (Port 8090): No-code database platform
### Content & Documentation
- **MkDocs** (Port 4000): Live documentation server
- **Static Site** (Port 4001): Built documentation hosting
### Automation & Data
- **n8n** (Port 5678): Workflow automation platform
- **PostgreSQL** (Port 5432): Database backends
## Customization
### Adding Custom Services
Edit `configs/homepage/services.yaml` to add new services:
```yaml
- Custom Category:
- My Service:
href: http://localhost:8080
description: Custom service description
icon: mdi-application
widget:
type: ping
url: http://localhost:8080
```
### Custom Icons
Add custom icons to `./assets/icons/` directory and reference them in services.yaml:
```yaml
icon: /icons/my-custom-icon.png
```
### Themes and Styling
Modify `configs/homepage/settings.yaml` to customize appearance:
```yaml
theme: dark # or light
color: purple # slate, gray, zinc, neutral, stone, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
```
### Widgets
Enable live monitoring widgets in `configs/homepage/services.yaml`:
```yaml
- Service Name:
widget:
type: docker
container: container-name
server: my-docker
```
## Service Monitoring
Homepage can display real-time status information for your services:
- **Docker Integration**: Container status and resource usage
- **HTTP Ping**: Service availability monitoring
- **Custom APIs**: Integration with service-specific APIs
## Docker Integration
Homepage monitors Docker containers automatically when configured:
1. Ensure Docker socket is mounted (`/var/run/docker.sock`)
2. Configure container mappings in `docker.yaml`
3. Add widget configurations to `services.yaml`
## Security Considerations
- Homepage runs with limited privileges
- Configuration files should have appropriate permissions
- Consider network isolation for production deployments
- Use HTTPS for external access
- Regularly update the Homepage image
## Troubleshooting
### Common Issues
**Configuration not loading**: Check YAML syntax in configuration files
```bash
docker logs homepage-changemaker
```
**Icons not displaying**: Verify icon paths and file permissions
```bash
ls -la ./assets/icons/
```
**Services not reachable**: Verify network connectivity between containers
```bash
docker exec homepage-changemaker ping service-name
```
**Widget data not updating**: Check Docker socket permissions and container access
```bash
docker exec homepage-changemaker ls -la /var/run/docker.sock
```
## Configuration Examples
### Basic Service Widget
```yaml
- Code Server:
href: http://localhost:8888
description: VS Code in the browser
icon: code-server
widget:
type: docker
container: code-server-changemaker
```
### Custom Dashboard Layout
```yaml
# settings.yaml
layout:
style: columns
columns: 3
# Responsive breakpoints
responsive:
mobile: 1
tablet: 2
desktop: 3
```
## Official Documentation
For comprehensive configuration guides and advanced features:
- [Homepage Documentation](https://gethomepage.dev/)
- [GitHub Repository](https://github.com/gethomepage/homepage)
- [Configuration Examples](https://gethomepage.dev/configs/)
- [Widget Integrations](https://gethomepage.dev/widgets/)