Skip to content

Effortlessly deploy a powerful home server in minutes! ⚡️🖥️ HomeServer is simple, fast to install, and reliable—perfect for managing your digital life with ease. Built with C# for robust performance and flexibility.

License

Notifications You must be signed in to change notification settings

nadav26740/HomeServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 HomeServer

A powerful, extensible backend for Windows process management,
automation, and monitoring — accessible via a modern TCP API.

Build backend Windows NET badge


🚀 About the Project

HomeServer is a robust backend platform enabling process management, monitoring, and automation on Windows. With an extensible TCP API, rich logging, and flexible configuration, it empowers you to remotely control and automate server workflows.


✨ Features

  • 🧑‍💻 Process Management
    Start, stop, and interact with Windows processes using friendly tags.

  • 🔌 TCP API
    Communicate securely via TCP using simple JSON messages.

  • 📚 Logging
    All server and process activity logged to file & console for easy auditing.

  • ⚙️ Configuration
    Effortless setup using config.json.

  • 🔄 Auto-Restart
    Critical processes are automatically restarted if needed.

  • 🛠️ Extensible API
    Easily add new endpoints and features via the core API handler.


🧑‍💻 Technologies Used [Windows Version]

  • .NET 8.0
  • Newtonsoft.Json (JSON serialization)
  • System.Management (Windows process management)
  • Windows Processes (required for process APIs)

⚡ How It Works

  1. Startup:

    • Loads configuration from config.json
    • Initializes logging and process manager
    • Starts TCP server (default port: 3391)
  2. Process Management:

    • Processes defined and managed by tag
    • Supports auto-start, stop, and sending input
  3. API Communication:

    • Clients send JSON requests via TCP
    • Requests routed by ServerCore and ServerCoreAPI
    • Responses include status codes and data
  4. Core Components:


🛠️ How to Compile & Run [Windows]

  1. Install .NET 8.0 SDK
    👉 Download here

  2. Clone the Repository

    git clone https://github.com/nadav26740/HomeServer.git
    cd backend/HomeServer-Backend-win
  3. Configure
    ✍️ Edit bin/Debug/net8.0/config.json for paths, logging, and port.

  4. Build

    dotnet build --configuration Release

    Or open HomeServer-Backend.sln in Visual Studio and build.

  5. Run

    dotnet run --configuration Release &

📡 Example API Usage

See API-Gateway/Tester.py for Python test client.

  • Start a process
    {"Path":"/api/process/start", "Type":"UPDATE", "Data":"Minecraft Server"}
  • Send input to a process
    {"Path":"api/process/input", "Type":"POST", "Data":"{\"ProcessTag\": \"Minecraft Server\", \"Input\": \"say hello API\"}"}
  • Stop a process
    {"Path":"/api/process/stop", "Type":"UPDATE", "Data":"Minecraft Server"}

📖 Core Documentation

See Docs/Core.md for a detailed explanation of the core system and API routing.


🌱 Future Plans

  • 🚀 More built-in process management features
  • 🛡️ Improved error handling & logging
  • 📈 Advanced process monitoring
  • 🧪 Unit tests for core components
  • 🐧 Linux support (if feasible)
  • 📦 Docker containerization for easy deployment
  • 🔌 Plugin system for extensibility
  • 📚 Comprehensive documentation and examples
  • ⚡ Frontend dashboards for monitoring and control:
    • 🖥️ Windows WPF-based
    • 🐧 Linux dashboard
    • 🌐 Web-based dashboard for cross-platform access

💡 HomeServer — Automate Anything, Run Everywhere!

About

Effortlessly deploy a powerful home server in minutes! ⚡️🖥️ HomeServer is simple, fast to install, and reliable—perfect for managing your digital life with ease. Built with C# for robust performance and flexibility.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published