diff --git a/README.md b/README.md index 1ec89d6..0ddc7c5 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,8 @@ This system leverages cutting-edge channels and versions of software to provide This approach ensures that you stay on the forefront of technology, receiving the most recent software advancements promptly. 🚨However, it's important to note that this emphasis on bleeding-edge software may impact the stability of the system. +🚨Please note that the system utilizes **Podman** instead of **Docker** for containerization due to various reasons, primarily related to security (rootless and daemonless containers), easier migration to Kubernetes, availability of pods, compatibility with systemd, and better security for `distrobox`. If you prefer to use **Docker** instead of **Podman**, you can make the switch by commenting out the **Podman** section in the `configuration.nix` file and uncommenting the **Docker** section. More details on **Docker** configuration in NixOS can be found [here](https://nixos.wiki/wiki/Docker). + You have the flexibility to customize these configurations according to your needs by modifying the respective configuration files. ## 🌟 Showcase @@ -85,6 +87,7 @@ The showcased images do not reflect the latest version of the system's appearanc | Wallpaper | Wpaperd | | Graphical Boot | Plymouth + Catppuccin-plymouth | | Display Manager | Greetd + Tuigreet | +| Containerization | Podman | And many other useful utilities. The full list can be found in the system configuration at `/nixos/configuration.nix` file. @@ -207,6 +210,7 @@ Here are some tips to enhance your Rust experience on this system: - `cargo-spellcheck` - `cargo-modules` - `cargo-bloat` + - `cargo-unused-features` - `bacon` 5. **Environment Setup:** diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 780513f..5f44350 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -391,8 +391,26 @@ # Enable CUPS to print documents. # services.printing.enable = true; - # Enable docker - virtualisation.docker.enable = true; + # Enable container manager + # Enable Docker + # virtualisation.docker.enable = true; + # virtualisation.docker.rootless = { + # enable = true; + # setSocketVariable = true; + # }; + # users.extraGroups.docker.members = [ "xnm" ]; + # Enable Podman + virtualisation = { + podman = { + enable = true; + + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; # Enable sound with pipewire. sound.enable = true; @@ -416,7 +434,7 @@ users.users.xnm = { isNormalUser = true; description = "xnm"; - extraGroups = [ "networkmanager" "input" "wheel" "video" "audio" "docker" "tss" ]; + extraGroups = [ "networkmanager" "input" "wheel" "video" "audio" "tss" ]; shell = pkgs.fish; packages = with pkgs; [ spotify @@ -512,6 +530,9 @@ git-ignore just xh + tgpt + distrobox + qemu wezterm cool-retro-term # mcfly # terminal history @@ -552,6 +573,9 @@ felix-fm chafa + podman-compose + podman-tui + lazydocker lazygit neofetch