Skip to content

flemk/homelab-operator

Repository files navigation

This project superseeds flemk/server-dashboard

This project uses a modified MIT non-commercial license. Details in LICENSE.md and at the bottom of this document.

Homelab-Operator Icon

Homelab Operator

Homelab Operator displays your homelab infrastructure and provides actions such as wake-on-lan and shutdown. It offers a function to auto scan your network and discover services running on it. Homelab Operator can also act as routing and can forward (proxy-pass) requests to your services based on ingress rules You can enable auto-wake where this tool wakes your servers based on usage heuristic (tbd) or create schedules to wake/shutdown your server (which are triggered by a cron job +/-5min).

This tool is still in development.

Dashboard

Installation

Docker Compose

See docker-compose.yml or docker-compose-build-local.yml and the .env file.

The easiest way to run this application is by using docker compose. A sample configuration could look like:

services:
  web:
    image: ghcr.io/flemk/homelab-operator:latest
    environment:
      - HOST=${HOST}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_HOST=${POSTGRES_HOST}
      - POSTGRES_PORT=${POSTGRES_PORT}
      - ALLOWED_HOST=${ALLOWED_HOST}
      - CSRF_TRUSTED_ORIGIN=${CSRF_TRUSTED_ORIGIN}
      - BROADCAST_ADDRESS=${BROADCAST_ADDRESS}
      - TIME_ZONE=${TIME_ZONE}
      - API_KEY=${API_KEY}
      - SUPERUSER_USERNAME=${SUPERUSER_USERNAME}
      - SUPERUSER_EMAIL=${SUPERUSER_EMAIL}
      - SUPERUSER_PASSWORD=${SUPERUSER_PASSWORD}
    ports:
      - "${WEB_PORT}:80"
      - "${WEB_SSL_PORT}:443"
    #volumes:
    #  - ./crt:/app/crt  # Use your own certificates

  db:
    image: postgres:14
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - ./db-data:/var/lib/postgresql/data

For WOL to work you need to have a route to the target machine(s). You may need to add the docker container to a macvlan network:

docker network create \
  -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 \
  macvlan_net
docker network connect macvlan_net <container>

You also may need to adjust the BROADCAST_ADDRESS=255.255.255.255 environment variable.

License

This project is licensed under a modified MIT non-commercial License:

  • You may use, copy, modify, and distribute this software for personal and academic purposes.
  • Commercial use is prohibited without explicit written permission.

See LICENSE.md for full details. Commercial licensing available upon request.

About

Visualize your Homelab setup. Provides helpful utilites for WOL and Shutting down your machines.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •