matthias b8adf19ac7
Build Docker Container using Multistage Build / build (push) Successful in 4m52s
docker-compose.yml aktualisiert
2026-02-18 14:56:20 +00:00
2026-02-18 01:20:05 +01:00

Server Management Tool

This is a simple Go application designed to manage your servers, providing functionalities to list, wake up (Wake-on-LAN), shut down, and reboot them. It offers both a command-line interface (CLI) and a web-based interface for convenient management.

Features

  • Server Dashboard: A responsive table view displaying all servers with real-time status, IP, and MAC addresses.
  • Web Terminal: Integrated xterm.js terminal for direct SSH access to your servers from the browser.
  • Manage Power:
    • Wake-on-LAN: Send magic packets to wake up offline servers.
    • Shutdown/Reboot: Gracefully restart or power off servers via SSH.
  • Status Monitoring: Reliable active health checks (ICMP ping) compatible with macOS and Linux.
  • Server Management: Add, edit, or remove servers directly from the UI.
  • MAC Address Lookup: Automatically discover MAC addresses for local servers.

Prerequisites

Getting Started (Local)

  1. Clone the repository:

    git clone git@git.hnrx.net:hnrx/manage-servers.git
    cd manage-servers
    
  2. Run the application:

    go run . serve
    

    The application will automatically create a configuration file (servers.yaml used by Viper) if one doesn't exist. Access the web interface at http://localhost:8080.

Getting Started (Docker)

The project uses standard Docker Hub images (golang:latest and alpine:latest).

  1. Build the image:

    docker build -t manage-servers:latest .
    
  2. Run the container:

    For Wake-on-LAN to broadcast correctly, the container must run in host networking mode:

    docker run -d \
      --name manage-servers \
      --network host \
       manage-servers:latest
    

    Note: Port mapping (-p 8080:8080) is not required when using --network host as the container shares the host's networking stack.

Configuration

Servers can be managed entirely through the web UI ("Register Server" button). Under the hood, the application persists configuration to config.yaml or servers.json depending on the environment.

Required Fields for Full Functionality

  • Wake-on-LAN: Requires valid MAC Address.
  • Shutdown/Reboot: Requires SSH User and SSH Password.
  • Terminal: Requires SSH User and SSH Password.
S
Description
manage-servers ist ein kleines Tool zum starten, stoppen und rebooten physikalischer Server im Homelab. Es ermöglicht das Starten via WOL für Server, die keine anderen Möglichkeiten bieten.
Readme 165 KiB
v0.1.4 Latest
2026-02-18 14:06:41 +00:00
Languages
HTML 54.1%
Go 44.4%
Dockerfile 1.5%