feat: add various Docker services and configurations for Minecraft, Plex, Sabnzbd, and more
This commit is contained in:
parent
a439ccc355
commit
e83ebe2d2c
@ -106,10 +106,10 @@ decrypt_folder() {
|
||||
done
|
||||
}
|
||||
|
||||
if [[ "$2" == "decrypt" ]]; then
|
||||
if [[ "$1" == "decrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Decrypting secrets..."
|
||||
decrypt_folder ~/dotfiles/secrets
|
||||
elif [[ "$2" == "encrypt" ]]; then
|
||||
elif [[ "$1" == "encrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Encrypting secrets..."
|
||||
encrypt_folder ~/dotfiles/secrets
|
||||
fi
|
||||
fi
|
||||
|
10
config/flatpaks/io.ente.auth.flatpakref
Normal file
10
config/flatpaks/io.ente.auth.flatpakref
Normal file
@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=io.ente.auth
|
||||
Branch=stable
|
||||
Title=io.ente.auth from flathub
|
||||
IsRuntime=false
|
||||
Url=https://dl.flathub.org/repo/
|
||||
SuggestRemoteName=flathub
|
||||
GPGKey=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
|
||||
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
@ -16,90 +16,97 @@
|
||||
else
|
||||
[ ./hosts/fallback.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# General packages
|
||||
git
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
# General packages
|
||||
git
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
pyenv
|
||||
act # GitHub Actions CLI
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
pyenv
|
||||
act # GitHub Actions CLI
|
||||
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
bottom # Modern top/htop
|
||||
glances # Advanced system monitoring tool
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
|
||||
# Editors
|
||||
neovim
|
||||
nano
|
||||
micro
|
||||
# Editors
|
||||
neovim
|
||||
nano
|
||||
micro
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
];
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
]
|
||||
++ (with pkgs-unstable; [ ]);
|
||||
}
|
||||
|
@ -47,6 +47,7 @@
|
||||
"code.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"spotify.desktop"
|
||||
"com.plexamp.Plexamp.desktop"
|
||||
"vesktop.desktop"
|
||||
"org.gnome.Geary.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
|
19
config/nixos/docker/arr-stack.nix
Normal file
19
config/nixos/docker/arr-stack.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/arr-stack/docker-compose.yml".source = ./arr-stack/docker-compose.yml;
|
||||
|
||||
systemd.services.arr-stack = {
|
||||
description = "arr-stack Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/arr-stack/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/arr-stack/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/arr-stack";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
97
config/nixos/docker/arr-stack/docker-compose.yml
Normal file
97
config/nixos/docker/arr-stack/docker-compose.yml
Normal file
@ -0,0 +1,97 @@
|
||||
name: arr-stack
|
||||
services:
|
||||
radarr:
|
||||
container_name: radarr
|
||||
image: lscr.io/linuxserver/radarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 7878:7878
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/radarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: "unless-stopped"
|
||||
|
||||
sonarr:
|
||||
image: linuxserver/sonarr:latest
|
||||
container_name: sonarr
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/sonarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
ports:
|
||||
- 8989:8989
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
|
||||
lidarr:
|
||||
image: linuxserver/lidarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 8686:8686
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/lidarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: unless-stopped
|
||||
|
||||
whisparr:
|
||||
image: ghcr.io/hotio/whisparr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 8386:8686
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/whisparr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: unless-stopped
|
||||
|
||||
prowlarr:
|
||||
container_name: prowlarr
|
||||
image: linuxserver/prowlarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/prowlarr-config:/config
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
ports:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
- LOG_HTML=${LOG_HTML:-false}
|
||||
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- "8191:8191"
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
|
||||
overseerr:
|
||||
image: lscr.io/linuxserver/overseerr:latest
|
||||
container_name: overseerr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/overseerr-config:/config
|
||||
ports:
|
||||
- 5555:5055
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
@ -1,12 +1,18 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./wireguard.nix
|
||||
./arr-stack.nix
|
||||
./duplicati.nix
|
||||
./factorio.nix
|
||||
./gitea.nix
|
||||
./golink.nix
|
||||
./immich.nix
|
||||
./minecraft.nix
|
||||
./plex.nix
|
||||
./sabnzbd.nix
|
||||
./satisfactory.nix
|
||||
./gitea.nix
|
||||
./stash.nix
|
||||
./torrent.nix
|
||||
./wireguard.nix
|
||||
];
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ services:
|
||||
- TZ=Europe/Amsterdam
|
||||
- CLI_ARGS=
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- /mnt:/source/mnt
|
||||
- ./data:/config
|
||||
- /mnt/20tb:/mnt
|
||||
- /etc/docker:/source/etc/docker
|
||||
ports:
|
||||
- 8200:8200
|
||||
|
@ -17,12 +17,13 @@ services:
|
||||
restart: "unless-stopped"
|
||||
environment:
|
||||
- "FACTORIO_VERSION=stable"
|
||||
- "RCON_PASS=458fc84534"
|
||||
ports:
|
||||
- "5080:80"
|
||||
- "34197:34197/udp"
|
||||
volumes:
|
||||
- "./fsm:/opt/fsm-data"
|
||||
- "./saves:/opt/factorio/saves"
|
||||
- "./mods:/opt/factorio/mods"
|
||||
- "./config:/opt/factorio/config"
|
||||
- "./mod_packs:/opt/fsm/mod_packs"
|
||||
- "./data/fsm:/opt/fsm-data"
|
||||
- "./data/saves:/opt/factorio/saves"
|
||||
- "./data/mods:/opt/factorio/mods"
|
||||
- "./data/config:/opt/factorio/config"
|
||||
- "./data/mod_packs:/opt/fsm/mod_packs"
|
||||
|
@ -6,7 +6,7 @@ services:
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 22, "protocol": "tcp"},
|
||||
{"port": 22, "protocol": "udp"}
|
||||
|
@ -3,7 +3,7 @@
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION=/mnt/8tb/Photos/immich-library
|
||||
# The location where your database files are stored
|
||||
DB_DATA_LOCATION=./postgres
|
||||
DB_DATA_LOCATION=./data/postgres
|
||||
|
||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
TZ=Europe/Amsterdam
|
||||
|
20
config/nixos/docker/minecraft.nix
Normal file
20
config/nixos/docker/minecraft.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/minecraft/docker-compose.yml".source = ./minecraft/docker-compose.yml;
|
||||
environment.etc."docker/minecraft/shell.sh".source = ./minecraft/shell.sh;
|
||||
|
||||
systemd.services.minecraft = {
|
||||
description = "minecraft Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/minecraft/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/minecraft/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/minecraft";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
77
config/nixos/docker/minecraft/docker-compose.yml
Normal file
77
config/nixos/docker/minecraft/docker-compose.yml
Normal file
@ -0,0 +1,77 @@
|
||||
name: minecraft
|
||||
services:
|
||||
upnp:
|
||||
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 25565, "protocol": "tcp"},
|
||||
{"port": 25565, "protocol": "udp"},
|
||||
{"port": 24454, "protocol": "udp"},
|
||||
{"port": 3456, "protocol": "tcp"},
|
||||
{"port": 19132, "protocol": "udp"}
|
||||
]
|
||||
|
||||
paper:
|
||||
image: itzg/minecraft-server
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
- "24454:24454/udp"
|
||||
- "19132:19132/udp"
|
||||
- "3456:8100/tcp"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: "paper"
|
||||
VERSION: 1.21.1
|
||||
DIFFICULTY: "hard"
|
||||
SERVER_NAME: "Paper Mostly Vanilla Server"
|
||||
MOTD: "Paper Server (Supports 1.20.x and newer!)"
|
||||
MEMORY: "32G"
|
||||
MAX_PLAYERS: 32
|
||||
VIEW_DISTANCE: 32
|
||||
SPAWN_MONSTERS: true
|
||||
SPAWN_ANIMALS: true
|
||||
ENFORCE_SECURE_PROFILE: false
|
||||
|
||||
PLUGINS: |
|
||||
https://cdn.modrinth.com/data/Jrmoreqs/versions/Ch2Vh0XL/AdvancedBackups-spigot-1.21-3.6.3.jar
|
||||
https://cdn.modrinth.com/data/9eGKb6K1/versions/tA5pALYl/voicechat-bukkit-2.5.25.jar
|
||||
https://cdn.modrinth.com/data/eBqOQXoA/versions/ndMZChDv/RecoveryTotem-1.0.1.jar
|
||||
https://cdn.modrinth.com/data/fALzjamp/versions/ytBhnGfO/Chunky-Bukkit-1.4.28.jar
|
||||
https://cdn.modrinth.com/data/P1OZGk5p/versions/ffAFJrjN/ViaVersion-5.1.1.jar
|
||||
https://cdn.modrinth.com/data/NpvuJQoq/versions/kwAAl5BS/ViaBackwards-5.1.1.jar
|
||||
https://cdn.modrinth.com/data/wKkoqHrH/versions/ohEXB7mE/Geyser-Spigot.jar
|
||||
https://cdn.modrinth.com/data/Vebnzrzj/versions/cfNN7sys/LuckPerms-Bukkit-5.4.145.jar
|
||||
https://cdn.modrinth.com/data/swbUV1cr/versions/DB0OeC5p/bluemap-5.4-spigot.jar
|
||||
|
||||
OPS: |
|
||||
StarDebris
|
||||
|
||||
WHITELIST: |
|
||||
StarDebris
|
||||
Audi358
|
||||
TechnikTake
|
||||
MsPremium
|
||||
Barny_8874
|
||||
Ricky_2405
|
||||
KinderKiller3000
|
||||
ScherzkeksMiner
|
||||
PauBau
|
||||
QuickWitPhil
|
||||
Draxonix
|
||||
Zakomi
|
||||
skintsoldier122
|
||||
Krank4ever
|
||||
Benjilami
|
||||
Barny_8847
|
||||
Destination456
|
||||
xKizu
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
2
config/nixos/docker/minecraft/shell.sh
Executable file
2
config/nixos/docker/minecraft/shell.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
docker compose exec paper rcon-cli $@
|
19
config/nixos/docker/plex.nix
Normal file
19
config/nixos/docker/plex.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/plex/docker-compose.yml".source = ./plex/docker-compose.yml;
|
||||
|
||||
systemd.services.plex = {
|
||||
description = "plex Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/plex/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/plex/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/plex";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
35
config/nixos/docker/plex/docker-compose.yml
Normal file
35
config/nixos/docker/plex/docker-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
services:
|
||||
plex:
|
||||
image: lscr.io/linuxserver/plex:latest
|
||||
container_name: plex
|
||||
network_mode: host
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
|
||||
environment:
|
||||
- VERSION=docker
|
||||
- PLEX_CLAIM=claim-sfTz4AWc_Uxhzfzz9fKS
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
volumes:
|
||||
- ./data/plex:/config
|
||||
- /mnt/20tb/Movies:/movies
|
||||
- /mnt/20tb/TV_Shows:/tvshows
|
||||
- /mnt/20tb/Music:/music
|
||||
restart: unless-stopped
|
||||
|
||||
tautulli:
|
||||
image: lscr.io/linuxserver/tautulli:latest
|
||||
container_name: tautulli
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/tautulli:/config
|
||||
ports:
|
||||
- 8181:8181
|
||||
restart: unless-stopped
|
19
config/nixos/docker/sabnzbd.nix
Normal file
19
config/nixos/docker/sabnzbd.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/sabnzbd/docker-compose.yml".source = ./sabnzbd/docker-compose.yml;
|
||||
|
||||
systemd.services.sabnzbd = {
|
||||
description = "sabnzbd Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/sabnzbd/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/sabnzbd/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/sabnzbd";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
12
config/nixos/docker/sabnzbd/docker-compose.yml
Normal file
12
config/nixos/docker/sabnzbd/docker-compose.yml
Normal file
@ -0,0 +1,12 @@
|
||||
services:
|
||||
sabnzbd:
|
||||
image: lscr.io/linuxserver/sabnzbd:latest
|
||||
container_name: sabnzbd
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data:/config
|
||||
- /mnt/20tb:/storage
|
||||
ports:
|
||||
- 7788:8080
|
||||
restart: unless-stopped
|
@ -32,8 +32,6 @@ services:
|
||||
- './data/certs/live/satisfactory.mvl.sh/privkey.pem:/config/gamefiles/FactoryGame/Certificates/private_key.pem'
|
||||
environment:
|
||||
- MAXPLAYERS=4
|
||||
- PGID=1000
|
||||
- PUID=1000
|
||||
- ROOTLESS=false
|
||||
- STEAMBETA=false
|
||||
healthcheck:
|
||||
|
19
config/nixos/docker/stash.nix
Normal file
19
config/nixos/docker/stash.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/stash/docker-compose.yml".source = ./stash/docker-compose.yml;
|
||||
|
||||
systemd.services.stash = {
|
||||
description = "stash Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/stash/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/stash/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/stash";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
28
config/nixos/docker/stash/docker-compose.yml
Normal file
28
config/nixos/docker/stash/docker-compose.yml
Normal file
@ -0,0 +1,28 @@
|
||||
services:
|
||||
stash:
|
||||
image: stashapp/stash:latest
|
||||
container_name: stash
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9999:9999"
|
||||
environment:
|
||||
- STASH_STASH=/data/
|
||||
- STASH_GENERATED=/generated/
|
||||
- STASH_METADATA=/metadata/
|
||||
- STASH_CACHE=/cache/
|
||||
- STASH_PORT=9999
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
## Keep configs, scrapers, and plugins here.
|
||||
- ./data/config:/root/.stash
|
||||
## Point this at your collection.
|
||||
- /mnt/20tb/Stash:/data
|
||||
## This is where your stash's metadata lives
|
||||
- ./data/metadata:/metadata
|
||||
## Any other cache content.
|
||||
- ./data/cache:/cache
|
||||
## Where to store binary blob data (scene covers, images)
|
||||
- ./data/blobs:/blobs
|
||||
## Where to store generated content (screenshots,previews,transcodes,sprites)
|
||||
- ./data/generated:/generated
|
19
config/nixos/docker/torrent.nix
Normal file
19
config/nixos/docker/torrent.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/torrent/docker-compose.yml".source = ./torrent/docker-compose.yml;
|
||||
|
||||
systemd.services.torrent = {
|
||||
description = "Torrent Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/torrent/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/torrent/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/torrent";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
0
config/nixos/docker/torrent/README.md
Normal file
0
config/nixos/docker/torrent/README.md
Normal file
35
config/nixos/docker/torrent/docker-compose.yml
Normal file
35
config/nixos/docker/torrent/docker-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
services:
|
||||
gluetun:
|
||||
image: qmcgaw/gluetun:latest
|
||||
container_name: gluetun
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- 6881:6881
|
||||
- 6881:6881/udp
|
||||
- 8085:8085
|
||||
volumes:
|
||||
- ./data/gluetun:/gluetun
|
||||
environment:
|
||||
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER}
|
||||
- OPENVPN_USER=${OPENVPN_USER}
|
||||
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD}
|
||||
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
|
||||
restart: always
|
||||
|
||||
qbittorrent:
|
||||
image: lscr.io/linuxserver/qbittorrent
|
||||
container_name: qbittorrent
|
||||
network_mode: "service:gluetun"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- WEBUI_PORT=8085
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- ./data/qbit:/config
|
||||
- /mnt/20tb:/storage
|
||||
depends_on:
|
||||
- gluetun
|
||||
restart: always
|
@ -19,7 +19,7 @@ services:
|
||||
environment:
|
||||
- PEERS=s24,pc,laptop
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./data:/config
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
sysctls:
|
||||
|
@ -6,5 +6,7 @@
|
||||
yubikey-manager
|
||||
trash-cli
|
||||
sqlite # Used for managing SQLite databases (Brave Settings etc.)
|
||||
xcp # Rust implementation of cp/mv command
|
||||
pandoc # Document converter (Markdown, HTML, PDF etc.) (Mostly used for static site generators)
|
||||
];
|
||||
}
|
||||
|
1
config/nixos/packages/server/mennovanleeuwen.nl/.gitignore
vendored
Normal file
1
config/nixos/packages/server/mennovanleeuwen.nl/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
dist/
|
12
config/nixos/packages/server/mennovanleeuwen.nl/Makefile
Normal file
12
config/nixos/packages/server/mennovanleeuwen.nl/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
build:
|
||||
cd ../; docker compose down;
|
||||
|
||||
rm -rf dist/
|
||||
mkdir dist
|
||||
|
||||
pandoc index.md --template=template.html --metadata title="Resume - Menno Cornelis van Leeuwen" -o dist/index.html
|
||||
pandoc index.md -o dist/index.pdf
|
||||
|
||||
mkdir dist/css/
|
||||
cp css/stylesheet.css dist/css/stylesheet.css
|
||||
cd ../; docker compose up -d;
|
1662
config/nixos/packages/server/mennovanleeuwen.nl/css/stylesheet.css
Normal file
1662
config/nixos/packages/server/mennovanleeuwen.nl/css/stylesheet.css
Normal file
File diff suppressed because it is too large
Load Diff
84
config/nixos/packages/server/mennovanleeuwen.nl/index.md
Normal file
84
config/nixos/packages/server/mennovanleeuwen.nl/index.md
Normal file
@ -0,0 +1,84 @@
|
||||
|
||||
# Menno Cornelis van Leeuwen
|
||||
|
||||
## Contact Information
|
||||
|
||||
**Location:** Reguliersdwarsstraat 12A, 1947 GG, Beverwijk
|
||||
|
||||
**Phone:** +31 (06) 499-351-79
|
||||
|
||||
**Email:** menno@vleeuwen.me
|
||||
|
||||
**LinkedIn:** [linkedin.com/in/menno-v-44477b176/](https://www.linkedin.com/in/menno-v-44477b176/)
|
||||
|
||||
**GitHub:** [github.com/vleeuwenmenno](https://github.com/vleeuwenmenno)
|
||||
|
||||
## Summary
|
||||
|
||||
An enthusiastic software engineer who likes to learn new things and discover new oppertunities. Experienced in programming in Flutter, Dart, PHP and C#.
|
||||
|
||||
Although my current language of choice is Dart with the Flutter framework but I am open to anything to see what is beyond my horizon.
|
||||
|
||||
Aside from that I am also experienced in building, maintaining and repairing computer systems and networks.
|
||||
|
||||
## Skills
|
||||
|
||||
- **Programming Languages:** C# .NET, Flutter, Dart, PHP, Laravel
|
||||
- **Tools & Technologies:** Git, Docker, Provider (Flutter), VS Code, Rider, PHP Storm
|
||||
- **Methodologies:** Agile/Scrum, Object-Oriented Programming
|
||||
|
||||
## Experience
|
||||
|
||||
### **Software Engineer | Sandwave / Your.Online (Formerly TWS) | Nov 2021 – Present**
|
||||
|
||||
- Worked in an agile/scrum environment, sparred with smaller teams.
|
||||
- Implemented complex authentication flows with modern security practices.
|
||||
- Guarded the dependencies
|
||||
|
||||
### **.NET / PHP Developer | Minty Media | Nov 2020 – Oct-2021**
|
||||
|
||||
- Implemented API bridges between Bol.com and WooCommerce
|
||||
- Setup CI/CD pipelines to streamline testing and deployment of applications
|
||||
- Started the development of a full hosting panel solution including DNS Editor, Domain purchasing, VPS Options etc.
|
||||
|
||||
### **Flutter Developer | Bots.io (Formerly RevenYOU) | Mar 2019 – Oct-2019**
|
||||
|
||||
- Spearheaded the development of the Bots.io App, with now more than 1M+ downloads.
|
||||
- Implemented the skeleton of the app and sparred with UI designers to make it the best it can be.
|
||||
|
||||
### **All Round/Repair Technician/Sales | Com Today | Jan 2014 – Mar 2019**
|
||||
|
||||
- Developed an in-house cashier program in PHP to track sales, expenses, stock and ongoing tasks.
|
||||
- Worked on repairing computers, laptops, phones, and anything in between.
|
||||
- Maintained stock, sold new systems to customers, and assisted customers with technical support.
|
||||
|
||||
## Education
|
||||
|
||||
|
||||
### **MBO 4 Application & Media developer | Nova College in Beverwijk | Aug 2015 – May 2019**
|
||||
|
||||
- Working with scrum/agile methodologies.
|
||||
- Improved my existing self-thought knowledge in Object-oriented programming and design patterns.
|
||||
- Using version control to manage code with Git and Subversion.
|
||||
|
||||
### **MBO 2 Occupation IT Employee | Nova College in Beverwijk | 2012 – 2014**
|
||||
|
||||
- Building, diagnosing and repairing computers.
|
||||
- Completed multiple Cisco and Aries courses related to networking and computer technologies.
|
||||
|
||||
## Hobbies
|
||||
|
||||
- Astrophotography & image processing
|
||||
- Beautiful photos of galaxies, nebula and star fields.
|
||||
- Take a look at [astrobin.com/users/vleeuwenmenno](https://www.astrobin.com/users/vleeuwenmenno/) for my best work.
|
||||
- Learning about cultures & languages while travelling
|
||||
- Trying to go outside my comfort zone and speak another language while learning about their cultures.
|
||||
- Creating endless programming test projects
|
||||
- That sometimes evolve into something more
|
||||
- FPV Freestyle Drones & Cinematic
|
||||
- Building, flying and of course crashing drones, usually in the summer.
|
||||
|
||||
|
||||
## References
|
||||
|
||||
Available upon request.
|
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Resume - Menno Cornelis van Leeuwen</title>
|
||||
<link rel="stylesheet" href="/css/stylesheet.css" />
|
||||
</head>
|
||||
|
||||
<body class="stackedit">
|
||||
<div class="stackedit__html">$body$</div>
|
||||
</body>
|
||||
</html>
|
13
config/nixos/packages/server/nginx.nix
Normal file
13
config/nixos/packages/server/nginx.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Resume/CV Website (Nginx)
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts."localhost:4203" = {
|
||||
root = "/home/menno/dotfiles/config/nixos/packages/server/mennovanleeuwen.nl";
|
||||
locations."/" = {
|
||||
index = "index.html";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
119
config/nixos/packages/server/traefik.nix
Normal file
119
config/nixos/packages/server/traefik.nix
Normal file
@ -0,0 +1,119 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.traefik = {
|
||||
enable = true;
|
||||
staticConfigOptions = {
|
||||
entryPoints = {
|
||||
web.address = ":80";
|
||||
websecure.address = ":443";
|
||||
};
|
||||
certificatesResolvers.letsencrypt.acme = {
|
||||
email = "menno@vleeuwen.me";
|
||||
storage = "/var/lib/traefik/acme.json";
|
||||
httpChallenge.entryPoint = "web";
|
||||
};
|
||||
};
|
||||
dynamicConfigOptions = {
|
||||
http = {
|
||||
# Plex Media Server
|
||||
routers.plex = {
|
||||
rule = "Host(`plex.vleeuwen.me`)";
|
||||
service = "plex";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.plex.loadBalancer.servers = [ { url = "http://127.0.0.1:32400"; } ];
|
||||
|
||||
# Tautulli (Plex Stats)
|
||||
routers.tautulli = {
|
||||
rule = "Host(`tautulli.vleeuwen.me`)";
|
||||
service = "tautulli";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.tautulli.loadBalancer.servers = [ { url = "http://127.0.0.1:8181"; } ];
|
||||
|
||||
# Jellyfin
|
||||
routers.jellyfin = {
|
||||
rule = "Host(`jellyfin.vleeuwen.me`)";
|
||||
service = "jellyfin";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.jellyfin.loadBalancer.servers = [ { url = "http://127.0.0.1:8096"; } ];
|
||||
|
||||
# Overseerr
|
||||
routers.overseerr = {
|
||||
rule = "Host(`overseerr.vleeuwen.me`)";
|
||||
service = "overseerr";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.overseerr.loadBalancer.servers = [ { url = "http://127.0.0.1:5555"; } ];
|
||||
|
||||
# Immich (Google Photos alternative)
|
||||
routers.immich = {
|
||||
rule = "Host(`photos.vleeuwen.me`)";
|
||||
service = "immich";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.immich.loadBalancer.servers = [ { url = "http://127.0.0.1:2283"; } ];
|
||||
|
||||
# Gitea Git Server
|
||||
routers.gitea = {
|
||||
rule = "Host(`git.mvl.sh`)";
|
||||
service = "gitea";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.gitea.loadBalancer.servers = [ { url = "http://127.0.0.1:3030"; } ];
|
||||
|
||||
# Home Assistant
|
||||
routers.homeassistant = {
|
||||
rule = "Host(`home.vleeuwen.me`)";
|
||||
service = "homeassistant";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.homeassistant.loadBalancer.servers = [ { url = "http://192.168.86.254:8123"; } ];
|
||||
|
||||
# InfluxDB for Home Assistant
|
||||
routers.influxdb = {
|
||||
rule = "Host(`influxdb.vleeuwen.me`)";
|
||||
service = "influxdb";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.influxdb.loadBalancer.servers = [ { url = "http://192.168.86.254:8086"; } ];
|
||||
|
||||
# Bluemap for Minecraft
|
||||
routers.bluemap = {
|
||||
rule = "Host(`map.mvl.sh`)";
|
||||
service = "bluemap";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.bluemap.loadBalancer.servers = [ { url = "http://127.0.0.1:3456"; } ];
|
||||
|
||||
# Factorio Server Manager
|
||||
routers.factorio = {
|
||||
rule = "Host(`fsm.mvl.sh`)";
|
||||
service = "factorio";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.factorio.loadBalancer.servers = [ { url = "http://127.0.0.1:5080"; } ];
|
||||
|
||||
# Resume/CV Website
|
||||
routers.personal-site = {
|
||||
rule = "Host(`mennovanleeuwen.nl`)";
|
||||
service = "personal-site";
|
||||
entryPoints = [ "websecure" ];
|
||||
tls.certResolver = "letsencrypt";
|
||||
};
|
||||
services.personal-site.loadBalancer.servers = [ { url = "http://127.0.0.1:4203"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user