2023-04-21 15:40:27 +02:00
{ pkgs , inputs , lib , . . . }:
let
keys = import ./authorizedKeys.nix ;
fetchSSH = ( host : lib . _ . getSSH host keys ) ;
fetchSSHKeys = map fetchSSH ;
2023-05-18 06:11:39 +02:00
agenixPkg = inputs . agenix . packages . ${ pkgs . system } . default ;
2023-04-21 15:40:27 +02:00
in {
imports = [
./hardware-configuration.nix
2023-05-01 23:17:11 +02:00
./minecraft
2023-04-24 23:41:20 +02:00
./srb2k.nix
./yugoslavia-best.nix
2023-04-21 15:40:27 +02:00
./webapps/default.nix
inputs . nix-minecraft . nixosModules . minecraft-servers
#inputs.watch-party.nixosModules.watch-party
2023-05-01 23:17:11 +02:00
inputs . cohost-blogger . nixosModules . cohost-blogger
2023-06-08 20:47:25 +02:00
inputs . vscode-server . nixosModules . default
2023-04-21 15:40:27 +02:00
] ;
2023-06-08 20:47:25 +02:00
services . vscode-server . enable = true ;
2023-04-21 15:40:27 +02:00
user = {
packages = with pkgs ; [
git
curl
] ;
} ;
users . groups . dotfiles = { } ;
users . groups . yugoslavia = { } ;
2023-06-01 23:36:20 +02:00
# TODO: temporary fix; please find root cause. i'm begging you
nixpkgs . config . permittedInsecurePackages = [
" n o d e j s - 1 6 . 2 0 . 0 "
] ;
2023-04-21 15:40:27 +02:00
normalUsers = {
# aether??? is that... reference.../.??? aether https://www.curseforge.com/minecraft/mc-mods/aether mod Curseforge minecraft Forge Patreon Chat twitter code license Assets license All rights reserved categories Last Updated apr 17 2021 Game Version 1.12.2 aether
aether = {
conf = {
packages = with pkgs ; [ bat duf broot helix nil ] ;
shell = pkgs . unstable . fish ;
extraGroups = [ " w h e e l " " n i x - u s e r s " " d o t f i l e s " ] ;
initialHashedPassword = " ! " ;
openssh . authorizedKeys . keys = fetchSSHKeys [
" a e t h e r @ s u b s u r f a c e "
" a e t h e r @ p h o n e "
" a e t h e r @ A e t h e r s - M i n i . s t a t i o n "
] ;
} ;
homeConf . home = {
sessionVariables = {
EDITOR = " h x " ;
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
} ;
# oatmealine ?? is that a reference to jill oatmealine monoids from the beloved videogame franchise "oateamelin jill monoids???" .oat. zone??? from va11hall-a??? video game???? woman????? minecraft???????
oatmealine = {
conf = {
2023-05-18 06:11:39 +02:00
packages = with pkgs ; [ bat tmux micro direnv nix-direnv ripgrep agenixPkg ] ;
2023-04-21 15:40:27 +02:00
shell = pkgs . unstable . fish ;
extraGroups = [ " w h e e l " " n i x - u s e r s " " d o t f i l e s " " y u g o s l a v i a " ] ;
initialHashedPassword = " ! " ;
openssh . authorizedKeys . keys = fetchSSHKeys [
" o a t m e a l i n e @ v o i d - d e f r a g m e n t e d "
" o a t m e a l i n e @ b e p p y - p h o n e "
] ;
} ;
homeConf . home = {
sessionVariables = {
2023-05-18 06:11:39 +02:00
#EDITOR = lib.trace (lib.readFile age.secrets.huge-furry-cock.path) "micro";
2023-04-21 15:40:27 +02:00
EDITOR = " m i c r o " ;
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
} ;
# i yearn for the day this name ceases to mean
mayflower = {
conf = {
packages = with pkgs ; [ micro tmux ] ;
shell = pkgs . unstable . fish ;
extraGroups = [ " w h e e l " " n i x - u s e r s " " d o t f i l e s " " y u g o s l a v i a " ] ;
initialHashedPassword = " ! " ;
openssh . authorizedKeys . keys = fetchSSHKeys [
" m a y f l o w e r @ B M W - M 5 5 0 d - x D r i v e "
" s w a g @ B M W - M 5 5 0 d - x D r i v e "
] ;
} ;
homeConf . home = {
sessionVariables = {
EDITOR = " m i c r o " ;
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
} ;
winter = {
conf = {
packages = with pkgs ; [ micro ] ;
shell = pkgs . unstable . fish ;
extraGroups = [ " w h e e l " " n i x - u s e r s " " d o t f i l e s " ] ;
initialHashedPassword = " ! " ;
openssh . authorizedKeys . keys = fetchSSHKeys [
" l i l i t h @ b m s - c a b "
] ;
} ;
} ;
} ;
keyboard = {
locale = " e n _ U S . U T F - 8 " ;
variant = " q w e r t y " ;
} ;
modules = {
shell . fish . enable = true ;
security . isLocalMachine = false ;
editors . neovim . enable = true ;
remote = {
enable = true ;
keys = [
" s s h - r s a A A A A B 3 N z a C 1 y c 2 E A A A A B J Q A A A Q E A o V 7 y m O t f C 8 S Y v v 3 1 / G G s o 8 D o H K E / K O f o E Z 0 h j m Y t a Q g 7 d y i 5 i j f D i k L Z U u x 8 a W i v v R o f a 7 S q y a K 0 E a + s 9 K u T X / d r e J K z / R K G + Q H L j w 6 U 0 F S o J 7 6 5 q 5 6 p U y 0 j 0 T Z o V y 4 P j S b 3 8 o f 5 6 u r g 1 U m H k K 1 3 W Q X r v j w d H U j A c V x 6 P u r H A x s b m x h Y k J O 9 J m v r 8 C B + P Z F K I H j e w k g B W k B x D 9 7 W F N w D f m B m v h 1 F 5 x R n 8 W h g T + 2 D V d Q 2 c o N 4 E q w c 4 N W z B U S f r r o 0 g A R s J s U v Q x d x 8 f 1 k J D Q K y 2 l Q W C n l g R i D + p K 5 o c f 1 w C Z f J M s 0 N Q 6 x q C Z D K D J T c y G N L W H / L 5 7 P g 5 U 5 t 7 B W R T T P m Q = = y u g o s l a v i a "
" s s h - r s a A A A A B 3 N z a C 1 y c 2 E A A A A D A Q A B A A A B A Q C X 2 u R T a L 1 N u 4 K z s S J S V c 7 R 2 y C I a 4 M w 3 K u J A M l u Q O 7 4 6 e X B F e T m R N 6 P q c + H 0 R p z 9 n k Q / f B 8 t Y l 7 0 F f r Y y 4 s u M 0 Q C Y 1 I D b P W a U B m L Q Y C t 6 n z C f F Y 8 P T p L o J m e Q W 3 j z G 7 V q S j j l + u G 2 K L Q q P t z x m v u k I J R o v h r K c U n P z w 4 t U 4 B L y 2 u G W g J N 9 s G o f W c z m t x d i j A D y O Y t a s V I r 6 / H c a 5 I w M C l d b q Q 9 B 1 k + V I E 8 7 K v 2 k 5 n + L V R V M s V H a V S u b I M Y Z F b Z F D W 2 / o R V g 2 a i n e w O 0 e 9 X P b t B R E V r a P n u f 7 s 4 u B B y k 4 g o Q f L h z 3 B 6 L 4 J L b Y Y i j w 2 5 + S m e J c e s D x J U I I K M C u Z C h N c y b a u r a @ L A P T O P - M E N 8 U H 6 Q "
" s s h - r s a A A A A B 3 N z a C 1 y c 2 E A A A A D A Q A B A A A B A Q D R I 9 s G l 0 E m O k N N n h 8 S g R q 1 9 7 g k E y 3 X E w K Z j L I r 2 7 V 9 P f a V O L I A c Z i G c O a 5 q 7 r c 5 F j c C t k Q 9 + / t w E 2 4 b Z p x k K 0 y g r R J B E d T + H G A U m p Y / k R P E n / t q j m w N u 4 3 v Q q O h N S Y m A A z d j J 4 A u R P K 5 s t 8 Q Q y O z K v 5 P n g h w y 8 x P A j O M 3 o 4 n 9 U L M L j V v A u 0 e T m C J M K x E v z 5 F U E I V Z t E i d / n g 4 6 k / b J / n j S h 8 v y G B Q V 4 f J e i 6 M 9 O v w 0 H P q q z W y V / e 0 c 3 h T C l G 4 d f L C K 3 Q v 3 h L h X Q + 8 I 9 i a L 7 D 2 w Z d r 3 F 2 l b g 0 v S / Q c t P Z c 2 8 f 1 g p k F E z V f l E z A k 4 a F w J M M f l Y 0 4 I G 1 D r 4 4 I f M 1 g J b p j r s a - k e y - 2 0 2 2 0 4 2 3 "
" s s h - r s a A A A A B 3 N z a C 1 y c 2 E A A A A D A Q A B A A A B A Q C L 7 5 / P g 5 b P 7 L a X E 6 u P y y v 8 Q D R i v W J C 6 Y c H 6 o J J z t k j q L 6 g + 0 x P P i N 6 I 5 4 q / b N F 4 n H A 2 B H V U k t K U U 9 b G D E O p Y I R q 7 k e g p 2 / K / + F N T M 1 K z 6 r J S r S c 8 e 0 O g x g 8 v h D 6 m a x q L U 8 q + D 1 O M h B u 0 U i W U B + G x X m e Y f B t X P j p c E + A a J 8 0 B P s 7 v w i u l H P G n 7 U A c R u P 3 6 Z + 3 J J i N 2 B Q n U 2 a i z X W s g y U 5 7 5 U y 3 D V v A t 7 e H o n + S o J i T C s 2 / / 5 K e x J 4 2 U 6 Z i E 6 f / o T F d i u d 7 0 l p x h G g i i F v j 6 M 9 R Z 0 a L o x s p i s k W 4 5 j K L X I M J + m O 6 h u s g 9 G f v C c h b p s 3 Y k m H 0 h Z 2 4 I i 1 E i F h i 5 H Z M Y 0 L t m a y f l o w e r "
" s s h - e d 2 5 5 1 9 A A A A C 3 N z a C 1 l Z D I 1 N T E 5 A A A A I H r l q H 2 O S h v X d z q 1 s V 5 I D u W Q z e C 9 O H B V v w j 0 + Y 0 X X w i 7 m a y f l o w e r - t h i n k p a d "
2023-04-24 23:41:20 +02:00
" s s h - r s a A A A A B 3 N z a C 1 y c 2 E A A A A D A Q A B A A A B A Q C B K M X T L B J 5 i I P i O 9 j i N + A H W x p g G 1 k c d I 0 h 2 3 + G 1 F L M n K + x h k m a P 9 V j r 9 Q b q Q 4 m m R q f G E R f J W 5 H 2 / O v T E U X n r k A p 1 J c 8 o P r c 1 4 / a u w K i v t b M C 5 t s W z i o D M b c A Y K r c P 3 7 D 3 K w 1 P 7 n z S y A z 3 Q s R X B R x 2 6 O E 5 N e T o 4 Y f G l / T O k Q n o B C D T t 8 k c z i W E v U V e O g n H f 3 h n s z s 2 H 4 P 6 R A y O q j u O H 6 B W h t b K s C H T h T H a A a d L g e H 5 n B 1 W X L Y q G 2 N 1 K E z A h j 8 W B B z P m e Z c M M R r 5 x k q Y V j 1 4 c d + 9 s y E a e n V + w X a p o P y D t O b 6 Y t O K A r N 9 R k T 0 O O q Q k 1 7 O z x v G q H U E X Q 4 e G m N g c 8 B L s G J n r s a - k e y - 2 0 2 3 0 4 0 2 "
2023-04-21 15:40:27 +02:00
#fetchSSH "oatmealine@void-defragmented"
#fetchSSH "oatmealine@beppy-phone"
] ;
packages = with pkgs ; [ tmux micro ] ;
shell = pkgs . unstable . fish ;
} ;
services = {
ssh = {
enable = true ;
requirePassword = false ;
} ;
2023-04-24 23:41:20 +02:00
postgres . enable = true ;
2023-04-21 15:40:27 +02:00
mosh = {
enable = true ;
} ;
wireguard = {
enable = true ;
server = true ;
externalInterface = " e n o 1 " ;
interfaces . " w g 0 " = import ./wireguardInterface.nix ;
} ;
terraria = {
enable = false ;
port = 7777 ; # port-forwarded
messageOfTheDay = " h i " ;
openFirewall = true ;
worldPath = " / v a r / l i b / t e r r a r i a / g b j . w l d " ;
autoCreatedWorldSize = " l a r g e " ;
dataDir = " / v a r / l i b / t e r r a r i a " ;
} ;
jmusicbot = let
baseOptions = {
owner = 276416332894044160 ;
game = " L i s t e n i n g t o y o u r h e a r t b e a t : h e a r t " ;
status = " O N L I N E " ;
songinstatus = true ;
success = " < : o b s e r v e r : 1 0 0 4 4 0 8 8 5 9 8 3 1 5 8 6 9 0 7 > " ;
warning = " < : s l u g c l o s e : 1 0 0 0 2 0 2 9 8 0 4 0 3 9 7 4 1 4 4 > " ;
error = " 🚫 ! ! ! ! ! 🚫 🚫 🚫 > : ( ( ( ( " ;
loading = " < : h a n d s l : 9 6 6 0 1 0 1 4 5 6 9 8 0 8 6 9 9 3 > < : h a n d s r : 9 6 6 0 1 0 1 4 5 8 8 6 8 3 0 6 9 2 > " ;
searching = " < : s c r i p u l o u s _ f i n g o r e _ p o i n t : 1 0 1 2 7 7 7 7 0 3 3 2 3 2 2 2 0 8 7 > < : s c r i p u l o u s _ f i n g o r e : 1 0 1 2 7 7 7 7 0 4 4 5 5 6 6 7 7 5 4 > " ;
npimages = true ;
stayinchannel = true ;
aliases = {
nowplaying = [ " n p " " c u r r e n t " ] ;
play = [ " p " ] ;
queue = [ " l i s t " " q " ] ;
remove = [ " d e l e t e " " d " ] ;
skip = [ " s " ] ;
forceskip = [ " f s " ] ;
movetrack = [ " m o v e " " m " ] ;
} ;
2023-06-22 11:15:08 +02:00
queuetype = " R E G U L A R " ;
2023-04-21 15:40:27 +02:00
} ;
in {
enable = true ;
instances = {
" j o m b l e " = {
enable = true ;
2023-06-22 11:15:08 +02:00
package = pkgs . _ . gmusicbot ;
2023-04-21 15:40:27 +02:00
options = baseOptions // {
token = lib . removeSuffix " \n " ( builtins . readFile /etc/jomble_token ) ;
prefix = " ; " ;
} ;
} ;
" j i l l o " = {
enable = true ;
2023-06-22 11:15:08 +02:00
package = pkgs . _ . gmusicbot ;
2023-04-21 15:40:27 +02:00
options = baseOptions // {
token = lib . removeSuffix " \n " ( builtins . readFile /etc/jillo_token ) ;
prefix = " : " ;
} ;
} ;
} ;
} ;
} ;
} ;
programs . fish . enable = true ;
security . doas = {
extraRules = [
{ users = [ " a e t h e r " ] ; noPass = false ; persist = true ; keepEnv = true ; }
{ users = [ " o a t m e a l i n e " ] ; noPass = true ; persist = false ; keepEnv = true ; }
] ;
} ;
time . timeZone = " E u r o p e / A m s t e r d a m " ;
# If you uncomment this, I will uncomment the spores in your body
# mmm spores ymmnu.uyyy.., :)
networking . useDHCP = false ;
networking = {
# for docs, start here
# https://nixos.org/manual/nixos/stable/options.html#opt-networking.enableB43Firmware
# temporarily disabled
2023-04-24 23:43:34 +02:00
enableIPv6 = false ;
2023-04-21 15:40:27 +02:00
usePredictableInterfaceNames = false ;
interfaces . eth0 . ipv4 . addresses = [
{ address = " 4 6 . 4 . 9 6 . 1 1 3 " ;
prefixLength = 24 ;
}
] ;
defaultGateway = " 4 6 . 4 . 9 6 . 9 7 " ;
nameservers = [ " 8 . 8 . 8 . 8 " " 1 . 1 . 1 . 1 " ] ;
2023-04-24 23:41:20 +02:00
#interfaces.eno1.ipv6.addresses = [
# { address = "2001:41d0:0700:3308::";
# prefixLength = 64;
# }
#
# { address = "2001:41d0:0700:33ff::";
# prefixLength = 64;
# }
#];
#defaultGateway6 = {
# address = "2001:41d0:0700:33ff:00ff:00ff:00ff:00ff";
# address = "33ff::1";
# address = "2001::1";
# interface = "eno1";
#};
2023-04-21 15:40:27 +02:00
firewall . allowPing = true ;
# minecraft proximity voice chat
2023-05-01 23:17:11 +02:00
firewall . allowedTCPPorts = [ 24454 24464 25567 25577 4499 21025 ] ;
firewall . allowedUDPPorts = [ 24454 24464 25567 25577 4499 21025 ] ;
2023-04-21 15:40:27 +02:00
} ;
# environment.etc."dhcpcd.duid".text = "d0:50:99:d4:04:68:d0:50:99:d4:04:68";
}