hosts: create first server prototype
This commit is contained in:
139
hosts/configuration_server.nix
Normal file
139
hosts/configuration_server.nix
Normal file
@@ -0,0 +1,139 @@
|
||||
#
|
||||
# Main system configuration. More information available in configuration.nix(5) man page.
|
||||
#
|
||||
# flake.nix
|
||||
# ├─ ./hosts
|
||||
# │ └─ configuration.nix *
|
||||
# └─ ./modules
|
||||
# └─ ./editors
|
||||
# └─ ./nvim
|
||||
# └─ default.nix
|
||||
#
|
||||
|
||||
{ config, lib, pkgs, inputs, user, location, ... }:
|
||||
|
||||
{
|
||||
imports = # Import window or display manager.
|
||||
[
|
||||
#../modules/editors/nvim # ! Comment this out on first install !
|
||||
];
|
||||
|
||||
users.users.${user} = { # System User
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" "kvm" "libvirtd" ];
|
||||
shell = pkgs.zsh; # Default shell
|
||||
uid = 3000;
|
||||
# initialPassword = "password95";
|
||||
openssh.authorizedKeys.keys = [
|
||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIANmaraVJ/o20c4dqVnGLp/wGck9QNHFPvO9jcEbKS29AAAABHNzaDo= kabbone@kabc"
|
||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIIgo4IP8ISUohyAMiDc3zEe6ESUE3un7eN5FhVtxZHmcAAAABHNzaDo= kabbone@kabc"
|
||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIKVDApb3vZ+i97V4xLJh8rUF6z5OVYfORlXYbLhdQO15AAAABHNzaDo= kabbone@hades.home.opel-online.de"
|
||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB0q++epdX7feQxvmC2m/CJEoJbkqtAJy6Ml6WKHxryZAAAABHNzaDo= kabbone@hades.home.opel-online.de"
|
||||
];
|
||||
};
|
||||
security.sudo.wheelNeedsPassword = true; # User does not need to give password when using sudo.
|
||||
|
||||
time.timeZone = "Europe/Berlin"; # Time zone and internationalisation
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = { # Extra locale settings that need to be overwritten
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us"; # or us/azerty/etc
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
security.pki.certificateFiles = [
|
||||
./rootCA.pem
|
||||
];
|
||||
|
||||
fonts.fonts = with pkgs; [ # Fonts
|
||||
carlito # NixOS
|
||||
vegur # NixOS
|
||||
source-code-pro
|
||||
jetbrains-mono
|
||||
font-awesome # Icons
|
||||
hack-font
|
||||
corefonts # MS
|
||||
(nerdfonts.override { # Nerdfont Icons override
|
||||
fonts = [
|
||||
"FiraCode"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
TERMINAL = "alacritty";
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
systemPackages = with pkgs; [ # Default packages install system-wide
|
||||
vim
|
||||
git
|
||||
killall
|
||||
pciutils
|
||||
usbutils
|
||||
wget
|
||||
powertop
|
||||
cpufrequtils
|
||||
lm_sensors
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = { # SSH: secure shell (remote connection to shell of server)
|
||||
enable = true; # local: $ ssh <user>@<ip>
|
||||
passwordAuthentication = false;
|
||||
};
|
||||
|
||||
#flatpak.enable = true; # download flatpak file from website - sudo flatpak install <path> - reboot if not showing up
|
||||
# sudo flatpak uninstall --delete-data <app-id> (> flatpak list --app) - flatpak uninstall --unused
|
||||
snapper.configs = {
|
||||
home = {
|
||||
subvolume = "/home";
|
||||
extraConfig = ''
|
||||
TIMELINE_CREATE=yes
|
||||
TIMELINE_CLEANUP=yes
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nix = { # Nix Package Manager settings
|
||||
settings ={
|
||||
auto-optimise-store = true; # Optimise syslinks
|
||||
};
|
||||
gc = { # Automatic garbage collection
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
package = pkgs.nixVersions.stable; # Enable nixFlakes on system
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
};
|
||||
nixpkgs.config.allowUnfree = true; # Allow proprietary software.
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
|
||||
inherit pkgs;
|
||||
};
|
||||
};
|
||||
|
||||
system = { # NixOS settings
|
||||
# autoUpgrade = { # Allow auto update
|
||||
# enable = true;
|
||||
# channel = "https://nixos.org/channels/nixos-unstable";
|
||||
# };
|
||||
stateVersion = "22.05";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user