2022-01-11 18:44:40 +01:00
{ pkgs , inputs , lib , . . . }:
2022-04-23 03:01:00 +02:00
let
2022-10-18 19:54:57 +02:00
keys = import ./authorizedKeys.nix ;
fetchSSH = ( host : lib . _ . getSSH host keys ) ;
fetchSSHKeys = map fetchSSH ;
2022-04-23 03:01:00 +02:00
in {
2022-01-11 18:44:40 +01:00
imports = [
./hardware-configuration.nix
2022-09-05 18:44:19 +02:00
./yugoslavia-best.nix
2022-09-05 18:16:09 +02:00
inputs . nix-minecraft . nixosModules . minecraft-servers
#inputs.watch-party.nixosModules.watch-party
( fetchTarball " h t t p s : / / g i t h u b . c o m / m s t e e n / n i x o s - v s c o d e - s e r v e r / t a r b a l l / m a s t e r " )
2022-01-11 18:44:40 +01:00
] ;
2022-09-05 18:16:09 +02:00
# services.auto-fix-vscode-server.enable = true;
services . vscode-server . enable = true ;
2022-01-11 18:44:40 +01:00
user = {
packages = with pkgs ; [
2022-04-23 03:01:00 +02:00
git
2022-01-11 18:44:40 +01:00
curl
] ;
} ;
2022-09-05 18:44:19 +02:00
users . groups . dotfiles = { } ;
2022-09-14 20:43:49 +02:00
users . groups . yugoslavia = { } ;
2022-09-05 18:44:19 +02:00
2022-09-05 18:16:09 +02:00
normalUsers = {
2022-10-21 17:14:48 +02:00
# 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
2022-01-11 18:44:40 +01:00
aether = {
2022-09-05 18:16:09 +02:00
conf = {
2023-01-19 00:11:01 +01:00
packages = with pkgs ; [ bat duf broot nftables tmux bottom writefreely ] ;
2022-09-05 18:16:09 +02:00
shell = pkgs . unstable . fish ;
2022-09-05 18:44:19 +02:00
extraGroups = [ " w h e e l " " n i x - u s e r s " " d o t f i l e s " ] ;
2022-09-05 18:16:09 +02:00
initialHashedPassword = " ! " ;
2022-10-18 19:54:57 +02:00
openssh . authorizedKeys . keys = fetchSSHKeys [
" a e t h e r @ s u b s u r f a c e "
2022-11-15 06:19:25 +01:00
" a e t h e r @ p h o n e "
2022-10-18 19:54:57 +02:00
] ;
2022-09-05 18:16:09 +02:00
} ;
homeConf . home = {
sessionVariables = {
EDITOR = " n v i m " ;
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
2022-01-11 18:44:40 +01:00
} ;
2022-09-05 18:16:09 +02:00
2022-09-05 18:44:19 +02:00
# 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???????
2022-01-11 18:44:40 +01:00
oatmealine = {
2022-09-05 18:16:09 +02:00
conf = {
2022-11-15 06:19:25 +01:00
packages = with pkgs ; [ bat tmux micro direnv nix-direnv ripgrep _ . glitch-soc ] ;
2022-09-05 18:16:09 +02:00
shell = pkgs . unstable . fish ;
2022-09-14 20:43:49 +02:00
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 " ] ;
2022-09-05 18:16:09 +02:00
initialHashedPassword = " ! " ;
2022-10-18 19:54:57 +02:00
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 "
] ;
2022-09-05 18:16:09 +02:00
} ;
homeConf . home = {
sessionVariables = {
EDITOR = " m i c r o " ;
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
2022-04-20 10:53:28 +02:00
} ;
2022-10-18 12:53:24 +02:00
mayflower = {
conf = {
2022-10-18 14:07:49 +02:00
packages = with pkgs ; [ micro tmux ] ;
2022-10-18 12:53:24 +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 = " ! " ;
2022-10-18 19:54:57 +02:00
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 "
2023-01-19 00:11:01 +01:00
" s w a g @ B M W - M 5 5 0 d - x D r i v e "
2022-10-18 19:54:57 +02:00
] ;
2022-10-18 12:53:24 +02:00
} ;
homeConf . home = {
2022-10-18 14:07:49 +02:00
sessionVariables = {
EDITOR = " m i c r o " ;
2022-10-18 12:53:24 +02:00
NIX_REMOTE = " d a e m o n " ;
} ;
} ;
} ;
2022-11-17 15:43:38 +01:00
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 "
] ;
} ;
} ;
2022-01-11 18:44:40 +01:00
} ;
keyboard = {
locale = " e n _ U S . U T F - 8 " ;
variant = " q w e r t y " ;
} ;
modules = {
2022-04-23 03:10:38 +02:00
shell . fish . enable = true ;
2022-09-05 18:16:09 +02:00
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 "
2022-09-14 20:43:49 +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 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 "
2022-10-18 19:54:57 +02:00
#fetchSSH "oatmealine@void-defragmented"
#fetchSSH "oatmealine@beppy-phone"
2022-09-05 18:16:09 +02:00
] ;
2022-09-14 20:43:49 +02:00
packages = with pkgs ; [ tmux micro ] ;
2022-09-05 18:16:09 +02:00
shell = pkgs . unstable . fish ;
2022-01-11 18:44:40 +01:00
} ;
services = {
2022-09-05 18:16:09 +02:00
ssh = {
enable = true ;
requirePassword = false ;
} ;
2022-01-11 18:44:40 +01:00
postgres . enable = true ;
2022-09-05 18:16:09 +02:00
2023-01-19 00:11:01 +01:00
#nextcloud = {
# enable = true;
# domain = "nextcloud.dark-firepit.cloud";
# settings.app.federation = true;
#};
#writefreely = {
# enable = true;
# name = "Corruption Biome";
# domain = "blog.dark-firepit.cloud";
#};
2022-09-05 18:16:09 +02:00
2022-01-11 18:44:40 +01:00
gitea = {
enable = true ;
2022-09-05 18:16:09 +02:00
domain = " g i t . o a t . z o n e " ;
port = 3000 ;
} ;
matrix . conduit = {
enable = false ;
2022-11-15 06:19:25 +01:00
domain = " m a t r i x . d a r k - f i r e p i t . c l o u d " ;
2022-09-05 18:16:09 +02:00
} ;
2022-10-21 17:14:48 +02:00
srb2k = with lib ; with builtins ; let
addonDir = " / v a r / l i b / s r b 2 k / f i r e p i t / " ;
fileNames = attrNames ( readDir ( /. + addonDir ) ) ;
addonFileNames = filter ( n : hasSuffix " . l u a " n || hasSuffix " . k a r t " n || hasSuffix " . p k 3 " n || hasSuffix " . w a d " n ) fileNames ;
2022-10-23 11:57:12 +02:00
colors = builtins . fromJSON '' {
" w h i t e " : " \u 0 0 8 0 " ,
" p u r p l e " : " \u 0 0 8 1 " ,
" y e l l o w " : " \u 0 0 8 2 " ,
" g r e e n " : " \u 0 0 8 3 " ,
" b l u e " : " \u 0 0 8 4 " ,
" r e d " : " \u 0 0 8 5 " ,
" g r a y " : " \u 0 0 8 6 " ,
" o r a n g e " : " \u 0 0 8 7 " ,
" c y a n " : " \u 0 0 8 8 " ,
" l a v e n d e r " : " \u 0 0 8 9 " ,
" g o l d " : " \u 0 0 8 a " ,
" l i m e " : " \u 0 0 8 b " ,
" s t e e l " : " \u 0 0 8 c " ,
" p i n k " : " \u 0 0 8 d " ,
" b r o w n " : " \u 0 0 8 e " ,
" p e a c h " : " \u 0 0 8 f "
} '' ;
colorsLua = {
white = " \\ 1 2 8 " ;
purple = " \\ 1 2 9 " ;
yellow = " \\ 1 3 0 " ;
green = " \\ 1 3 1 " ;
blue = " \\ 1 3 2 " ;
red = " \\ 1 3 3 " ;
gray = " \\ 1 3 4 " ;
orange = " \\ 1 3 5 " ;
cyan = " \\ 1 3 6 " ;
lavender = " \\ 1 3 7 " ;
gold = " \\ 1 3 8 " ;
lime = " \\ 1 3 9 " ;
steel = " \\ 1 4 0 " ;
pink = " \\ 1 4 1 " ;
brown = " \\ 1 4 2 " ;
peach = " \\ 1 4 3 " ;
} ;
2022-10-21 17:14:48 +02:00
in {
enable = true ;
2022-10-23 11:57:12 +02:00
advertise = true ;
2022-10-21 17:14:48 +02:00
addons = map ( n : " ${ addonDir } ${ n } " ) addonFileNames ;
2022-10-23 11:57:12 +02:00
config = {
maxplayers = 16 ;
http_source = " h t t p s : / / y u g o s l a v i a . b e s t / s r b 2 k a d d o n s / " ;
maxsend = " m a x " ;
servername = with colors ; " ${ white } [ ${ cyan } E U ${ white } ] ${ lime } y u g o s l a v i a . b e s t " ;
server_contact = " o a t . z o n e | | h o m e o f b a r " ;
} ;
serv = with colorsLua ; ''
kmp_hardsneakers on
kmp_extendflashtics on
kmp_floatingitemfuse on
kmp_hyudoro on
kmp_haste on
kmp_respawnpoints on
kmp_battleaccel on
maxsend max
fr_enabled off
2022-11-15 06:19:25 +01:00
khaos enable off
2022-10-23 11:57:12 +02:00
wait 1
fd_finishkill off
fd_hitkill off
wait 1
nametag_star on
wait 1
hm_bail on
hm_timelimit 8
hm_motd on
hm_motd_nag on
hm_motd_name " ${ lime } y u g o s l a v i a . b e s t "
hm_motd_tagline " h o m e o f b a r "
hm_motd_contact " o a t . z o n e "
hm_restat on
hm_restat_notify on
hm_votable exitlevel
hm_vote_timer 20
wait 1
hm_specbomb on
hm_scoreboard on
hm_scoreboard_humor on
wait 1
hm_scoreboard_addline " ${ lime } y u g o s l a v i a . b e s t ${ white } : h o m e o f b a r "
wait 1
hm_scoreboard_addline " h o s t e d b y ${ lime } o a t . z o n e "
wait 1
hm_scoreboard_addline " c a s u a l s e r v e r , a n y t h i n g g o e s , "
hm_scoreboard_addline " f e e l f r e e t o s u g g e s t m o d s t o "
wait 1
hm_scoreboard_addline " ${ pink } o a t m e a l i n e # 5 3 9 7 ${ white } / ${ pink } o a t m e a l i n e @ d i s r o o t . o r g "
// hm_scoreboard_addline " ${ white } 8 0 ${ purple } 8 1 ${ yellow } 8 2 ${ green } 8 3 ${ blue } 8 4 ${ red } 8 5 ${ gray } 8 6 ${ orange } 8 7 ${ cyan } 8 8 ${ lavender } 8 9 ${ gold } 8 a ${ lime } 8 b ${ steel } 8 c ${ pink } 8 d ${ brown } 8 e ${ peach } 8 f "
wait 1
hf_displaymode 3
'' ; # "
2022-10-21 17:14:48 +02:00
} ;
2022-09-05 18:16:09 +02:00
minecraft = {
enable = true ;
servers = {
" d a r k - f i r e p i t " = {
2022-11-15 06:19:25 +01:00
enable = false ;
#autoStart = false;
2022-09-05 18:16:09 +02:00
openFirewall = true ;
serverProperties = {
server-port = 25565 ;
gamemode = 0 ;
motd = " d a r k - f i r e p i t , 1 . 1 9 . 2 F a b r i c " ;
white-list = true ;
max-players = 8 ;
allow-flight = true ;
enable-command-block = true ;
enforce-secure-profile = false ;
level-type = " t e r r a : o v e r w o r l d / o v e r w o r l d " ;
snooper-enabled = false ;
spawn-protection = 0 ;
} ;
whitelist = {
oatmealine = " 2 4 1 d 7 1 0 3 - 4 c 9 d - 4 c 4 5 - 9 4 6 4 - 8 3 b 5 3 6 5 c e 4 8 e " ;
RustyMyHabibi = " e 2 0 3 0 5 f a - a 4 4 c - 4 4 c 9 - b 6 2 e - 6 9 1 8 e 7 c 7 7 9 d 6 " ;
Dj_Afganistan = " 1 f 8 7 9 9 1 7 - 1 a d 4 - 4 9 c 3 - 9 9 0 8 - 9 0 7 6 9 e e 7 3 f 8 5 " ;
DumbDogDoodles = " d 3 3 e 5 e 3 b - 8 5 a b - 4 c 9 3 - a 6 1 b - 6 0 5 e 2 6 7 3 f b e 8 " ;
SuneFoxie = " 8 2 e 8 2 e f 9 - e a 1 7 - 4 7 9 4 - 9 0 5 1 - 9 2 8 b 5 b 8 6 2 9 c 1 " ;
FuzziestRedMoth = " 2 1 e 1 a d f 8 - 9 3 f 7 - 4 1 7 3 - a 0 8 7 - b 3 a 9 c 0 2 e d e c 5 " ;
} ;
package = pkgs . minecraftServers . fabric-1_19_2 ;
jvmOpts = " - X m x 6 G " ;
} ;
2023-01-19 00:11:01 +01:00
" n 3 k o - t e s t " = {
enable = true ;
autoStart = true ;
openFirewall = true ;
serverProperties = {
server-port = 25595 ;
gamemode = 1 ;
motd = " N 3 K O S M P T e s t i n g s e r v e r " ;
white-list = true ;
max-players = 8 ;
allow-flight = true ;
enable-command-block = true ;
enforce-secure-profile = false ;
#level-type = "terra:overworld/overworld";
snooper-enabled = false ;
spawn-protection = 0 ;
} ;
whitelist = {
oatmealine = " 2 4 1 d 7 1 0 3 - 4 c 9 d - 4 c 4 5 - 9 4 6 4 - 8 3 b 5 3 6 5 c e 4 8 e " ;
Cardboxneko = " 3 d 4 0 6 1 5 2 - 0 0 8 c - 4 e c 9 - b f 4 9 - 4 4 c 8 8 3 b a c a 6 d " ;
} ;
package = pkgs . fabricServers . fabric-1_18_2 ;
jvmOpts = " - X m x 4 G " ;
} ;
2022-10-11 21:28:55 +02:00
" g b j " = {
enable = true ;
autoStart = true ;
openFirewall = true ;
serverProperties = {
server-port = 25585 ;
gamemode = 0 ;
motd = " g a y b a b y j a i l " ;
max-players = 16 ;
allow-flight = true ;
enable-command-block = true ;
enforce-secure-profile = false ;
snooper-enabled = false ;
spawn-protection = 0 ;
level-type = " t e r r a : o v e r w o r l d / o v e r w o r l d " ;
white-list = true ;
2022-10-18 14:36:05 +02:00
view-distance = 32 ;
2022-10-11 21:28:55 +02:00
} ;
whitelist = {
UnderSunandSky = " b 7 8 8 f 4 6 e - 5 0 a 2 - 4 a f 3 - a 6 6 8 - 1 5 a e 3 9 3 c 5 9 d 8 " ;
PianoBoyBenini = " 0 4 2 d 6 c e f - 6 1 9 4 - 4 6 b 4 - 9 b f c - 8 7 b 3 c 4 c d f 9 4 a " ;
oatmealine = " 2 4 1 d 7 1 0 3 - 4 c 9 d - 4 c 4 5 - 9 4 6 4 - 8 3 b 5 3 6 5 c e 4 8 e " ;
Starblazerz128 = " d 4 5 e b 1 7 2 - 8 3 6 0 - 4 2 f d - a 1 8 5 - a b 2 1 9 7 b 7 1 f 9 a " ;
Chevreau = " b 5 9 4 b a 8 4 - f 1 0 c - 4 2 f f - 8 3 a 6 - 8 0 4 6 f 9 0 a d 0 b 8 " ;
Yarn01 = " 4 0 f e e 7 3 f - d 4 b 3 - 4 7 c 6 - a d f 7 - f e 7 c 7 1 7 a 1 f 5 5 " ;
" 1 C 3 d o g g o " = " 4 8 c 3 a 0 7 7 - 9 e 3 b - 4 7 a 6 - b 1 7 b - 4 e d 0 b 1 b c 3 3 b 2 " ;
CosmicCats = " 3 2 1 4 8 b 7 9 - 1 2 a 8 - 4 8 f 1 - b 1 5 8 - 3 c 9 7 c 4 5 e 3 9 e 5 " ;
m3bo = " 6 e 3 3 4 3 4 c - 1 e c 0 - 4 c 6 9 - 9 d a d - b 3 2 b 1 1 9 7 4 9 6 e " ;
SomewhatSyl = " d 8 b a c 1 e f - 2 7 d 5 - 4 c 9 4 - a 9 e 7 - e 2 d 0 7 9 e d e f 2 2 " ;
Nightmare_Tank = " 9 2 8 4 0 d a a - 8 2 3 e - 4 b 8 e - 9 7 4 1 - b e 2 9 6 1 4 7 e 8 2 3 " ;
JDavisBro = " e 8 5 2 9 c 4 b - 7 0 1 e - 4 6 c 5 - a 8 d 7 - 0 d f b 0 e 0 b 6 4 2 d " ;
Ironic_queen = " 4 4 3 f e 2 0 d - 7 7 e 0 - 4 a 4 a - 8 b b 7 - a 4 b 9 a d 6 5 4 5 5 0 " ;
azurehaiku = " f d 7 a b a 3 3 - 4 3 0 7 - 4 e b a - a a 6 3 - 7 0 b c 3 e 3 8 a 2 d 7 " ;
2023-01-19 00:11:01 +01:00
TryHardGamerTV = " 8 2 7 3 b 8 4 d - a 6 8 7 - 4 9 f b - 9 8 d e - a 3 e 6 2 6 e 2 6 c 3 b " ;
" _ A t l a s F o x _ " = " 0 c e 1 b b e 0 - e a 5 7 - 4 6 3 c - 8 d f 3 - 4 c 0 4 6 d c 6 e f f 2 " ;
2022-10-11 21:28:55 +02:00
} ;
package = pkgs . minecraftServers . fabric-1_19_2 ;
2022-10-14 16:46:32 +02:00
jvmOpts = " - X m x 4 G " ;
2022-10-11 21:28:55 +02:00
} ;
2022-09-05 18:16:09 +02:00
} ;
2022-01-11 18:44:40 +01:00
} ;
2022-09-05 18:16:09 +02:00
2022-11-15 06:19:25 +01:00
glitch-soc = {
enable = true ;
domain = " f e d i t e s t . o a t . z o n e " ;
} ;
2022-11-17 00:51:36 +01:00
mosh = {
enable = true ;
} ;
2022-04-20 10:53:28 +02:00
wireguard = {
enable = true ;
server = true ;
2022-04-23 03:01:00 +02:00
externalInterface = " e n o 1 " ;
interfaces . " w g 0 " = import ./wireguardInterface.nix ;
2022-04-20 10:53:28 +02:00
} ;
2022-09-05 18:16:09 +02:00
vaultwarden = {
enable = true ;
domain = " v a u l t . a e t h e r . g a y " ;
} ;
jillo = {
enable = false ;
dataDir = " / v a r / l i b / j i l l o " ;
} ;
# not entirely necessary but makes it so that invalid domains and/or direct ip access aborts connection
# prevents other domains from "stealing" content by settings their dns to our ip
# this has happened before by the way on the vps. i have no clue how or why
# update: also optimizes gzip and tls stuff
nginx-config = {
enable = true ;
} ;
staticSites = {
" a e t h e r . g a y " . dataDir = " / v a r / w w w / a e t h e r . g a y " ;
2022-11-17 00:51:36 +01:00
" d a r k - f i r e p i t . c l o u d " . dataDir = " / v a r / w w w / d a r k - f i r e p i t . c l o u d " ;
2022-10-21 20:16:39 +02:00
#"dark-firepit.oat.zone".dataDir = "/var/www/dark-firepit.oat.zone";
2022-09-05 18:16:09 +02:00
" v a 1 1 h a l l a . o a t . z o n e " . dataDir = " / v a r / w w w / v a 1 1 h a l l a . o a t . z o n e " ;
" g i g e r . y u g o s l a v i a . f i s h i n g " . dataDir = " / v a r / w w w / g i g e r . y u g o s l a v i a . f i s h i n g " ;
" m o d f i l e s . o a t . z o n e " . dataDir = " / v a r / w w w / m o d f i l e s . o a t . z o n e " ;
" s h o p . y u g o s l a v i a . b e s t " . dataDir = " / v a r / w w w / s h o p . y u g o s l a v i a . b e s t " ;
" t e s c o - u n d e r g r o u n d - d e v . o a t . z o n e " . dataDir = " / v a r / w w w / t e s c o - u n d e r g r o u n d - d e v . o a t . z o n e " ;
2022-09-05 18:44:19 +02:00
" t e s c o - u n d e r g r o u n d - d e v . o a t . z o n e " . auth = { tesco = builtins . readFile /etc/tesco ; } ;
2022-09-05 18:16:09 +02:00
" o a t . z o n e " . dataDir = " / v a r / w w w / o a t . z o n e " ;
" o a t . z o n e " . php = true ;
" y u g o s l a v i a . f i s h i n g " . dataDir = " / v a r / w w w / y u g o s l a v i a . f i s h i n g " ;
" y u g o s l a v i a . f i s h i n g " . php = true ;
2022-09-23 23:21:51 +02:00
" e d u c a t i o n m a t h . o a t . z o n e " . dataDir = " / v a r / w w w / p r o x y . o a t . z o n e " ;
" e d u c a t i o n m a t h . o a t . z o n e " . php = true ;
" e d u c a t i o n m a t h . o a t . z o n e " . auth = { twh = builtins . readFile /etc/proxy_twh ; } ;
2022-09-23 23:31:48 +02:00
" r i v e r v a l l e y c h o c o l a t e . c o m " . dataDir = " / v a r / w w w / r i v e r v a l l e y c h o c o l a t e . c o m " ;
" r i v e r v a l l e y c h o c o l a t e . c o m " . php = true ;
2022-09-29 11:43:32 +02:00
" t a c . y u g o s l a v i a . b e s t " . dataDir = " / v a r / w w w / t a c . y u g o s l a v i a . b e s t / p u b l i c " ;
2022-09-29 10:28:27 +02:00
" t a c . y u g o s l a v i a . b e s t " . php = true ;
2022-10-05 22:07:28 +02:00
" t a c . y u g o s l a v i a . b e s t " . phpHandlePathing = true ;
2022-10-17 18:42:22 +02:00
" p j s k . o a t . z o n e " . dataDir = " / v a r / w w w / p j s k . o a t . z o n e " ;
2022-11-15 06:19:25 +01:00
" m a y f . p i n k " . dataDir = " / v a r / w w w / m a y f . p i n k / p u b l i c " ;
" m a y f . p i n k " . php = true ;
" m a y f . p i n k " . phpHandlePathing = true ;
2022-11-17 15:43:38 +01:00
" w i n t 0 r . z o n e " . dataDir = " / v a r / w w w / w i n t 0 r . z o n e " ;
2023-01-19 00:11:01 +01:00
" p u z z l e . w i n t 0 r . z o n e " . dataDir = " / v a r / w w w / p u z z l e . w i n t 0 r . z o n e " ;
2022-09-05 18:16:09 +02:00
} ;
nitter = {
enable = true ;
lightweight = false ; # enable if shit gets wild; check config for more info
port = 3005 ;
domain = " n i t t e r . o a t . z o n e " ;
} ;
#watch-party = {
# enable = true;
# port = 1984;
#};
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 " ;
} ;
matomo = {
enable = true ;
} ;
isso = {
enable = true ;
port = 1995 ;
} ;
2023-01-19 01:38:03 +01:00
code-server = {
enable = true ;
domain = " d e v - f i r e p i t . o a t . z o n e " ;
port = 4444 ;
} ;
2022-01-11 18:44:40 +01:00
} ;
} ;
2022-09-14 20:43:49 +02:00
systemd . services . minecraft-server-dark-firepit . serviceConfig = {
# packwiz workaround
# https://github.com/Infinidoge/nix-minecraft/issues/12#issuecomment-1235999072
# TODO: this doesn't work!!! it just goes "error code 1" and refuses to elaborate
#ExecStartPre = [
# ''cd "/srv/minecraft/dark-firepit"; nix-shell -p adoptopenjdk-hotspot-bin-16 --run "java -jar /srv/minecraft/dark-firepit/packwiz-installer-bootstrap.jar -g 'https://dark-firepit.oat.zone/Fire Pit 1.19.2/pack.toml'"''
#];
} ;
2022-09-05 18:16:09 +02:00
services . nginx . virtualHosts . " o a t . z o n e " = {
locations . " / f / " . extraConfig = ''
2022-09-05 18:44:19 +02:00
add_header Access-Control-Allow-Origin " * " ;
2022-09-05 18:16:09 +02:00
'' ;
} ;
2023-01-19 00:11:01 +01:00
services . nginx . virtualHosts . " g d p s t e s t . o a t . z o n e " = {
enableACME = true ;
forceSSL = false ;
addSSL = true ;
locations . " / " = {
proxyPass = " h t t p : / / 1 2 7 . 0 . 0 . 1 : 1 9 8 2 / " ;
} ;
extraConfig = ''
client_max_body_size 5 0 0 M ;
'' ;
} ;
services . nginx . virtualHosts . " g d i c o n . o a t . z o n e " = {
enableACME = true ;
forceSSL = true ;
locations . " / " = {
proxyPass = " h t t p : / / 1 2 7 . 0 . 0 . 1 : 3 4 3 6 / " ;
} ;
} ;
2022-10-21 20:16:39 +02:00
# https://www.edwinwenink.xyz/posts/47-tilde_server/
2022-11-20 04:56:13 +01:00
services . nginx . virtualHosts . " d a r k - f i r e p i t . c l o u d " = {
2022-10-21 20:16:39 +02:00
locations . " ~ ^ / ~ ( [ ^ / \\ s ] + ? ) ( / [ ^ \\ s ] * ) ? $ " . extraConfig = ''
add_header X-debug-message " / h o m e / $ 1 / w w w $ 2 " always ;
alias /home / $ 1/www $ 2 ;
index index . html index . htm ;
autoindex on ;
'' ;
} ;
2022-11-15 06:19:25 +01:00
services . nginx . virtualHosts . " n i t t e r . o a t . z o n e " = {
locations . " / " . extraConfig = ''
if ( $ http_user_agent = ' Mozilla/5.0 ( compatible ; Discordbot/2.0 ; + https://discordapp.com ) ' ) {
return 302 $ scheme://fxtwitter.com$request_uri ;
}
'' ;
} ;
2023-01-19 00:11:01 +01:00
# temporary
#services.nginx.virtualHosts."git.oat.zone" = {
# forceSSL = true;
# enableACME = true;
# root = "/var/www/temporarily-down";
# extraConfig = ''
# error_page 503 /index.html;
# '';
# locations."/".extraConfig = ''
# return 503;
# try_files /index.html =404;
# '';
#};
2022-04-23 03:01:00 +02:00
security . doas = {
extraRules = [
2022-09-05 18:16:09 +02:00
{ 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 ; }
2022-04-23 03:01:00 +02:00
] ;
2022-01-11 18:44:40 +01:00
} ;
2022-04-23 03:01:00 +02:00
time . timeZone = " E u r o p e / A m s t e r d a m " ;
2022-09-05 18:16:09 +02:00
# 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
enableIPv6 = true ; # true by default, but better safe than sorry
interfaces . eno1 . ipv4 . addresses = [
{ address = " 5 1 . 8 9 . 9 8 . 8 " ;
prefixLength = 24 ;
}
] ;
defaultGateway = " 5 1 . 8 9 . 9 8 . 2 5 4 " ;
nameservers = [ " 8 . 8 . 8 . 8 " " 1 . 1 . 1 . 1 " ] ;
interfaces . eno1 . ipv6 . addresses = [
{ address = " 2 0 0 1 : 4 1 d 0 : 0 7 0 0 : 3 3 0 8 : : " ;
prefixLength = 64 ;
}
2022-10-23 02:40:03 +02:00
{ address = " 2 0 0 1 : 4 1 d 0 : 0 7 0 0 : 3 3 f f : : " ;
prefixLength = 64 ;
}
2022-09-05 18:16:09 +02:00
] ;
defaultGateway6 = {
address = " 2 0 0 1 : 4 1 d 0 : 0 7 0 0 : 3 3 f f : 0 0 f f : 0 0 f f : 0 0 f f : 0 0 f f " ;
# address = "33ff::1";
# address = "2001::1";
interface = " e n o 1 " ;
} ;
firewall . allowPing = true ;
# minecraft proximity voice chat
2022-10-18 14:07:49 +02:00
firewall . allowedTCPPorts = [ 24454 25567 ] ;
firewall . allowedUDPPorts = [ 24454 25567 ] ;
2022-09-05 18:16:09 +02:00
} ;
# environment.etc."dhcpcd.duid".text = "d0:50:99:d4:04:68:d0:50:99:d4:04:68";
2022-01-11 18:44:40 +01:00
}