From db1acbbd3ce8602769e9489cd0dd33caf664a60a Mon Sep 17 00:00:00 2001 From: JMARyA Date: Sun, 29 Dec 2024 10:26:04 +0100 Subject: [PATCH] navos --- .woodpecker/build.yml | 1 - navos.gpg | 13 +++++++++++++ src/config.rs | 4 ++-- src/install/mod.rs | 6 +++++- src/install/navos.rs | 45 +++++++++++++++++++++++++++++++++++++++++++ src/install/ollama.rs | 21 +++++++++++--------- 6 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 navos.gpg create mode 100644 src/install/navos.rs diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index c74ba93..f75bea0 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -12,4 +12,3 @@ steps: from_secret: pacco_token KEY: from_secret: navos_key - diff --git a/navos.gpg b/navos.gpg new file mode 100644 index 0000000..4861a16 --- /dev/null +++ b/navos.gpg @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEZ25LdhYJKwYBBAHaRw8BAQdAKfDibdpsmNUlEqHZeBcrijo0e19AE/UZm9TO +KBDI4BW0F25hdk9TIDxuYXZvc0BoeWRyYXIuZGU+iJkEExYKAEEWIQR3jZ1+W2rD +diu1VB/uRG7HScSuAAUCZ25LdgIbAwUJC0jDugULCQgHAgIiAgYVCgkICwIEFgID +AQIeBwIXgAAKCRDuRG7HScSuAD/OAQDCf8wSe29h+HsscbGj2jarJxmEZwGYqG1h +S73gM+QXXgEAiIj71hakOq8z5AmBjFGN6L0LsVje7lWu97nld/yG7A24OARnbkt2 +EgorBgEEAZdVAQUBAQdAxJImv/loUr0URHbRxFA142ls8J+zni193A7Lj3GPuWUD +AQgHiH4EGBYKACYWIQR3jZ1+W2rDdiu1VB/uRG7HScSuAAUCZ25LdgIbDAUJC0jD +ugAKCRDuRG7HScSuAPUeAQDzQC5VARZj1/1mnciKjZFqvjYTkbdHK9W8M8gWjB5d +uQD/Q/hjYHBZYOEPW5Ta7XxVvYdahG/vQ/z+Xsw1naK1Bw0= +=WT5+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/config.rs b/src/config.rs index 4cb1c80..335bfcd 100644 --- a/src/config.rs +++ b/src/config.rs @@ -14,13 +14,13 @@ pub struct InstallConfig { /// SSH Configuration pub ssh: Option, /// Ollama AI Config - pub ai: Option + pub ai: Option, } #[derive(Debug, Deserialize)] pub struct OllamaConfig { pub models: Option>, - pub gpu: bool + pub gpu: bool, } #[derive(Debug, Deserialize)] diff --git a/src/install/mod.rs b/src/install/mod.rs index 5f3dd4e..0ef3436 100644 --- a/src/install/mod.rs +++ b/src/install/mod.rs @@ -10,6 +10,7 @@ use boot::setup_bootloader; use drives::{format_drives, mount_drives}; use first_boot::{first_boot_values, genfstab}; use kernel::setup_mkinitcpio; +use navos::setup_navos; use ollama::setup_ollama; use security::{setup_secure_boot, setup_tpm_unlock}; use ssh::setup_ssh; @@ -21,11 +22,12 @@ pub mod boot; pub mod drives; pub mod first_boot; pub mod kernel; +pub mod navos; +pub mod ollama; pub mod security; pub mod ssh; pub mod user; pub mod zram; -pub mod ollama; use crate::{ config::InstallConfig, @@ -96,6 +98,7 @@ pub fn install(conf: InstallConfig) { match conf.general.mode { crate::config::InstallMode::Base => {} crate::config::InstallMode::Desktop => { + setup_navos(); install_pkgs(&pkg::DESKTOP_PKG); print_status("Enable SDDM"); std::os::unix::fs::symlink( @@ -105,6 +108,7 @@ pub fn install(conf: InstallConfig) { .unwrap(); } crate::config::InstallMode::Server => { + setup_navos(); install_pkgs(&pkg::SERVER_PKG); } crate::config::InstallMode::Kiosk => { diff --git a/src/install/navos.rs b/src/install/navos.rs new file mode 100644 index 0000000..2ea0b10 --- /dev/null +++ b/src/install/navos.rs @@ -0,0 +1,45 @@ +use crate::{print_status, run_command}; + +use super::str_vec; + +pub fn setup_navos() { + // pacman.conf + print_status("Copying pacman.conf"); + std::fs::copy("/etc/pacman.conf", "/mnt/etc/pacman.conf").unwrap(); + + // import keys + print_status("Importing pkg keys"); + std::fs::write( + "/mnt/usr/share/pacman/keyrings/navos.gpg", + include_str!("../../navos.gpg"), + ) + .unwrap(); + + run_command( + &str_vec(vec![ + "arch-chroot", + "/mnt", + "pacman-key", + "--add", + "/usr/share/pacman/keyrings/navos.gpg", + ]), + None, + false, + ); + + run_command( + &str_vec(vec![ + "arch-chroot", + "/mnt", + "pacman-key", + "--lsign-key", + "778D9D7E5B6AC3762BB5541FEE446EC749C4AE00", + ]), + None, + false, + ); + + // remote os-release + print_status("Removing os-release"); + std::fs::remove_file("/mnt/etc/os-release").unwrap(); +} diff --git a/src/install/ollama.rs b/src/install/ollama.rs index 389ed49..75c79bc 100644 --- a/src/install/ollama.rs +++ b/src/install/ollama.rs @@ -2,7 +2,6 @@ use crate::{config::OllamaConfig, pkg::install_pkgs, run_command}; use super::str_vec; - pub fn setup_ollama(conf: &OllamaConfig) { if conf.gpu { install_pkgs(&["ollama-cuda"]); @@ -10,15 +9,19 @@ pub fn setup_ollama(conf: &OllamaConfig) { install_pkgs(&["ollama"]); } - run_command(&str_vec(vec![ - "arch-chroot", - "/mnt", - "systemctl", - "enable", - "ollama.service" - ]), None, false); + run_command( + &str_vec(vec![ + "arch-chroot", + "/mnt", + "systemctl", + "enable", + "ollama.service", + ]), + None, + false, + ); for model in conf.models.clone().unwrap_or_default() { // TODO : Pull models } -} \ No newline at end of file +}