commit
2fae7ecb98
3 changed files with 125 additions and 0 deletions
-
2.gitignore
-
89configuration.nix
-
34users.nix
@ -0,0 +1,2 @@ |
|||||
|
.DS_Store |
||||
|
hardware-configuration.nix |
@ -0,0 +1,89 @@ |
|||||
|
{ config, pkgs, ... }: |
||||
|
{ |
||||
|
imports = |
||||
|
[ # Include the results of the hardware scan. |
||||
|
./hardware-configuration.nix |
||||
|
./users.nix |
||||
|
]; |
||||
|
|
||||
|
# Use the systemd-boot EFI boot loader. |
||||
|
boot.loader.systemd-boot.enable = true; |
||||
|
boot.loader.efi.canTouchEfiVariables = true; |
||||
|
|
||||
|
networking.hostName = "multiuser-server-example"; |
||||
|
|
||||
|
# Set your time zone. |
||||
|
time.timeZone = "US/Eastern"; |
||||
|
|
||||
|
# Select internationalisation properties. |
||||
|
i18n.defaultLocale = "en_US.UTF-8"; |
||||
|
console = { |
||||
|
font = "Lat2-Terminus16"; |
||||
|
keyMap = "us"; |
||||
|
useXkbConfig = true; # use xkbOptions in tty. |
||||
|
}; |
||||
|
|
||||
|
nix = { |
||||
|
package = pkgs.nixFlakes; # or versioned attributes like nix_2_7 |
||||
|
extraOptions = '' |
||||
|
experimental-features = nix-command flakes |
||||
|
''; |
||||
|
}; |
||||
|
|
||||
|
environment.systemPackages = with pkgs; [ |
||||
|
vim nano |
||||
|
wget curl |
||||
|
neofetch |
||||
|
screen tmux fff |
||||
|
bash dash git |
||||
|
docker-compose |
||||
|
nodejs |
||||
|
]; |
||||
|
|
||||
|
virtualisation.docker.enable = true; |
||||
|
|
||||
|
programs.starship.enable = true; |
||||
|
programs.neovim = { |
||||
|
enable = true; |
||||
|
plugins = with pkgs.vimPlugins; [ |
||||
|
coc-nvim |
||||
|
neovim-sensible |
||||
|
vim-airline |
||||
|
vim-airline-themes |
||||
|
vim-nix |
||||
|
]; |
||||
|
}; |
||||
|
|
||||
|
# Some programs need SUID wrappers, can be configured further or are |
||||
|
# started in user sessions. |
||||
|
# programs.mtr.enable = true; |
||||
|
programs.gnupg.agent = { |
||||
|
enable = true; |
||||
|
enableSSHSupport = true; |
||||
|
}; |
||||
|
|
||||
|
# List services that you want to enable: |
||||
|
|
||||
|
# Enable the OpenSSH daemon. |
||||
|
services.openssh.enable = true; |
||||
|
|
||||
|
# Open ports in the firewall. |
||||
|
# networking.firewall.allowedTCPPorts = [ ... ]; |
||||
|
# networking.firewall.allowedUDPPorts = [ ... ]; |
||||
|
# Or disable the firewall altogether. |
||||
|
networking.firewall.enable = false; |
||||
|
|
||||
|
# 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 value determines the NixOS release from which the default |
||||
|
# settings for stateful data, like file locations and database versions |
||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave |
||||
|
# this value at the release version of the first install of this system. |
||||
|
# Before changing this value read the documentation for this option |
||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). |
||||
|
system.stateVersion = "22.05"; # Did you read the comment? |
||||
|
} |
||||
|
|
@ -0,0 +1,34 @@ |
|||||
|
{ pkgs, ... }: |
||||
|
let |
||||
|
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz"; |
||||
|
in |
||||
|
{ |
||||
|
imports = [ |
||||
|
#(import "${home-manager}/nixos") |
||||
|
]; |
||||
|
|
||||
|
users.users = |
||||
|
let |
||||
|
server_user = |
||||
|
name: passwd: { |
||||
|
isNormalUser = true; |
||||
|
home = "/server/current/${name}"; |
||||
|
groups = [ "current" ]; |
||||
|
shell = pkgs.bash; |
||||
|
password = passwd; |
||||
|
}; |
||||
|
server_manager = |
||||
|
name: passwd: { |
||||
|
isNormalUser = true; |
||||
|
home = "/server/current/${name}"; |
||||
|
groups = [ "current" "docker" "wheel" ]; |
||||
|
shell = pkgs.bash; |
||||
|
password = passwd; |
||||
|
}; |
||||
|
in |
||||
|
{ |
||||
|
owner = server_manager "junikim" "1234"; |
||||
|
a = server_user "a" "1234"; |
||||
|
b = server_user "b" "1234"; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue