diff --git a/backend/src/init.rs b/backend/src/init.rs index 994a47c0a..abeb0877f 100644 --- a/backend/src/init.rs +++ b/backend/src/init.rs @@ -11,6 +11,7 @@ use crate::context::rpc::RpcContextConfig; use crate::db::model::ServerStatus; use crate::install::PKG_DOCKER_DIR; use crate::util::Invoke; +use crate::version::VersionT; use crate::Error; pub const SYSTEM_REBUILD_PATH: &str = "/embassy-os/system-rebuild"; @@ -182,8 +183,19 @@ pub struct InitResult { } pub async fn init(cfg: &RpcContextConfig) -> Result { - let should_rebuild = tokio::fs::metadata(SYSTEM_REBUILD_PATH).await.is_ok(); let secret_store = cfg.secret_store().await?; + let db = cfg.db(&secret_store).await?; + let mut handle = db.handle(); + crate::db::DatabaseModel::new() + .server_info() + .lock(&mut handle, LockType::Write) + .await?; + let receipts = InitReceipts::new(&mut handle).await?; + + let should_rebuild = tokio::fs::metadata(SYSTEM_REBUILD_PATH).await.is_ok() + || &*receipts.server_version.get(&mut handle).await? + < &crate::version::Current::new().semver(); + let log_dir = cfg.datadir().join("main/logs"); if tokio::fs::metadata(&log_dir).await.is_err() { tokio::fs::create_dir_all(&log_dir).await?; @@ -276,15 +288,6 @@ pub async fn init(cfg: &RpcContextConfig) -> Result { crate::ssh::sync_keys_from_db(&secret_store, "/home/start9/.ssh/authorized_keys").await?; tracing::info!("Synced SSH Keys"); - let db = cfg.db(&secret_store).await?; - - let mut handle = db.handle(); - crate::db::DatabaseModel::new() - .server_info() - .lock(&mut handle, LockType::Write) - .await?; - - let receipts = InitReceipts::new(&mut handle).await?; crate::net::wifi::synchronize_wpa_supplicant_conf( &cfg.datadir().join("main"), diff --git a/backend/src/version/v0_3_2.rs b/backend/src/version/v0_3_2.rs index 172413943..4f47135a3 100644 --- a/backend/src/version/v0_3_2.rs +++ b/backend/src/version/v0_3_2.rs @@ -1,5 +1,3 @@ -use std::collections::HashMap; - use emver::VersionRange; use crate::hostname::{generate_id, get_hostname, sync_hostname}; @@ -47,29 +45,6 @@ impl VersionT for Version { } crate::db::DatabaseModel::new().ui().put(db, &ui).await?; - let docker = bollard::Docker::connect_with_unix_defaults()?; - docker.remove_network("start9").await?; - docker - .create_network(bollard::network::CreateNetworkOptions { - name: "start9", - driver: "bridge", - ipam: bollard::models::Ipam { - config: Some(vec![bollard::models::IpamConfig { - subnet: Some("172.18.0.1/24".into()), - ..Default::default() - }]), - ..Default::default() - }, - options: { - let mut m = HashMap::new(); - m.insert("com.docker.network.bridge.name", "br-start9"); - m - }, - ..Default::default() - }) - .await?; - crate::install::load_images("/var/lib/embassy/system-images").await?; - Ok(()) } async fn down(&self, db: &mut Db) -> Result<(), Error> {