Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions MANIFESTO.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ We treat hardware as a first-class citizen.
* **Databases:** Buffer pools are sized dynamically.

This is the new standard for home media server orchestration.

---
*Signed, The Architecture Team (v1.0.0 Release)*
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Server Manager - Next-Gen Media Server Orchestrator 🚀

![Server Manager Banner](https://img.shields.io/badge/Status-Tested-brightgreen) ![Rust](https://img.shields.io/badge/Built%20With-Rust-orange) ![Docker](https://img.shields.io/badge/Powered%20By-Docker-blue)
![Server Manager Banner](https://img.shields.io/badge/Status-Tested-brightgreen) ![Version](https://img.shields.io/badge/Version-1.0.0-blue) ![Rust](https://img.shields.io/badge/Built%20With-Rust-orange) ![Docker](https://img.shields.io/badge/Powered%20By-Docker-blue)

**Server Manager** is a powerful and intelligent tool written in Rust to deploy, manage, and optimize a complete personal media and cloud server stack. It detects your hardware and automatically configures 24 Docker services for optimal performance.

Expand Down
2 changes: 1 addition & 1 deletion server_manager/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "server_manager"
version = "0.1.0"
version = "1.0.0"
edition = "2021"

[dependencies]
Expand Down
20 changes: 2 additions & 18 deletions server_manager/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,30 +1,14 @@
pub mod core;
pub mod services;

// Re-export build_compose_structure from main (we need to move it or expose it)
// Since main.rs is a binary, we can't easily import from it in integration tests unless we use a lib.rs structure.
// The common pattern is to have the logic in lib.rs and main.rs just calls it.
// I will move build_compose_structure to lib.rs or make main.rs just a thin wrapper.

// Wait, I can't import functions from main.rs into integration tests directly if it's not a lib.
// I need to refactor slightly.
// Move `build_compose_structure` to a new module `src/orchestrator.rs` or keep it in `lib.rs`.

// Let's check where `main.rs` is. It is in `src/main.rs`.
// I should create `src/lib.rs` that exposes the modules and the orchestrator logic.

// Currently `main.rs` has `mod core; mod services;`.
// I will move these to `lib.rs` and make `main.rs` use the lib.

pub use crate::core::hardware;
pub use crate::core::secrets;

use anyhow::Result;
use std::collections::HashMap;

// I will duplicate the logic or move it. Moving is better.
// I'll put build_compose_structure here.

/// Generates the docker-compose.yml structure based on hardware profile and secrets.
/// This acts as the "Compiler" for the infrastructure.
pub fn build_compose_structure(hw: &hardware::HardwareInfo, secrets: &secrets::Secrets) -> Result<serde_yaml::Mapping> {
let services = services::get_all_services();

Expand Down
Loading