Skip to content

AlgaeOS/AlgaeOS

Repository files navigation

    ___     __                     ____  _____
   /   |   / /____ _ ____ _ ___   / __ \/ ___/
  / /| |  / // __ `// __ `// _ \ / / / /\__ \ 
 / ___ | / // /_/ // /_/ //  __// /_/ /___/ / 
/_/  |_|/_/ \__, / \__,_/ \___/ \____//____/  
           /____/                             

AlgaeOS

AlgaeOS brings together modular services via Docker—designed for quick setup, scalability, and cross-platform development. This guide walks you through pulling the latest service code, initializing the stack, and tips to avoid common pitfalls. ASCII diagrams visualize the house-of-cards structure powered by your orchestration magic.


⚡ What's Inside?

  • Cross-Platform Initialization Scripts: Powershell (init.ps1), Bash (init.sh), and Windows Batch (init.cmd)
  • Service-Oriented Docker Compose: MQTT via Mosquitto, dashboards, control systems, and simulation
  • Seamless Git Integration: Pulls modular service repos on demand

1. Visual Overview

+--------------------------------------------------+
|                    AlgaeOS                       |
+--------------------------------------------------+
    |          |         |           |
    |          |         |           |
    v          v         v           v
Mosquitto   Control  Dashboard  Virtual PBR Sim
 (MQTT)     System   (Frontend) (Simulator)
   |           |         |           |
   +-----------+---------+-----------+
                    |
     Docker Network (Bridge): algaeos

All services talk through a shared Docker bridge network.

2. Quick Start

Prerequisites

  • Docker and Git installed and in your system PATH.
  • One of: Bash (Linux/macOS), PowerShell (Windows), CMD (Windows)

On Linux/macOS:

chmod +x init.sh  # important
./init.sh

On Windows:

PowerShell:

.\init.ps1

CMD:

init.cmd

3. What Does Initialization Do?

  • Checks for Docker and Git. Fails early if missing.
  • Clones the dockerize branch from the following repos
  • Clear error messaging on failures—no cryptic crashes.
  • Next steps printed out to run: docker compose up --build

Tip: Custom steps are always welcome—scripts are simple Bash/PowerShell so adapt as needed.

4. Spin Up the Stack

Once all repos are cloned, in your project root:

docker compose up --build

All services are built and launched, ready to interact through the algaeos network.

5. Service Details

  • Mosquitto: MQTT broker.
    • Config file at ./volumes/mosquitto/config/mosquitto.conf
    • Default configuration provided. (You can customize before startup.)
  • Dashboard: Web frontend accessible at http://localhost:3000/
  • Control System: Backend, connects to MQTT
  • Virtual PBR Sim: Simulator, connects to MQTT

Each service is fully containerized but can be modified by editing pulled code under services/.

6. Customization Highlights

  • Edit mosquitto.conf for broker settings before launch.
  • Add environment variables to docker-compose.yml to tweak service behavior.
  • Mount additional volumes for persistent data.

7. Edge Case Handling

  • Missing Docker/Git: Clear errors and exit—no partial setup.
  • Failed Clone: Stops immediately, so you don't build with half-baked code.
  • Port Conflicts: Make sure nothing else is using ports 1883, 3000, 8000, or 5000 before startup.

8. ASCII Troubleshooting Map

+--------------------+
|  Something broke?  |
+--------------------+
          |
          v
+---------------------+
| Docker & Git        |
| installed?          |
+---------------------+
          |
   +------+------+
   |             |
   v             v
  Yes           No
   |             |
   |       +-----+-----+
   |       |           |
   |       v           v
   |  +---------+ +------------+
   |  | Fix PATH| | Install    |
   |  |         | | tool(s)    |
   |  +---------+ +------------+
   |             |
   +------+------+
          |
          v
+-----------------------+
| Any errors during     |
| cloning?             |
+-----------------------+
          |
   +------+------+
   |             |
   v             v
  Yes           No
   |             |
   |       +-----+-----+
   |       |           |
   v       v           v
+------+ +-----------+ +---------------------+
|Check | | Clean     | | Run                 |
|intern| | target dir| | `docker compose up  |
|et    | |           | | --build`            |
+------+ +-----------+ +---------------------+
                           |
                     +------+------+
                     |             |
                     v             v
                  Success?        No
                     |             |
                     |       +-----+-----+
                     |       |           |
                     v       v           v
                +-------+ +--------+ +---------+
                | All   | | Re-read| | Check   |
                | good! | | logs   | | ports/  |
                +-------+ |        | | configs |
                          +--------+ +---------+

9. Future Enhancements Plan

  • Add Centralized log handler service for efficient monitoring and debugging.

10. Final Tips

  • Clone fresh for each experiment—branches may be updated.
  • Want new services? Add to repos array in init scripts and to docker-compose.yml.
  • Remember, customize mosquitto.conf in ./volumes/mosquitto/config/ as needed.

License

This project is licensed under the PolyForm Noncommercial License 1.0.0.
You may use, study, and modify the code for personal, educational, or noncommercial purposes.
Full license text: PolyForm Noncommercial License 1.0.0

NOTICE

AlgaeOS is free for individuals, students, and researchers.
Any use by companies, organizations, or profit-making entities requires a commercial license.

Commercial Licensing

Commercial use of AlgaeOS is not permitted under the open license.
If you wish to use AlgaeOS in a commercial product, SaaS offering, or for any profit-generating activity,
you must obtain a separate commercial license.

👉 For commercial licensing inquiries, contact via the contact section on the website
or by email at koushik.ghosh.cse@hotmail.com

You're Good To Go!

Run, break, fix, repeat. Each piece is swappable, debuggable, and primed for your next algae-powered insight.

END OF README

About

AlgaeOS, a full-stack PBR OS control-simulation automation framework

Topics

Resources

License

Stars

Watchers

Forks

Contributors