From 357fbda2bb2400a52f8dec61b66342b92fa945ae Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sun, 17 Nov 2024 11:16:44 -0800 Subject: move machine configurations under darwin and nixos Don't manage fonts on Darwin with homebrew. --- nix/flake/hosts.nix | 51 +++++------ nix/hosts/common/homebrew.nix | 43 --------- nix/hosts/common/macos.nix | 29 ------- nix/hosts/darwin/default.nix | 1 + nix/hosts/darwin/homebrew.nix | 36 ++++++++ nix/hosts/darwin/macos.nix | 39 +++++++++ nix/hosts/darwin/mba/default.nix | 13 +++ nix/hosts/darwin/work/default.nix | 11 +++ nix/hosts/mba/default.nix | 13 --- nix/hosts/nixos/vm/default.nix | 19 ++++ nix/hosts/nixos/vm/hardware.nix | 14 +++ nix/hosts/nixos/wildcat/configuration.nix | 140 ++++++++++++++++++++++++++++++ nix/hosts/nixos/wildcat/default.nix | 18 ++++ nix/hosts/nixos/wildcat/hardware.nix | 29 +++++++ nix/hosts/nixos/wildcat/networking.nix | 51 +++++++++++ nix/hosts/vm/default.nix | 29 ------- nix/hosts/vm/hardware.nix | 14 --- nix/hosts/wildcat/configuration.nix | 140 ------------------------------ nix/hosts/wildcat/default.nix | 18 ---- nix/hosts/wildcat/hardware.nix | 29 ------- nix/hosts/wildcat/networking.nix | 51 ----------- nix/hosts/work/default.nix | 11 --- nix/profiles/home-manager/mac.nix | 4 + nix/profiles/home-manager/personal.nix | 2 +- nix/profiles/home-manager/work.nix | 12 +-- 25 files changed, 400 insertions(+), 417 deletions(-) delete mode 100644 nix/hosts/common/homebrew.nix delete mode 100644 nix/hosts/common/macos.nix create mode 100644 nix/hosts/darwin/default.nix create mode 100644 nix/hosts/darwin/homebrew.nix create mode 100644 nix/hosts/darwin/macos.nix create mode 100644 nix/hosts/darwin/mba/default.nix create mode 100644 nix/hosts/darwin/work/default.nix delete mode 100644 nix/hosts/mba/default.nix create mode 100644 nix/hosts/nixos/vm/default.nix create mode 100644 nix/hosts/nixos/vm/hardware.nix create mode 100644 nix/hosts/nixos/wildcat/configuration.nix create mode 100644 nix/hosts/nixos/wildcat/default.nix create mode 100644 nix/hosts/nixos/wildcat/hardware.nix create mode 100644 nix/hosts/nixos/wildcat/networking.nix delete mode 100644 nix/hosts/vm/default.nix delete mode 100644 nix/hosts/vm/hardware.nix delete mode 100644 nix/hosts/wildcat/configuration.nix delete mode 100644 nix/hosts/wildcat/default.nix delete mode 100644 nix/hosts/wildcat/hardware.nix delete mode 100644 nix/hosts/wildcat/networking.nix delete mode 100644 nix/hosts/work/default.nix create mode 100644 nix/profiles/home-manager/mac.nix (limited to 'nix') diff --git a/nix/flake/hosts.nix b/nix/flake/hosts.nix index eaa0a45..9426bdd 100644 --- a/nix/flake/hosts.nix +++ b/nix/flake/hosts.nix @@ -12,44 +12,37 @@ let home-manager = { useGlobalPkgs = true; useUserPackages = true; - extraSpecialArgs = { - inherit self; - }; + extraSpecialArgs = { inherit self; }; }; } - "${self}/nix/hosts/common/homebrew.nix" - "${self}/nix/hosts/common/macos.nix" + "${self}/nix/hosts/darwin/" "${self}/nix/hosts/common/nix.nix" path - { - nixpkgs.overlays = [ - ]; - } + { nixpkgs.overlays = [ ]; } ]; specialArgs = { inherit inputs self; }; }; - mkNixosConfig = system: path: nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - "${self}/nix/hosts/nixos" - path - ]; - specialArgs = { inherit inputs self; }; - }; + mkNixosConfig = system: path: + nixpkgs.lib.nixosSystem { + inherit system; + modules = + [ "${self}/nix/hosts/nixos" "${self}/nix/hosts/common/nix.nix" path ]; + specialArgs = { inherit inputs self; }; + }; in { - flake = mkMerge [ - { - darwinConfigurations = { - mba-fcuny = mkDarwinConfig "aarch64-darwin" "${self}/nix/hosts/mba"; - HQ-C02FK3Q7MD6T = mkDarwinConfig "x86_64-darwin" "${self}/nix/hosts/work"; - }; + flake = mkMerge [{ + darwinConfigurations = { + mba-fcuny = + mkDarwinConfig "aarch64-darwin" "${self}/nix/hosts/darwin/mba"; + HQ-C02FK3Q7MD6T = + mkDarwinConfig "x86_64-darwin" "${self}/nix/hosts/darwin/work"; + }; - nixosConfigurations = { - vm = mkNixosConfig "aarch64-linux" "${self}/nix/hosts/vm"; - wildcat = mkNixosConfig "x86_64-linux" "${self}/nix/hosts/wildcat"; - }; - } - ]; + nixosConfigurations = { + vm = mkNixosConfig "aarch64-linux" "${self}/nix/hosts/nixos/vm"; + wildcat = mkNixosConfig "x86_64-linux" "${self}/nix/hosts/nixos/wildcat"; + }; + }]; } diff --git a/nix/hosts/common/homebrew.nix b/nix/hosts/common/homebrew.nix deleted file mode 100644 index 1ba4a93..0000000 --- a/nix/hosts/common/homebrew.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ ... }: { - # Required for homebrew on aarch64 - environment.systemPath = [ "/opt/homebrew/bin" "/opt/homebrew/sbin" ]; - - homebrew = { - enable = true; - onActivation.autoUpdate = true; - onActivation.upgrade = true; - - brews = [ - "go" # it's also installed by nix, but this is a fallback, just in case - - # various hashicorp related tools - "hashicorp/tap/boundary" # https://www.boundaryproject.io/ - "hashicorp/tap/nomad-pack" - - # kubernetes stuff - "kind" # to run local k8s cluster - "kubebuilder" - ]; - - taps = [ "homebrew/cask-fonts" "hashicorp/tap" ]; - - casks = [ - "1password-cli" - "docker" - "element" - "emacs" - "iterm2" - "transmission" - "vlc" - "wireshark" - "zoom" - - # fonts - "font-go" - "font-source-code-pro" - "font-source-sans-3" - "font-source-serif-4" - "font-dejavu" - ]; - }; -} diff --git a/nix/hosts/common/macos.nix b/nix/hosts/common/macos.nix deleted file mode 100644 index e764129..0000000 --- a/nix/hosts/common/macos.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ ... }: { - system.defaults.dock.autohide = true; - system.defaults.dock.orientation = "left"; - system.defaults.dock.showhidden = false; - system.defaults.dock.show-recents = false; - # don’t rearrange spaces based on the most recent use - system.defaults.dock.mru-spaces = false; - system.defaults.finder.AppleShowAllExtensions = true; - system.defaults.screencapture.location = "~/Documents/screenshots"; - system.defaults.SoftwareUpdate.AutomaticallyInstallMacOSUpdates = true; - - system.keyboard = { - enableKeyMapping = true; - remapCapsLockToControl = true; - }; - - # Touch ID for sudo auth - security.pam.enableSudoTouchIdAuth = true; - - services.nix-daemon.enable = true; - - system.defaults.CustomUserPreferences = { - "com.apple.desktopservices" = { - # Avoid creating .DS_Store files on network or USB volumes - DSDontWriteNetworkStores = true; - DSDontWriteUSBStores = true; - }; - }; -} diff --git a/nix/hosts/darwin/default.nix b/nix/hosts/darwin/default.nix new file mode 100644 index 0000000..2da9dbc --- /dev/null +++ b/nix/hosts/darwin/default.nix @@ -0,0 +1 @@ +{ ... }: { imports = [ ./homebrew.nix ./macos.nix ]; } diff --git a/nix/hosts/darwin/homebrew.nix b/nix/hosts/darwin/homebrew.nix new file mode 100644 index 0000000..0840b06 --- /dev/null +++ b/nix/hosts/darwin/homebrew.nix @@ -0,0 +1,36 @@ +{ ... }: { + # Required for homebrew on aarch64 + environment.systemPath = [ "/opt/homebrew/bin" "/opt/homebrew/sbin" ]; + + homebrew = { + enable = true; + onActivation.autoUpdate = true; + onActivation.upgrade = true; + + brews = [ + "go" # it's also installed by nix, but this is a fallback, just in case + + # various hashicorp related tools + "hashicorp/tap/boundary" # https://www.boundaryproject.io/ + "hashicorp/tap/nomad-pack" + + # kubernetes stuff + "kind" # to run local k8s cluster + "kubebuilder" + ]; + + taps = [ "hashicorp/tap" ]; + + casks = [ + "1password-cli" + "docker" + "element" + "emacs" + "iterm2" + "transmission" + "vlc" + "wireshark" + "zoom" + ]; + }; +} diff --git a/nix/hosts/darwin/macos.nix b/nix/hosts/darwin/macos.nix new file mode 100644 index 0000000..36f680a --- /dev/null +++ b/nix/hosts/darwin/macos.nix @@ -0,0 +1,39 @@ +{ pkgs, ... }: { + system.defaults.dock.autohide = true; + system.defaults.dock.orientation = "left"; + system.defaults.dock.showhidden = false; + system.defaults.dock.show-recents = false; + # don’t rearrange spaces based on the most recent use + system.defaults.dock.mru-spaces = false; + system.defaults.finder.AppleShowAllExtensions = true; + system.defaults.screencapture.location = "~/Documents/screenshots"; + system.defaults.SoftwareUpdate.AutomaticallyInstallMacOSUpdates = true; + + fonts.packages = with pkgs; [ + emacs-all-the-icons-fonts + google-fonts + roboto + source-code-pro + source-serif-pro + source-sans-pro + go-font + ]; + + system.keyboard = { + enableKeyMapping = true; + remapCapsLockToControl = true; + }; + + # Touch ID for sudo auth + security.pam.enableSudoTouchIdAuth = true; + + services.nix-daemon.enable = true; + + system.defaults.CustomUserPreferences = { + "com.apple.desktopservices" = { + # Avoid creating .DS_Store files on network or USB volumes + DSDontWriteNetworkStores = true; + DSDontWriteUSBStores = true; + }; + }; +} diff --git a/nix/hosts/darwin/mba/default.nix b/nix/hosts/darwin/mba/default.nix new file mode 100644 index 0000000..0a5caac --- /dev/null +++ b/nix/hosts/darwin/mba/default.nix @@ -0,0 +1,13 @@ +{ pkgs, self, ... }: { + networking.hostName = "mba-fcuny"; + + users.users.fcuny.home = "/Users/fcuny"; + users.users.fcuny.shell = pkgs.fish; + programs.fish.enable = true; + environment.shells = [ pkgs.fish ]; + + system.stateVersion = 5; + + home-manager.users.fcuny = + import "${self}/nix/profiles/home-manager/personal.nix"; +} diff --git a/nix/hosts/darwin/work/default.nix b/nix/hosts/darwin/work/default.nix new file mode 100644 index 0000000..9d5f2c0 --- /dev/null +++ b/nix/hosts/darwin/work/default.nix @@ -0,0 +1,11 @@ +{ pkgs, self, ... }: { + users.users.fcuny.home = "/Users/fcuny"; + users.users.fcuny.shell = pkgs.fish; + programs.fish.enable = true; + environment.shells = [ pkgs.fish ]; + + system.stateVersion = 5; + + home-manager.users.fcuny = + import "${self}/nix/profiles/home-manager/work.nix"; +} diff --git a/nix/hosts/mba/default.nix b/nix/hosts/mba/default.nix deleted file mode 100644 index 0a5caac..0000000 --- a/nix/hosts/mba/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, self, ... }: { - networking.hostName = "mba-fcuny"; - - users.users.fcuny.home = "/Users/fcuny"; - users.users.fcuny.shell = pkgs.fish; - programs.fish.enable = true; - environment.shells = [ pkgs.fish ]; - - system.stateVersion = 5; - - home-manager.users.fcuny = - import "${self}/nix/profiles/home-manager/personal.nix"; -} diff --git a/nix/hosts/nixos/vm/default.nix b/nix/hosts/nixos/vm/default.nix new file mode 100644 index 0000000..f4a51aa --- /dev/null +++ b/nix/hosts/nixos/vm/default.nix @@ -0,0 +1,19 @@ +{ ... }: { + imports = [ ./hardware.nix ]; + + boot.tmp.cleanOnBoot = true; + zramSwap.enable = false; + + networking = { + hostName = "nixos"; + domain = ""; + }; + + services.openssh.enable = true; + + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi" + ]; + + system.stateVersion = "23.11"; +} diff --git a/nix/hosts/nixos/vm/hardware.nix b/nix/hosts/nixos/vm/hardware.nix new file mode 100644 index 0000000..89c3d8b --- /dev/null +++ b/nix/hosts/nixos/vm/hardware.nix @@ -0,0 +1,14 @@ +{ modulesPath, ... }: +{ + imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; + boot.loader.grub = { + efiSupport = true; + efiInstallAsRemovable = true; + device = "nodev"; + }; + fileSystems."/boot" = { device = "/dev/disk/by-uuid/E783-E9AE"; fsType = "vfat"; }; + boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ]; + boot.initrd.kernelModules = [ "nvme" ]; + fileSystems."/" = { device = "/dev/vda2"; fsType = "ext4"; }; + swapDevices = [{ device = "/dev/vda3"; }]; +} diff --git a/nix/hosts/nixos/wildcat/configuration.nix b/nix/hosts/nixos/wildcat/configuration.nix new file mode 100644 index 0000000..b74f522 --- /dev/null +++ b/nix/hosts/nixos/wildcat/configuration.nix @@ -0,0 +1,140 @@ +{ lib, pkgs, ... }: { + security.acme = { + defaults.email = "acme@fcuny.net"; + acceptTerms = true; + }; + + # FIXME: I also ran the following as the git user: + # git config --global init.defaultBranch main + # to ensure that new repositories are created with the default + # branch set to `main'. + # TODO(fcuny): I could create the configuration file to set the default branch + services.gitolite = { + enable = true; + adminPubkey = + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi"; + user = "git"; + group = "git"; + extraGitoliteRc = '' + # Make dirs/files group readable, needed for webserver/cgit. (Default + # setting is 0077.) + $RC{UMASK} = 0027; + $RC{GIT_CONFIG_KEYS} = 'cgit.desc cgit.hide cgit.ignore cgit.owner'; + $RC{LOCAL_CODE} = "$rc{GL_ADMIN_BASE}/local"; + push( @{$RC{ENABLE}}, 'symbolic-ref' ); + ''; + }; + + services.cgit.main = { + enable = true; + package = pkgs.cgit-pink; + user = "git"; + group = "git"; + nginx.virtualHost = "git.fcuny.net"; + scanPath = "/var/lib/gitolite/repositories"; + settings = { + css = "/cgit.css"; + logo = "/cgit.png"; + favicon = "/favicon.ico"; + robots = "noindex, nofollow"; + readme = ":README.md"; + project-list = "/var/lib/gitolite/projects.list"; + about-filter = "${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh"; + source-filter = + "${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py"; + clone-url = + (lib.concatStringsSep " " [ "https://git.fcuny.net/$CGIT_REPO_URL" ]); + enable-log-filecount = 1; + enable-log-linecount = 1; + enable-git-config = 1; + enable-blame = 1; + enable-commit-graph = 1; + enable-follow-links = 1; + enable-index-links = 1; + enable-remote-branches = 1; + enable-subject-links = 1; + enable-tree-linenumbers = 1; + max-atom-items = 108; + max-commit-count = 250; + max-repo-count = 500; + repository-sort = "age"; + snapshots = "tar.gz"; + root-title = "¯\\_(ツ)_/¯"; + root-desc = "source code of my various projects"; + }; + }; + + virtualisation.oci-containers.containers.excalidraw = { + autoStart = true; + image = "excalidraw/excalidraw:latest"; + environment = { TZ = "America/Los_Angeles"; }; + ports = [ "127.0.0.1:3030:80" ]; + extraOptions = [ "--pull=always" ]; + }; + + services.nginx = { + enable = true; + + recommendedProxySettings = true; + recommendedGzipSettings = true; + recommendedOptimisation = true; + recommendedTlsSettings = true; + + virtualHosts = { + "fcuny.net" = { + # make it the default site: if a request goes through nginx + # without a host header, this will be the default site we serve + # for that request. + default = true; + forceSSL = true; + enableACME = true; + locations = { + "/" = { root = "/srv/www/fcuny.net"; }; + "/.well-known/acme-challenge" = { + root = "/var/lib/acme/acme-challenges"; + }; + }; + }; + "git.fcuny.net" = { + forceSSL = true; + enableACME = true; + locations = { + "/.well-known/acme-challenge" = { + root = "/var/lib/acme/acme-challenges"; + }; + }; + }; + "draw.fcuny.net" = { + forceSSL = true; + enableACME = true; + locations = { + "/".proxyPass = "http://127.0.0.1:3030"; + "/.well-known/acme-challenge" = { + root = "/var/lib/acme/acme-challenges"; + }; + }; + }; + }; + }; + + services.restic.backups.git = { + user = "fcuny"; + passwordFile = "/etc/restic.pw"; + repository = "/srv/backups/git"; + initialize = true; + paths = [ "/var/lib/gitolite" ]; + exclude = [ + "/var/lib/gitolite/.bash_history" + "/var/lib/gitolite/.ssh" + "/var/lib/gitolite/.viminfo" + ]; + extraBackupArgs = [ "--exclude-caches" "--compression=max" ]; + timerConfig = { OnCalendar = "*:0/30"; }; + pruneOpts = [ + "--keep-hourly 36" + "--keep-daily 7" + "--keep-weekly 4" + "--keep-monthly 3" + ]; + }; +} diff --git a/nix/hosts/nixos/wildcat/default.nix b/nix/hosts/nixos/wildcat/default.nix new file mode 100644 index 0000000..7bde471 --- /dev/null +++ b/nix/hosts/nixos/wildcat/default.nix @@ -0,0 +1,18 @@ +{ ... }: { + + imports = [ ./hardware.nix ./networking.nix ./configuration.nix ]; + + boot.tmp.cleanOnBoot = true; + zramSwap.enable = true; + + networking.hostName = "fcuny"; + networking.domain = "net"; + + services.openssh.enable = true; + + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi" + ]; + + system.stateVersion = "23.11"; +} diff --git a/nix/hosts/nixos/wildcat/hardware.nix b/nix/hosts/nixos/wildcat/hardware.nix new file mode 100644 index 0000000..351c991 --- /dev/null +++ b/nix/hosts/nixos/wildcat/hardware.nix @@ -0,0 +1,29 @@ +{ modulesPath, ... }: +{ + imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; + + boot.initrd.availableKernelModules = [ + "ata_piix" + "uhci_hcd" + "xen_blkfront" + "vmw_pvscsi" + ]; + + boot.loader.grub = { + enable = true; + device = "/dev/sda"; + }; + + boot.initrd.kernelModules = [ "nvme" ]; + + fileSystems = { + "/" = { + device = "/dev/sda1"; + fsType = "ext4"; + }; + "/srv" = { + device = "/dev/disk/by-id/scsi-0HC_Volume_101115314"; + fsType = "ext4"; + }; + }; +} diff --git a/nix/hosts/nixos/wildcat/networking.nix b/nix/hosts/nixos/wildcat/networking.nix new file mode 100644 index 0000000..c0b4bd0 --- /dev/null +++ b/nix/hosts/nixos/wildcat/networking.nix @@ -0,0 +1,51 @@ +{ lib, ... }: { + # This file was populated at runtime with the networking + # details gathered from the active system. + networking = { + nameservers = + [ "2a01:4ff:ff00::add:2" "2a01:4ff:ff00::add:1" "185.12.64.1" ]; + defaultGateway = "172.31.1.1"; + defaultGateway6 = { + address = "fe80::1"; + interface = "eth0"; + }; + dhcpcd.enable = false; + usePredictableInterfaceNames = lib.mkForce false; + interfaces = { + eth0 = { + ipv4.addresses = [{ + address = "5.78.87.68"; + prefixLength = 32; + }]; + ipv6.addresses = [ + { + address = "2a01:4ff:1f0:d1a3::1"; + prefixLength = 64; + } + { + address = "fe80::9400:3ff:fe98:d6dc"; + prefixLength = 64; + } + ]; + ipv4.routes = [{ + address = "172.31.1.1"; + prefixLength = 32; + }]; + ipv6.routes = [{ + address = "fe80::1"; + prefixLength = 128; + }]; + }; + + }; + firewall.allowedTCPPorts = [ + 22 # ssh + 80 # nginx + 443 # nginx + ]; + }; + services.udev.extraRules = '' + ATTR{address}=="96:00:03:98:d6:dc", NAME="eth0" + + ''; +} diff --git a/nix/hosts/vm/default.nix b/nix/hosts/vm/default.nix deleted file mode 100644 index a6dff3a..0000000 --- a/nix/hosts/vm/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ pkgs, ... }: { - imports = [ - ./hardware.nix - ]; - - boot.tmp.cleanOnBoot = true; - zramSwap.enable = false; - - networking = { - hostName = "nixos"; - domain = ""; - }; - - services.openssh.enable = true; - - users.users.root.openssh.authorizedKeys.keys = [ - ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi'' - ]; - - system.stateVersion = "23.11"; - - environment = { - systemPackages = with pkgs; [ - git - jq - vim - ]; - }; -} diff --git a/nix/hosts/vm/hardware.nix b/nix/hosts/vm/hardware.nix deleted file mode 100644 index 89c3d8b..0000000 --- a/nix/hosts/vm/hardware.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ modulesPath, ... }: -{ - imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; - boot.loader.grub = { - efiSupport = true; - efiInstallAsRemovable = true; - device = "nodev"; - }; - fileSystems."/boot" = { device = "/dev/disk/by-uuid/E783-E9AE"; fsType = "vfat"; }; - boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ]; - boot.initrd.kernelModules = [ "nvme" ]; - fileSystems."/" = { device = "/dev/vda2"; fsType = "ext4"; }; - swapDevices = [{ device = "/dev/vda3"; }]; -} diff --git a/nix/hosts/wildcat/configuration.nix b/nix/hosts/wildcat/configuration.nix deleted file mode 100644 index b74f522..0000000 --- a/nix/hosts/wildcat/configuration.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ lib, pkgs, ... }: { - security.acme = { - defaults.email = "acme@fcuny.net"; - acceptTerms = true; - }; - - # FIXME: I also ran the following as the git user: - # git config --global init.defaultBranch main - # to ensure that new repositories are created with the default - # branch set to `main'. - # TODO(fcuny): I could create the configuration file to set the default branch - services.gitolite = { - enable = true; - adminPubkey = - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi"; - user = "git"; - group = "git"; - extraGitoliteRc = '' - # Make dirs/files group readable, needed for webserver/cgit. (Default - # setting is 0077.) - $RC{UMASK} = 0027; - $RC{GIT_CONFIG_KEYS} = 'cgit.desc cgit.hide cgit.ignore cgit.owner'; - $RC{LOCAL_CODE} = "$rc{GL_ADMIN_BASE}/local"; - push( @{$RC{ENABLE}}, 'symbolic-ref' ); - ''; - }; - - services.cgit.main = { - enable = true; - package = pkgs.cgit-pink; - user = "git"; - group = "git"; - nginx.virtualHost = "git.fcuny.net"; - scanPath = "/var/lib/gitolite/repositories"; - settings = { - css = "/cgit.css"; - logo = "/cgit.png"; - favicon = "/favicon.ico"; - robots = "noindex, nofollow"; - readme = ":README.md"; - project-list = "/var/lib/gitolite/projects.list"; - about-filter = "${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh"; - source-filter = - "${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py"; - clone-url = - (lib.concatStringsSep " " [ "https://git.fcuny.net/$CGIT_REPO_URL" ]); - enable-log-filecount = 1; - enable-log-linecount = 1; - enable-git-config = 1; - enable-blame = 1; - enable-commit-graph = 1; - enable-follow-links = 1; - enable-index-links = 1; - enable-remote-branches = 1; - enable-subject-links = 1; - enable-tree-linenumbers = 1; - max-atom-items = 108; - max-commit-count = 250; - max-repo-count = 500; - repository-sort = "age"; - snapshots = "tar.gz"; - root-title = "¯\\_(ツ)_/¯"; - root-desc = "source code of my various projects"; - }; - }; - - virtualisation.oci-containers.containers.excalidraw = { - autoStart = true; - image = "excalidraw/excalidraw:latest"; - environment = { TZ = "America/Los_Angeles"; }; - ports = [ "127.0.0.1:3030:80" ]; - extraOptions = [ "--pull=always" ]; - }; - - services.nginx = { - enable = true; - - recommendedProxySettings = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedTlsSettings = true; - - virtualHosts = { - "fcuny.net" = { - # make it the default site: if a request goes through nginx - # without a host header, this will be the default site we serve - # for that request. - default = true; - forceSSL = true; - enableACME = true; - locations = { - "/" = { root = "/srv/www/fcuny.net"; }; - "/.well-known/acme-challenge" = { - root = "/var/lib/acme/acme-challenges"; - }; - }; - }; - "git.fcuny.net" = { - forceSSL = true; - enableACME = true; - locations = { - "/.well-known/acme-challenge" = { - root = "/var/lib/acme/acme-challenges"; - }; - }; - }; - "draw.fcuny.net" = { - forceSSL = true; - enableACME = true; - locations = { - "/".proxyPass = "http://127.0.0.1:3030"; - "/.well-known/acme-challenge" = { - root = "/var/lib/acme/acme-challenges"; - }; - }; - }; - }; - }; - - services.restic.backups.git = { - user = "fcuny"; - passwordFile = "/etc/restic.pw"; - repository = "/srv/backups/git"; - initialize = true; - paths = [ "/var/lib/gitolite" ]; - exclude = [ - "/var/lib/gitolite/.bash_history" - "/var/lib/gitolite/.ssh" - "/var/lib/gitolite/.viminfo" - ]; - extraBackupArgs = [ "--exclude-caches" "--compression=max" ]; - timerConfig = { OnCalendar = "*:0/30"; }; - pruneOpts = [ - "--keep-hourly 36" - "--keep-daily 7" - "--keep-weekly 4" - "--keep-monthly 3" - ]; - }; -} diff --git a/nix/hosts/wildcat/default.nix b/nix/hosts/wildcat/default.nix deleted file mode 100644 index 7bde471..0000000 --- a/nix/hosts/wildcat/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: { - - imports = [ ./hardware.nix ./networking.nix ./configuration.nix ]; - - boot.tmp.cleanOnBoot = true; - zramSwap.enable = true; - - networking.hostName = "fcuny"; - networking.domain = "net"; - - services.openssh.enable = true; - - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi" - ]; - - system.stateVersion = "23.11"; -} diff --git a/nix/hosts/wildcat/hardware.nix b/nix/hosts/wildcat/hardware.nix deleted file mode 100644 index 351c991..0000000 --- a/nix/hosts/wildcat/hardware.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ modulesPath, ... }: -{ - imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; - - boot.initrd.availableKernelModules = [ - "ata_piix" - "uhci_hcd" - "xen_blkfront" - "vmw_pvscsi" - ]; - - boot.loader.grub = { - enable = true; - device = "/dev/sda"; - }; - - boot.initrd.kernelModules = [ "nvme" ]; - - fileSystems = { - "/" = { - device = "/dev/sda1"; - fsType = "ext4"; - }; - "/srv" = { - device = "/dev/disk/by-id/scsi-0HC_Volume_101115314"; - fsType = "ext4"; - }; - }; -} diff --git a/nix/hosts/wildcat/networking.nix b/nix/hosts/wildcat/networking.nix deleted file mode 100644 index c0b4bd0..0000000 --- a/nix/hosts/wildcat/networking.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, ... }: { - # This file was populated at runtime with the networking - # details gathered from the active system. - networking = { - nameservers = - [ "2a01:4ff:ff00::add:2" "2a01:4ff:ff00::add:1" "185.12.64.1" ]; - defaultGateway = "172.31.1.1"; - defaultGateway6 = { - address = "fe80::1"; - interface = "eth0"; - }; - dhcpcd.enable = false; - usePredictableInterfaceNames = lib.mkForce false; - interfaces = { - eth0 = { - ipv4.addresses = [{ - address = "5.78.87.68"; - prefixLength = 32; - }]; - ipv6.addresses = [ - { - address = "2a01:4ff:1f0:d1a3::1"; - prefixLength = 64; - } - { - address = "fe80::9400:3ff:fe98:d6dc"; - prefixLength = 64; - } - ]; - ipv4.routes = [{ - address = "172.31.1.1"; - prefixLength = 32; - }]; - ipv6.routes = [{ - address = "fe80::1"; - prefixLength = 128; - }]; - }; - - }; - firewall.allowedTCPPorts = [ - 22 # ssh - 80 # nginx - 443 # nginx - ]; - }; - services.udev.extraRules = '' - ATTR{address}=="96:00:03:98:d6:dc", NAME="eth0" - - ''; -} diff --git a/nix/hosts/work/default.nix b/nix/hosts/work/default.nix deleted file mode 100644 index 9d5f2c0..0000000 --- a/nix/hosts/work/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, self, ... }: { - users.users.fcuny.home = "/Users/fcuny"; - users.users.fcuny.shell = pkgs.fish; - programs.fish.enable = true; - environment.shells = [ pkgs.fish ]; - - system.stateVersion = 5; - - home-manager.users.fcuny = - import "${self}/nix/profiles/home-manager/work.nix"; -} diff --git a/nix/profiles/home-manager/mac.nix b/nix/profiles/home-manager/mac.nix new file mode 100644 index 0000000..48fc956 --- /dev/null +++ b/nix/profiles/home-manager/mac.nix @@ -0,0 +1,4 @@ +{ ... }: { + imports = [ ./dev.nix ./fish.nix ./git.nix ./shell.nix ./ssh.nix ]; + xdg.enable = false; +} diff --git a/nix/profiles/home-manager/personal.nix b/nix/profiles/home-manager/personal.nix index d758696..ce0b056 100644 --- a/nix/profiles/home-manager/personal.nix +++ b/nix/profiles/home-manager/personal.nix @@ -2,7 +2,7 @@ home.stateVersion = "23.05"; - imports = [ ./dev.nix ./fish.nix ./git.nix ./shell.nix ./ssh.nix ]; + imports = [ ./mac.nix ]; programs.git = { userEmail = "franck@fcuny.net"; }; } diff --git a/nix/profiles/home-manager/work.nix b/nix/profiles/home-manager/work.nix index ea9358e..31edd7e 100644 --- a/nix/profiles/home-manager/work.nix +++ b/nix/profiles/home-manager/work.nix @@ -2,15 +2,7 @@ home.stateVersion = "23.05"; - imports = [ - ./dev.nix - ./fish.nix - ./git.nix - ./shell.nix - ./ssh.nix - ]; + imports = [ ./mac.nix ]; - programs.git = { - userEmail = "fcuny@roblox.com"; - }; + programs.git = { userEmail = "fcuny@roblox.com"; }; } -- cgit 1.4.1