200 lines
5.4 KiB
Markdown
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/)
|