Juni Kim
2 years ago
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"; |
|||
} |
|||
} |
Reference in new issue
xxxxxxxxxx