update + ollama

This commit is contained in:
JMARyA 2024-12-29 10:01:54 +01:00
parent b3e38cde60
commit 16a965d56c
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
4 changed files with 40 additions and 0 deletions

View file

@ -13,6 +13,14 @@ pub struct InstallConfig {
pub user: Vec<UserConfig>, pub user: Vec<UserConfig>,
/// SSH Configuration /// SSH Configuration
pub ssh: Option<SSHConfig>, pub ssh: Option<SSHConfig>,
/// Ollama AI Config
pub ai: Option<OllamaConfig>
}
#[derive(Debug, Deserialize)]
pub struct OllamaConfig {
pub models: Option<Vec<String>>,
pub gpu: bool
} }
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]

View file

@ -2,6 +2,8 @@ use crate::{config::DriveConfig, run_command};
use super::str_vec; use super::str_vec;
// TODO : Add support for using entire block device
pub fn format_drives(conf: &DriveConfig, encrypted: bool) { pub fn format_drives(conf: &DriveConfig, encrypted: bool) {
// EFI (BOOT) // EFI (BOOT)
run_command( run_command(

View file

@ -10,6 +10,7 @@ use boot::setup_bootloader;
use drives::{format_drives, mount_drives}; use drives::{format_drives, mount_drives};
use first_boot::{first_boot_values, genfstab}; use first_boot::{first_boot_values, genfstab};
use kernel::setup_mkinitcpio; use kernel::setup_mkinitcpio;
use ollama::setup_ollama;
use security::{setup_secure_boot, setup_tpm_unlock}; use security::{setup_secure_boot, setup_tpm_unlock};
use ssh::setup_ssh; use ssh::setup_ssh;
use user::setup_users; use user::setup_users;
@ -24,6 +25,7 @@ pub mod security;
pub mod ssh; pub mod ssh;
pub mod user; pub mod user;
pub mod zram; pub mod zram;
pub mod ollama;
use crate::{ use crate::{
config::InstallConfig, config::InstallConfig,
@ -118,6 +120,10 @@ pub fn install(conf: InstallConfig) {
// TODO : Enable docker // TODO : Enable docker
} }
if let Some(ai) = conf.ai {
setup_ollama(&ai);
}
setup_zram(); setup_zram();
setup_mkinitcpio(&conf.drive); setup_mkinitcpio(&conf.drive);
setup_secure_boot(); setup_secure_boot();

24
src/install/ollama.rs Normal file
View file

@ -0,0 +1,24 @@
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"]);
} else {
install_pkgs(&["ollama"]);
}
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
}
}