Compare commits
3 Commits
update-fla
...
hotfix/rev
| Author | SHA1 | Date | |
|---|---|---|---|
| e90ba28713 | |||
| a4e644fbbc | |||
| 9bb9eb585f |
78
modules/kubernetes.nix
Normal file
78
modules/kubernetes.nix
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.kubernetes = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Whether to enable Kubernetes services";
|
||||||
|
};
|
||||||
|
|
||||||
|
version = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "1.28.0";
|
||||||
|
description = "Kubernetes version to use";
|
||||||
|
};
|
||||||
|
|
||||||
|
clusterName = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "palatine-hill-cluster";
|
||||||
|
description = "Name of the Kubernetes cluster";
|
||||||
|
};
|
||||||
|
|
||||||
|
controlPlaneEndpoint = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "localhost:6443";
|
||||||
|
description = "Control plane endpoint";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = lib.mkOption {
|
||||||
|
type = lib.types.attrs;
|
||||||
|
default = { };
|
||||||
|
description = "Kubernetes networking configuration";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.services.kubernetes.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kubectl
|
||||||
|
kubernetes
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable containerd for Kubernetes
|
||||||
|
virtualisation.containerd.enable = true;
|
||||||
|
|
||||||
|
# Enable kubelet
|
||||||
|
services.kubelet = {
|
||||||
|
enable = true;
|
||||||
|
extraFlags = {
|
||||||
|
"pod-infra-container-image" = "registry.k8s.io/pause:3.9";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable kubeadm for cluster initialization
|
||||||
|
environment.etc."kubeadm.yaml".text = ''
|
||||||
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
|
kind: InitConfiguration
|
||||||
|
localAPIEndpoint:
|
||||||
|
advertiseAddress: 127.0.0.1
|
||||||
|
bindPort: 6443
|
||||||
|
---
|
||||||
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
clusterName: ${config.services.kubernetes.clusterName}
|
||||||
|
controlPlaneEndpoint: ${config.services.kubernetes.controlPlaneEndpoint}
|
||||||
|
networking:
|
||||||
|
serviceSubnet: 10.96.0.0/12
|
||||||
|
podSubnet: 10.244.0.0/16
|
||||||
|
dnsDomain: cluster.local
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
@@ -78,7 +77,10 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.alice.extraGroups = [ "calibre-web" ];
|
users.users = {
|
||||||
|
alice.extraGroups = [ "calibre-web" ];
|
||||||
|
};
|
||||||
|
users.groups.ollama = { };
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
@@ -86,6 +88,10 @@
|
|||||||
"KWIN_DRM_NO_DIRECT_SCANOUT" = "1";
|
"KWIN_DRM_NO_DIRECT_SCANOUT" = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#nixpkgs.config = {
|
||||||
|
# rocmSupport = true;
|
||||||
|
#};
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
defaultSopsFile = ./secrets.yaml;
|
defaultSopsFile = ./secrets.yaml;
|
||||||
#secrets = {
|
#secrets = {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
candy-icons
|
candy-icons
|
||||||
chromium
|
chromium
|
||||||
chromedriver
|
chromedriver
|
||||||
|
claude-code
|
||||||
croc
|
croc
|
||||||
deadnix
|
deadnix
|
||||||
direnv
|
direnv
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
./minio.nix
|
./minio.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
|
./ollama.nix
|
||||||
#./plex
|
#./plex
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
@@ -25,8 +26,10 @@
|
|||||||
|
|
||||||
programs.git.lfs.enable = false;
|
programs.git.lfs.enable = false;
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config = {
|
||||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
packageOverrides = pkgs: {
|
||||||
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
@@ -97,6 +100,13 @@
|
|||||||
smartd.enable = true;
|
smartd.enable = true;
|
||||||
calibre-server.enable = false;
|
calibre-server.enable = false;
|
||||||
|
|
||||||
|
# Kubernetes example configuration
|
||||||
|
# To enable Kubernetes, uncomment the following:
|
||||||
|
# kubernetes = {
|
||||||
|
# enable = true;
|
||||||
|
# clusterName = "palatine-hill-cluster";
|
||||||
|
# controlPlaneEndpoint = "localhost:6443";
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.gc.options = "--delete-older-than 150d";
|
nix.gc.options = "--delete-older-than 150d";
|
||||||
|
|||||||
53
systems/palatine-hill/ollama.nix
Normal file
53
systems/palatine-hill/ollama.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
ollama = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.ollama;
|
||||||
|
syncModels = true;
|
||||||
|
loadModels = [
|
||||||
|
"gemma3"
|
||||||
|
"deepseek-r1:latest"
|
||||||
|
"deepseek-r1:1.5b"
|
||||||
|
"qwen3"
|
||||||
|
#"qwen3-coder-next"
|
||||||
|
"qwen3-coder"
|
||||||
|
"lennyerik/zeta"
|
||||||
|
"llama3.1:8b"
|
||||||
|
"qwen2.5-coder:1.5b-base"
|
||||||
|
"nomic-embed-text:latest"
|
||||||
|
];
|
||||||
|
environmentVariables = {
|
||||||
|
FLASH_ATTENTION = "1";
|
||||||
|
OLLAMA_KV_CACHE_TYPE = "q8_0";
|
||||||
|
# Ollama memory configuration
|
||||||
|
OLLAMA_MAX_LOADED_MODELS = "2";
|
||||||
|
OLLAMA_MAX_QUEUE = "4";
|
||||||
|
OLLAMA_NUM_PARALLEL = "2";
|
||||||
|
|
||||||
|
# ROCm memory optimization
|
||||||
|
#HIP_VISIBLE_DEVICES = "0";
|
||||||
|
#ROCR_VISIBLE_DEVICES = "0";
|
||||||
|
|
||||||
|
# context length for agents
|
||||||
|
OLLAMA_CONTEXT_LENGTH = "64000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
open-webui = {
|
||||||
|
enable = true;
|
||||||
|
port = 21212;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.users.ollama = {
|
||||||
|
extraGroups = [
|
||||||
|
"render"
|
||||||
|
"video"
|
||||||
|
];
|
||||||
|
group = "ollama";
|
||||||
|
isSystemUser = true;
|
||||||
|
};
|
||||||
|
users.groups.ollama = { };
|
||||||
|
}
|
||||||
@@ -1,51 +1,123 @@
|
|||||||
{ pkgs, outputs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.emacs = {
|
programs = {
|
||||||
enable = true;
|
emacs = {
|
||||||
package = pkgs.emacs30-pgtk;
|
enable = true;
|
||||||
};
|
package = pkgs.emacs30-pgtk;
|
||||||
programs.vesktop = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
appBadge = false;
|
|
||||||
arRPC = true;
|
|
||||||
checkUpdates = false;
|
|
||||||
customTitleBar = false;
|
|
||||||
hardwareAcceleration = true;
|
|
||||||
};
|
};
|
||||||
vencord.useSystem = true;
|
vesktop = {
|
||||||
vencord.settings = {
|
enable = true;
|
||||||
autoUpdate = false;
|
settings = {
|
||||||
autoUpdateNotification = false;
|
appBadge = false;
|
||||||
notifyAboutUpdates = false;
|
arRPC = true;
|
||||||
plugins = {
|
checkUpdates = false;
|
||||||
AnonymiseFileNames.enabled = true;
|
customTitleBar = false;
|
||||||
BetterFolders.enabled = true;
|
hardwareAcceleration = true;
|
||||||
BetterGifAltText.enabled = true;
|
};
|
||||||
CallTimer.enabled = true;
|
vencord.useSystem = true;
|
||||||
ClearURLs.enabled = true;
|
vencord.settings = {
|
||||||
CopyFileContents.enabled = true;
|
autoUpdate = false;
|
||||||
CtrlEnterSend.enabled = true;
|
autoUpdateNotification = false;
|
||||||
CustomIdle = {
|
notifyAboutUpdates = false;
|
||||||
enabled = true;
|
plugins = {
|
||||||
remainInIdle = false;
|
AnonymiseFileNames.enabled = true;
|
||||||
|
BetterFolders.enabled = false;
|
||||||
|
BetterGifAltText.enabled = true;
|
||||||
|
CallTimer.enabled = true;
|
||||||
|
ClearURLs.enabled = true;
|
||||||
|
CopyFileContents.enabled = true;
|
||||||
|
CtrlEnterSend.enabled = true;
|
||||||
|
CustomIdle = {
|
||||||
|
enabled = true;
|
||||||
|
remainInIdle = false;
|
||||||
|
};
|
||||||
|
FriendsSince.enabled = true;
|
||||||
|
GameActivityToggle.enabled = true;
|
||||||
|
ImplicitRelationships.enabled = true;
|
||||||
|
MutualGroupDMs.enabled = true;
|
||||||
|
QuickMention.enabled = true;
|
||||||
|
QuickReply.enabled = true;
|
||||||
|
ReplaceGoogleSearch = {
|
||||||
|
enabled = true;
|
||||||
|
customEngineName = "DuckDuckGo";
|
||||||
|
};
|
||||||
|
ReviewDB.enabled = true;
|
||||||
|
ShowConnections.enabled = true;
|
||||||
};
|
};
|
||||||
FriendsSince.enabled = true;
|
};
|
||||||
GameActivityToggle.enabled = true;
|
};
|
||||||
ImplicitRelationships.enabled = true;
|
zed-editor = {
|
||||||
MutualGroupDMs.enabled = true;
|
enable = true;
|
||||||
QuickMention.enabled = true;
|
mutableUserSettings = false;
|
||||||
QuickReply.enabled = true;
|
extensions = [
|
||||||
ReplaceGoogleSearch = {
|
"nix"
|
||||||
enabled = true;
|
"toml"
|
||||||
customEngineName = "DuckDuckGo";
|
"rust"
|
||||||
|
"java"
|
||||||
|
"kotlin"
|
||||||
|
"git firefly"
|
||||||
|
"make"
|
||||||
|
"dockerfile"
|
||||||
|
"sql"
|
||||||
|
"latex"
|
||||||
|
"terraform"
|
||||||
|
"log"
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
colorize_brackets = true;
|
||||||
|
hard_tabs = false;
|
||||||
|
vim_mode = true;
|
||||||
|
minimap = {
|
||||||
|
show = "auto";
|
||||||
|
};
|
||||||
|
buffer_line_height = "comfortable";
|
||||||
|
auto_update = false;
|
||||||
|
autosave = "on_focus_change";
|
||||||
|
agent = {
|
||||||
|
default_model = {
|
||||||
|
provider = "ollama";
|
||||||
|
model = "qwen2.5-coder:latest";
|
||||||
|
};
|
||||||
|
favorite_models = [ ];
|
||||||
|
model_parameters = [ ];
|
||||||
|
};
|
||||||
|
telemetry = {
|
||||||
|
diagnostics = false;
|
||||||
|
metrics = false;
|
||||||
|
};
|
||||||
|
journal = {
|
||||||
|
hour_format = "hour24";
|
||||||
|
};
|
||||||
|
edit_preditions = {
|
||||||
|
provider = "open_ai_compatible_api";
|
||||||
|
open_ai_compatible_api = {
|
||||||
|
api_url = "http://localhost:11434/v1/completions";
|
||||||
|
model = "zeta:latest";
|
||||||
|
prompt_format = "infer";
|
||||||
|
max_requests = 64;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
texlab = {
|
||||||
|
build = {
|
||||||
|
onSave = true;
|
||||||
|
forwardSearchAfter = true;
|
||||||
|
};
|
||||||
|
forwardSearch = {
|
||||||
|
executable = "zathura";
|
||||||
|
args = [
|
||||||
|
"--synctex-forward"
|
||||||
|
"%l:1:%f"
|
||||||
|
"-x"
|
||||||
|
"zed %%{input}:%%{line}"
|
||||||
|
"%p"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
ReviewDB.enabled = true;
|
|
||||||
ShowConnections.enabled = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
cmake
|
cmake
|
||||||
shellcheck
|
shellcheck
|
||||||
|
|||||||
Reference in New Issue
Block a user