Create base test-corp environmnt

This creates more commonality between a nixos-anywhere bootstrapped
system and a locally built nixos image, which is good.
This commit is contained in:
Eli Ribble 2025-07-17 19:39:38 +00:00
parent a7e5b4a313
commit 259c621a2f
11 changed files with 204 additions and 32 deletions

39
modules/system/base.nix Normal file
View file

@ -0,0 +1,39 @@
{ config, configFiles, lib, pkgs, ... }:
{
boot.tmp.cleanOnBoot = true;
environment.systemPackages = map lib.lowPrio [
pkgs.curl
pkgs.htop
pkgs.git
];
i18n.defaultLocale = "en_US.UTF-8";
nix.settings.experimental-features = [ "nix-command" "flakes" ];
services.swapspace.enable = true;
time.timeZone = "UTC";
zramSwap.enable = true;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.05";
}

View file

@ -1,9 +1,11 @@
{
imports = [
./base.nix
./cloud-init.nix
./do-agent.nix
./fish.nix
./onlyoffice.nix
./openssh.nix
./seafile.nix
./sudo.nix
./synapse.nix

View file

@ -3,8 +3,5 @@
with lib;
{
options.myModules.fish.enable = mkEnableOption "custom fish configuration";
config = mkIf config.myModules.fish.enable {
environment.systemPackages = [ pkgs.fish ];
};
environment.systemPackages = [ pkgs.fish ];
}

View file

@ -0,0 +1,5 @@
{ config, configFiles, lib, pkgs, ... }:
{
services.openssh.enable = true;
}

View file

@ -3,16 +3,12 @@
with lib;
{
options.myModules.tmux.enable = mkEnableOption "custom tmux configuration";
environment.systemPackages = [ pkgs.tmux ];
config = mkIf config.myModules.tmux.enable {
environment.systemPackages = [ pkgs.tmux ];
environment.etc."tmux.conf".source = "${configFiles}/tmux/tmux.conf";
environment.etc."tmux.conf".source = "${configFiles}/tmux/tmux.conf";
# Alternative: if you want per-user configs
# users.users = mkMerge (map (user: {
# ${user}.home = "${configPath}/configs/tmux/tmux.conf";
# }) config.myModules.tmux.users);
};
# Alternative: if you want per-user configs
# users.users = mkMerge (map (user: {
# ${user}.home = "${configPath}/configs/tmux/tmux.conf";
# }) config.myModules.tmux.users);
}