Skip to content

ponkila/HomestakerOS

Repository files navigation

🏠📈 HomestakerOS

HomestakerOS is a web UI that creates a custom Linux OS for Ethereum homestaking. It aims to democratize homestaking by simplifying the process of creating and maintaining servers in home environments.

Check out the live demo at https://demo.homestakeros.com

📋 Overview

The wizard produces Linux disk images based on NixOS. NixOS allows configurations to be public, deterministic, and self-upgrading. You can configure and build your host with a simple form and push of a button, without requiring extensive knowledge of the Nix language. The resulting images are deployed by loading the entire operating system into RAM. This makes it possible to deploy the OS in various ways, such as netbooting, or even booting by double-clicking a kernel execution script. If you want to return to your previous distribution, just restart your computer!

It also offers a dashboard where you can inspect and manage the entire infrastructure from a single point. Information is presented in an intuitive way, with automatically generated graphs and diagrams, representing the entire cluster of machines and real-time data about the services they manage.

🛠️ Usage

  1. Install Nix nixos.org

  2. Clone this Repository

    git clone https://github.com/ponkila/HomestakerOS && cd HomestakerOS
    
  3. Set Up a Development Environment

    • With Nix: nix develop . --impure
    • With direnv: direnv allow
  4. Start the Web UI

    server
    
  5. Open a Command Runner

    tail -f pipe | sh
    

    The frontend runs its commands through this, leave it open for functionality.

  6. Check it out

    Go to http://localhost:8081 to start using the Web UI.

🌟 Inspiration

This project was inspired by the challenges encountered while managing our existing Ethereum infrastructure. The lack of knowledge about the setup and configuration of other maintainers' nodes within the same infrastructure leads to wasted time, effort, and downtime. The declarative nature of NixOS configurations, combined with the ephemeral approach, significantly enhances management and collaboration among team maintainers. It ensures that configurations are centralized and real-time information about the whole infrastructure is easily accessible by all participants.

You can see our running, real-time infrastructure right in homestaking-infra.

🧩 Clients and Addons

In the web user interface, you will configure your node under the 'NixOS config' tab. You can select the Ethereum client(s) and any additional addons. The packages for these mainly come from ethereum.nix and are frequently updated by the collaborators who use them. We look forward to adding more components on-demand and preferably upstreaming them if we package them ourselves.

🔍 Looking Ahead

For those interested in the details, let's dive into the documentation from here.

💼 Backers and Support

HomestakerOS is still a work in progress, and while it has previously received support from a grant by the Ethereum Foundation and ssv.network, we are actively seeking additional funding and support to continue development. If you're interested in contributing or funding this project, please reach out!