# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: { imports = [ ./hardware-configuration.nix ./users.nix ./services.nix ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; supportedFilesystems = [ "zfs" ]; tmpOnTmpfs = true; }; services.zfs = { autoSnapshot.enable = true; autoScrub.enable = true; }; networking = { hostName = "loutreos"; # Define your hostname. hostId = "7e66e347"; }; time.timeZone = "Europe/Paris"; nixpkgs.overlays = [ (import ../../overlays/riot-web.nix) (import ../../overlays/sudo.nix) (import ../../overlays/neovim.nix) (import ../../overlays/site-max.nix) (import ../../overlays/site-musique.nix) (import ../../overlays/vsftpd.nix) (import ../../overlays/dogetipbot-telegram.nix) (import ../../overlays/jackett.nix) ]; environment.systemPackages = with pkgs; [ neovim git tmux ncdu beets rclone borgbackup bind tig openssl lftp nix-prefetch-scripts smartmontools htop telnet tldr fzf file ]; nixpkgs.config.allowUnfree = true; users.defaultUserShell = pkgs.zsh; programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; syntaxHighlighting.enable = true; interactiveShellInit = '' source "$(${pkgs.fzf}/bin/fzf-share)/key-bindings.zsh" ''; ohMyZsh = { enable = true; plugins = [ "git" "colored-man-pages" "command-not-found" "extract" ]; theme = "bureau"; }; }; environment.variables = { EDITOR = "nvim"; }; services.openssh = { enable = true; permitRootLogin = "no"; passwordAuthentication = false; }; networking.firewall = { allowedTCPPorts = [ ]; allowedUDPPorts = [ ]; enable = true; }; security.sudo.wheelNeedsPassword = false; system.autoUpgrade.enable = true; systemd.services.nixos-upgrade.path = with pkgs; [ gzip gnutar xz.bin config.nix.package.out ]; nix.gc.automatic = true; nix.gc.options = "--delete-older-than 15d"; system.stateVersion = "18.03"; }