diff --git a/README.md b/README.md index ac044e5..56171d1 100644 --- a/README.md +++ b/README.md @@ -1 +1,109 @@ -R \ No newline at end of file + +# Homepage with Tailscale Integration + +This project sets up a Homepage instance with Tailscale VPN integration using Docker Compose. It creates a secure, private network connection for your homepage dashboard using Tailscale, while running the Homepage application from gethomepage.dev. + +## Prerequisites + +- Docker and Docker Compose installed on your system +- A Tailscale account and auth key (get one from https://login.tailscale.com/admin/authkeys) +- Basic understanding of Docker and networking concepts + +## Project Structure +``` +your-project/ +├── docker-compose.yml +├── tailscale/ +│ ├── tailscale-data/ # Persistent Tailscale state +│ └── config/ # Tailscale configuration files +└── homepage/ + └── config/ # Homepage configuration files +``` + +## Setup Instructions + +1. **Clone the Repository** + ```bash + git clone + cd + ``` +2. Create Required Directories + ```bash + mkdir -p tailscale/tailscale-data tailscale/config homepage/config + ``` +3. Configure Tailscale + - Replace `{{YOUR_TAILSCALE_AUTHKEY}}` in the docker-compose.yml with your actual Tailscale auth key + - Optionally, update the file in `tailscale/config/serve.json` if you need specific Tailscale serve configurations + +4. Configure Homepage + - Add your Homepage configuration files to homepage/config/ + - See https://gethomepage.dev/latest/configs/ for configuration options + - The default setup allows all hosts (HOMEPAGE_ALLOWED_HOSTS: "*") + +5. Start the Services + ```bash + docker-compose up -d + ``` + +## Services + +### homepage-ts (Tailscale) + +- Runs Tailscale VPN client +- Image: tailscale/tailscale:latest +- Container name: homepage-ts +- Hostname: homepage +- Requires NET_ADMIN and SYS_MODULE capabilities +- Persists state in ./tailscale/tailscale-data +- Uses configuration from ./tailscale/config + +### homepage + +- Runs Homepage dashboard +- Image: ghcr.io/gethomepage/homepage:latest +- Container name: homepage +- Configuration stored in ./homepage/config +- Uses Tailscale's network stack (no direct port mapping) +- Depends on homepage-ts service + +## Usage + +- After starting the services your service should be available via tailnet at `https://homepage.{{YOUR_TAILNET_DOMAIN}}.ts.net` ie `https://homepage.tail12345.ts.net/` +- To manually get the Tailscale IP/hostname of your container: + ```bash + docker logs homepage-ts + ``` + Look for the Tailscale IP address in the logs. + +## Optional Features + +- Uncomment the Docker socket volume mapping in the Homepage service to enable Docker integrations: + ```yaml + - /var/run/docker.sock:/var/run/docker.sock + ``` +- Uncomment and adjust the ports mapping if you need direct access (without Tailscale): + ```yaml + ports: + - 3000:3000 + ``` +- Stopping the Services + ```bash + docker-compose down + ``` + +## Troubleshooting +- Check container logs: + ```bash + docker logs homepage-ts + docker logs homepage + ``` +- Ensure your Tailscale auth key is valid and not expired +- Verify the configuration files have proper permissions +- Make sure required directories exist before starting +## Notes +- The Homepage service uses the Tailscale service's network stack via network_mode: service:homepage-ts +- Direct port mapping is disabled by default as Tailscale handles the networking +- Services restart automatically unless explicitly stopped +- For more information: +- Tailscale documentation: https://tailscale.com/kb/ +- Homepage documentation: https://gethomepage.dev/