1 Commits

Author SHA1 Message Date
Claude a5a6297be8 ci: test status check registration 2026-04-17 20:02:03 +00:00
4 changed files with 11 additions and 177 deletions
+2 -10
View File
@@ -7,7 +7,6 @@
./desktop.nix ./desktop.nix
./nvidia.nix ./nvidia.nix
./shell.nix ./shell.nix
# ./yami-dev-stack.nix # uncomment to enable Yami dev stack, then set services.yami-dev-stack below
]; ];
nix = { nix = {
@@ -77,16 +76,10 @@
users.users.chexit = { users.users.chexit = {
isNormalUser = true; isNormalUser = true;
description = "chexit"; description = "chexit";
shell = pkgs.fish; shell = pkgs.zsh;
extraGroups = [ "networkmanager" "wheel" "docker" ]; extraGroups = [ "networkmanager" "wheel" "docker" ];
}; };
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
polkitPolicyOwners = [ "chexit" ];
};
programs.throne = { programs.throne = {
enable = true; enable = true;
tunMode.enable = true; tunMode.enable = true;
@@ -101,8 +94,7 @@
programs.gamemode.enable = true; programs.gamemode.enable = true;
services.tailscale.enable = true; services.tailscale.enable = true;
# Docker is now managed by yami-dev-stack.nix when that module is enabled. virtualisation.docker.enable = true;
# services.yami-dev-stack = { enable = true; user = "chexit"; };
system.stateVersion = "25.11"; system.stateVersion = "25.11";
} }
+8 -7
View File
@@ -1,21 +1,22 @@
{ ... }: { pkgs, ... }:
{ {
home.username = "chexit"; home.username = "chexit";
home.homeDirectory = "/home/chexit"; home.homeDirectory = "/home/chexit";
home.stateVersion = "25.11"; home.stateVersion = "25.11";
programs.fish = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
initContent = ''
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
'';
shellAliases = { shellAliases = {
rebuild = "sudo nixos-rebuild switch --flake ~/nixos-config#chexit"; rebuild = "sudo nixos-rebuild switch --flake ~/nixos-config#chexit";
}; };
}; };
programs.starship = {
enable = true;
enableFishIntegration = true;
};
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }
+1 -1
View File
@@ -1,5 +1,5 @@
{ ... }: { ... }:
{ {
programs.fish.enable = true; programs.zsh.enable = true;
} }
-159
View File
@@ -1,159 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.yami-dev-stack;
in
{
options.services.yami-dev-stack = {
enable = mkEnableOption "Yami development stack (gitea, postgres, docker, runner)";
user = mkOption {
type = types.str;
description = "User that will own runner token and be added to docker group";
};
};
config = mkIf cfg.enable {
# ── Systemd target ─────────────────────────────────────────────────────────
# Manual-only: nothing in wantedBy, so it never starts on boot.
systemd.targets.yami-dev = {
description = "Yami development stack (gitea, postgres, docker, runner)";
wantedBy = [ ];
};
# ── PostgreSQL 16 ──────────────────────────────────────────────────────────
services.postgresql = {
enable = true;
package = pkgs.postgresql_16;
ensureDatabases = [ "gitea" ];
ensureUsers = [
{
name = "gitea";
ensureDBOwnership = true;
}
];
};
# Pull postgres under yami-dev.target; stop it when target stops.
systemd.services.postgresql = {
wantedBy = mkForce [ "yami-dev.target" ];
partOf = [ "yami-dev.target" ];
};
# ── Gitea ──────────────────────────────────────────────────────────────────
services.gitea = {
enable = true;
appName = "Yami Git";
database = {
type = "postgres";
socket = "/run/postgresql";
name = "gitea";
user = "gitea";
};
settings = {
server = {
DOMAIN = "localhost";
ROOT_URL = "http://localhost:3000/";
HTTP_ADDR = "0.0.0.0";
HTTP_PORT = 3000;
SSH_PORT = 2222;
START_SSH_SERVER = true;
LFS_START_SERVER = true;
};
service = {
DISABLE_REGISTRATION = true;
DEFAULT_KEEP_EMAIL_PRIVATE = true;
};
repository = {
DEFAULT_BRANCH = "main";
ENABLE_PUSH_CREATE_USER = true;
ENABLE_PUSH_CREATE_ORG = true;
};
actions = {
ENABLED = true;
DEFAULT_ACTIONS_URL = "github";
LOG_RETENTION_DAYS = 14;
ARTIFACT_RETENTION_DAYS = 30;
};
packages = {
ENABLED = true;
};
session = {
COOKIE_SECURE = false;
};
"cron.git_gc_repos" = {
ENABLED = true;
SCHEDULE = "@every 72h";
ARGS = "--aggressive --prune=now";
};
};
};
systemd.services.gitea = {
wantedBy = mkForce [ "yami-dev.target" ];
partOf = [ "yami-dev.target" ];
after = [ "postgresql.service" ];
requires = [ "postgresql.service" ];
};
# ── Docker ─────────────────────────────────────────────────────────────────
virtualisation.docker = {
enable = true;
enableOnBoot = false;
};
systemd.services.docker = {
wantedBy = mkForce [ "yami-dev.target" ];
partOf = [ "yami-dev.target" ];
};
users.users.${cfg.user}.extraGroups = [ "docker" ];
# ── Gitea Actions Runner ───────────────────────────────────────────────────
services.gitea-actions-runner.instances.default = {
enable = true;
name = "home-runner";
url = "http://localhost:3000";
tokenFile = "/var/lib/gitea-runner/token";
labels = [
"ubuntu-latest:docker://node:20"
"native:host"
];
};
systemd.services."gitea-runner-default" = {
wantedBy = mkForce [ "yami-dev.target" ];
partOf = [ "yami-dev.target" ];
after = [ "gitea.service" "docker.service" ];
requires = [ "gitea.service" "docker.service" ];
};
# Directory for the runner token file; owner matches the runner service user.
systemd.tmpfiles.rules = [
"d /var/lib/gitea-runner 0700 gitea-runner gitea-runner -"
];
# ── Shell aliases ──────────────────────────────────────────────────────────
environment.shellAliases = {
yami-up = "sudo systemctl start yami-dev.target && echo 'Gitea http://localhost:3000'";
yami-down = "sudo systemctl stop yami-dev.target && echo 'Yami dev stack stopped'";
yami-status = "systemctl status yami-dev.target gitea postgresql docker gitea-runner-default --no-pager";
yami-logs = "journalctl -u gitea -u gitea-runner-default -f";
};
# ── Firewall ───────────────────────────────────────────────────────────────
# Merged with existing rules (Steam etc.); does not overwrite them.
networking.firewall.allowedTCPPorts = [ 3000 2222 ];
};
}