Initial commit
This commit is contained in:
commit
0b9b06c046
|
@ -0,0 +1,3 @@
|
|||
*.swp
|
||||
result
|
||||
flake.lock
|
|
@ -0,0 +1,16 @@
|
|||
# Building
|
||||
## Flake (Nix)
|
||||
```
|
||||
git clone https://git.mlaga97.space/mlaga97/persistent-live-docker-flake
|
||||
cd persistent-live-docker-flake
|
||||
|
||||
nix build -L
|
||||
```
|
||||
|
||||
## Without Flake (Nix)
|
||||
```
|
||||
git clone https://git.mlaga97.space/mlaga97/persistent-live-docker-flake
|
||||
cd persistent-live-docker-flake
|
||||
|
||||
nixos-generate -f iso -c configuration.nix
|
||||
```
|
|
@ -0,0 +1,127 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
networking.hostName = ""; # Allows overriding via DHCP
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
users.mutableUsers = false;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
services.automatic-timezoned.enable = true;
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
networking.wireless.enable = false;
|
||||
|
||||
# Basic Utilities
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Basic Utilities
|
||||
bc pv killall unzip
|
||||
|
||||
# System Monitoring / TUI QoL Tools
|
||||
btop iotop tmux byobu
|
||||
|
||||
# Applications
|
||||
vim_configurable
|
||||
|
||||
# File Systems
|
||||
nfs-utils cifs-utils exfatprogs
|
||||
];
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# Services
|
||||
|
||||
services.uptimed.enable = true;
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = lib.mkForce "no";
|
||||
PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.containers.enable = true;
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
memoryPercent = 200;
|
||||
};
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# Disable Default User
|
||||
|
||||
services.getty.autologinUser = lib.mkForce null;
|
||||
|
||||
users.groups.nixos = {};
|
||||
users.users.nixos.group = "nixos";
|
||||
users.users.nixos.isSystemUser = lib.mkForce true;
|
||||
users.users.nixos.isNormalUser = lib.mkForce false;
|
||||
users.users.nixos.initialHashedPassword = lib.mkForce "!";
|
||||
|
||||
# Disable root as well
|
||||
users.users.root.initialHashedPassword = lib.mkForce "!";
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# Users
|
||||
|
||||
users.users.lauren_lagarde = {
|
||||
isNormalUser = true;
|
||||
description = "Lauren Lagarde";
|
||||
extraGroups = [ "docker" "wheel" "libvirtd" "disks" ];
|
||||
initialHashedPassword = "$y$j9T$KqTFvSj9TYmRXugVbiSgj.$RbvxcGlY/DbLFioa64ntY5RO4Ym0CMswhegeQj5qHyD";
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCl881A1gvgCx+4ECrmJnO2QCTiqjaOLfAegKAAkvWNFKL0rDfsj8tZULUcyn87HYsRrdmqCOQ62GOjQyK803azq7QTxwY4vjczkJxico4LnIToTobcz+JkgF6Rf/h74bs9dHk4ZU853FRBz3wi/14rI10Iwckt37B1ayJacpELuzFobKYip2FjiL1vNH3tiAFR131z+YBByvNX+uJYEhpsI0xry9zbsSUWUq5/YFpmjezblzYRokfsReYiKJeQBeROSeRC/xFBSnikECSylNI4sw5VIpGXFIxL5xhss+s+3dnb+LFQ+zInOYxkVRydYc/In9Wz6Tu7v07K8bjvE7nQwHenoGtRW590Xu0rJApS+k8Cu16sCO2QFj/aI+gCrhU0ymM0aicr0hFAME6Y7j9HcR6PxYxnXZjI7cfqhO5TG8jot25SPzJcvH3EV5oPKtAkw9XA+8+nAI9czFlUgHnuMJAqw1IGOD3qozwqZ5yn1+kG7FZJRpvaPc5pK2HtqaAKJmnRuVaWcFuNALh86gr7Qn8IEp8Q+YyKmDqrMZ4KLJUMnVqn4y0HVS1eB5nVujaJZUGJWA4q3og0FE/2kH74WEp2ZtuJAoEPcgfZ6Ns7BmmXIZU7qu4kQoQ73b3mn6hCi5xlQ/sClzwHYkRPo4tST64ED/UIRPCYe1byNUWSww== lauren@lagarde.dev"
|
||||
];
|
||||
};
|
||||
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
# Persistent Docker
|
||||
|
||||
systemd.mounts = [
|
||||
{
|
||||
type = "ext4";
|
||||
options = "rw";
|
||||
what = "/dev/sda";
|
||||
where = "/persistent";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.automounts = [
|
||||
{
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
where = "/persistent";
|
||||
}
|
||||
];
|
||||
|
||||
virtualisation.docker.daemon.settings = {
|
||||
data-root = "/persistent/docker-root";
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
virtualisation.oci-containers.containers = {
|
||||
dockge = {
|
||||
image = "louislam/dockge";
|
||||
ports = [
|
||||
"5001:5001"
|
||||
];
|
||||
volumes = [
|
||||
"/var/run/docker.sock:/var/run/docker.sock"
|
||||
"/persistent/stacks/dockge/data:/app/data"
|
||||
"/root/.docker/:/root/.docker"
|
||||
"/persistent/stacks:/persistent/stacks"
|
||||
];
|
||||
environment = {
|
||||
DOCKGE_STACKS_DIR = "/persistent/stacks";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
description = "Live Server Iso with persistent docker storage";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nixos-generators.url = "github:nix-community/nixos-generators/7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565";
|
||||
nixos-generators.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nixos-generators, ... }@inputs: let
|
||||
system = "x86_64-linux";
|
||||
timezone = "America/Chicago";
|
||||
locale = "en_US.UTF-8";
|
||||
in {
|
||||
packages.x86_64-linux = {
|
||||
persistent-live-docker-iso = nixos-generators.nixosGenerate {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./configuration.nix
|
||||
];
|
||||
format = "install-iso";
|
||||
};
|
||||
|
||||
default = self.packages.x86_64-linux.persistent-live-docker-iso;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue