Enhance development workflow and deployment practices for Archipelago

- Updated the Development-Workflow documentation to clarify deployment strategy, emphasizing direct deployment to the live system for testing.
- Added detailed instructions for the deployment command, including syncing code, building frontend and backend, and restarting services.
- Improved SSH key management section to assist with authentication issues.
- Expanded the testing workflow to include steps for checking logs and syncing changes back to the ISO build.
- Updated the ISO build integration section to ensure system-level changes are captured for future builds.
- Refactored various sections for clarity and completeness, including deployment paths and system configuration files.
This commit is contained in:
Dorian
2026-02-01 13:24:03 +00:00
parent 00d1af12f0
commit 34fc06726e
28 changed files with 1248 additions and 285 deletions

View File

@@ -3,7 +3,7 @@ use std::collections::HashMap;
/// The main data model that mirrors the frontend's DataModel type.
/// This is sent via WebSocket as the initial state and updated via patches.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct DataModel {
#[serde(rename = "server-info")]
pub server_info: ServerInfo,
@@ -12,7 +12,7 @@ pub struct DataModel {
pub ui: UIData,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ServerInfo {
pub id: String,
pub version: String,
@@ -29,7 +29,7 @@ pub struct ServerInfo {
pub zram_enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StatusInfo {
pub restarting: bool,
#[serde(rename = "shutting-down")]
@@ -41,7 +41,7 @@ pub struct StatusInfo {
pub update_progress: Option<f32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct UIData {
pub name: Option<String>,
#[serde(rename = "ack-welcome")]
@@ -50,7 +50,7 @@ pub struct UIData {
pub theme: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct UIMarketplaceData {
#[serde(rename = "selected-hosts")]
pub selected_hosts: Vec<String>,
@@ -58,13 +58,13 @@ pub struct UIMarketplaceData {
pub known_hosts: HashMap<String, MarketplaceHost>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct MarketplaceHost {
pub name: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub enum PackageState {
Installing,
@@ -83,7 +83,7 @@ pub enum PackageState {
BackingUp,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PackageDataEntry {
pub state: PackageState,
#[serde(rename = "static-files")]
@@ -94,14 +94,14 @@ pub struct PackageDataEntry {
pub install_progress: Option<InstallProgress>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StaticFiles {
pub license: String,
pub instructions: String,
pub icon: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Manifest {
pub id: String,
pub title: String,
@@ -125,18 +125,18 @@ pub struct Manifest {
pub interfaces: Option<Interfaces>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Description {
pub short: String,
pub long: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct Interfaces {
pub main: Option<MainInterface>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct MainInterface {
pub ui: Option<String>,
#[serde(rename = "tor-config")]
@@ -145,7 +145,7 @@ pub struct MainInterface {
pub lan_config: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct InstalledPackageDataEntry {
#[serde(rename = "current-dependents")]
pub current_dependents: HashMap<String, CurrentDependencyInfo>,
@@ -158,13 +158,13 @@ pub struct InstalledPackageDataEntry {
pub status: ServiceStatus,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct CurrentDependencyInfo {
#[serde(rename = "health-checks")]
pub health_checks: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct InterfaceAddress {
#[serde(rename = "tor-address")]
pub tor_address: String,
@@ -172,7 +172,7 @@ pub struct InterfaceAddress {
pub lan_address: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum ServiceStatus {
Stopped,
@@ -182,7 +182,7 @@ pub enum ServiceStatus {
Restarting,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct InstallProgress {
pub size: u64,
pub downloaded: u64,