Compare commits
121 Commits
09ad59d3c5
...
legacy
| Author | SHA1 | Date | |
|---|---|---|---|
|
18913b9120
|
|||
|
49d0088595
|
|||
|
c2adf02a55
|
|||
|
|
60bfa228e6 | ||
|
4e28e5cbb0
|
|||
|
68943b57ee
|
|||
|
733be4c7c8
|
|||
|
a0245017f7
|
|||
|
5803376722
|
|||
|
a3f2b7d759
|
|||
|
0747d2a784
|
|||
|
852c5ebef8
|
|||
|
783d1bac25
|
|||
|
325310c1ca
|
|||
|
1db4d0c49b
|
|||
|
4d20f2d7a6
|
|||
|
bbd3198976
|
|||
|
d48a3d3925
|
|||
|
c11c4e7482
|
|||
|
e06b93215f
|
|||
|
041307aaea
|
|||
|
1d0ef3d31e
|
|||
|
206cbfb564
|
|||
|
bc85c85592
|
|||
|
569e9698f7
|
|||
|
8eabebb9e8
|
|||
|
58bd63a4c7
|
|||
|
0db42dfcbc
|
|||
|
9236bf36f1
|
|||
|
4fab06b82b
|
|||
|
b5775fd29b
|
|||
|
135c08eda0
|
|||
|
938ab8e83b
|
|||
|
dfff773f7e
|
|||
|
df66535bf1
|
|||
|
b5e2bb933f
|
|||
|
f3e07bad16
|
|||
|
ff4f509d26
|
|||
|
1a5410ec9e
|
|||
|
8daace9b77
|
|||
|
65c42118e2
|
|||
|
ed0b0508bb
|
|||
|
a480aa5804
|
|||
|
70d953b18c
|
|||
|
e767549a57
|
|||
|
3d97f9b5d7
|
|||
|
f10988efba
|
|||
|
7a1d88476e
|
|||
|
530fcb10c3
|
|||
|
7d1bc11b4d
|
|||
|
554d9bf7cf
|
|||
|
8993a09549
|
|||
|
1a1067b0d1
|
|||
|
82c1d5d995
|
|||
|
2c04a6ef26
|
|||
|
8faab83651
|
|||
|
84019d2ba8
|
|||
|
20a4b6b529
|
|||
|
76e9cb0371
|
|||
|
56913879cb
|
|||
|
a4871ba423
|
|||
|
2c0e3c746b
|
|||
|
2cd1c77d60
|
|||
|
5cb3e5fe44
|
|||
|
c5fdac86b2
|
|||
|
32f4717c8a
|
|||
|
031688333e
|
|||
|
eabff41a56
|
|||
|
5c73283e5f
|
|||
|
0b523463f2
|
|||
|
70335cf637
|
|||
|
0d26f30261
|
|||
|
93b1aba78d
|
|||
|
994d0cdedd
|
|||
|
4a80da3995
|
|||
|
728ca39836
|
|||
|
c0ab3d1517
|
|||
|
45b90fc066
|
|||
|
d3938830b6
|
|||
|
96fd886f84
|
|||
|
212050a0ee
|
|||
|
5a0a4a96c5
|
|||
|
48fa653027
|
|||
|
4da793d37c
|
|||
|
df08e01d9e
|
|||
|
b89d71cc5e
|
|||
|
e67cfd7bfd
|
|||
|
b7b0f11033
|
|||
|
178bf9ebe4
|
|||
|
96ad469aed
|
|||
|
bb6545a45a
|
|||
|
b2768c334a
|
|||
|
1442638609
|
|||
|
2af2995b18
|
|||
|
8a656f0d95
|
|||
|
f289c12223
|
|||
|
fb9219719d
|
|||
|
aef9670f74
|
|||
|
9c85419950
|
|||
|
fbb83102c4
|
|||
|
9a395cfe07
|
|||
|
8fc75274cd
|
|||
|
29cc346709
|
|||
|
3cb256f6e5
|
|||
|
a242530770
|
|||
|
08a1372f9f
|
|||
|
014badfa99
|
|||
|
a068565066
|
|||
|
9b1ceddeb7
|
|||
|
4e169b6668
|
|||
|
7bf22e7023
|
|||
|
7e1a49c29e
|
|||
|
238661573c
|
|||
|
ff99e5e46f
|
|||
|
e6dfc2aba4
|
|||
|
3b7b414394
|
|||
|
c3f433cc3d
|
|||
|
e8ed942906
|
|||
|
45cdd53f0d
|
|||
|
974a0328fc
|
|||
|
7d64801ae2
|
12
.bashrc
12
.bashrc
@@ -69,6 +69,9 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$H
|
|||||||
# Allow unfree nixos
|
# Allow unfree nixos
|
||||||
export NIXPKGS_ALLOW_UNFREE=1
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
|
||||||
|
# Allow insecure nixpkgs
|
||||||
|
export NIXPKGS_ALLOW_INSECURE=1
|
||||||
|
|
||||||
# Set DOTF_HOSTNAME to the hostname from .hostname file
|
# Set DOTF_HOSTNAME to the hostname from .hostname file
|
||||||
# If this file doesn't exist, use mennos-unknown-hostname
|
# If this file doesn't exist, use mennos-unknown-hostname
|
||||||
export DOTF_HOSTNAME="mennos-unknown-hostname"
|
export DOTF_HOSTNAME="mennos-unknown-hostname"
|
||||||
@@ -81,11 +84,8 @@ if [ -d "/home/menno/Projects/Work" ]; then
|
|||||||
export TRADAWARE_DEVOPS=true
|
export TRADAWARE_DEVOPS=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Flutter Environment
|
# Flutter Web and other tools that require Chrome
|
||||||
if [ -d "$HOME/flutter" ]; then
|
export CHROME_EXECUTABLE=$(which brave)
|
||||||
export PATH="$PATH:$HOME/flutter/bin"
|
|
||||||
export CHROME_EXECUTABLE=/usr/bin/brave-browser
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 1Password Source Plugin (Assuming bash compatibility)
|
# 1Password Source Plugin (Assuming bash compatibility)
|
||||||
if [ -f /home/menno/.config/op/plugins.sh ]; then
|
if [ -f /home/menno/.config/op/plugins.sh ]; then
|
||||||
@@ -163,5 +163,5 @@ fi
|
|||||||
|
|
||||||
# Display a welcome message for interactive shells
|
# Display a welcome message for interactive shells
|
||||||
if [ -t 1 ]; then
|
if [ -t 1 ]; then
|
||||||
dotf term
|
dotf hello
|
||||||
fi
|
fi
|
||||||
|
|||||||
44
.github/workflows/nixfmt.yml
vendored
Normal file
44
.github/workflows/nixfmt.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
name: Nix Format Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-format:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v30
|
||||||
|
with:
|
||||||
|
extra_nix_config: |
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
|
||||||
|
- name: Install nixfmt
|
||||||
|
run: nix profile install nixpkgs#nixfmt-rfc-style
|
||||||
|
|
||||||
|
- name: Check Nix formatting
|
||||||
|
run: |
|
||||||
|
exit_code=0
|
||||||
|
while IFS= read -r file; do
|
||||||
|
if ! nixfmt "$file"; then
|
||||||
|
echo "Error: Failed to format $file"
|
||||||
|
exit_code=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done < <(find . -name "*.nix" -type f)
|
||||||
|
|
||||||
|
if [ $exit_code -eq 0 ]; then
|
||||||
|
if git diff --quiet; then
|
||||||
|
echo "All Nix files are properly formatted"
|
||||||
|
else
|
||||||
|
echo "Error: Some Nix files are not properly formatted"
|
||||||
|
git diff
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exit $exit_code
|
||||||
|
fi
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
apps=(
|
apps=(
|
||||||
spotify
|
"spotify"
|
||||||
whatsapp-for-linux
|
"whatsapp-for-linux"
|
||||||
telegram-desktop
|
"telegram-desktop"
|
||||||
vesktop
|
"vesktop"
|
||||||
trayscale
|
"trayscale"
|
||||||
1password
|
"1password"
|
||||||
fcitx5
|
"ulauncher-wrapped --no-window-shadow --hide-window"
|
||||||
ulauncher-wrapped
|
"polkit-agent"
|
||||||
|
"swaync"
|
||||||
|
"nm-applet"
|
||||||
|
"blueman-applet"
|
||||||
)
|
)
|
||||||
|
|
||||||
# check if screen has any dead sessions
|
# check if screen has any dead sessions
|
||||||
@@ -18,15 +21,17 @@ fi
|
|||||||
|
|
||||||
echo "Starting auto-start applications..."
|
echo "Starting auto-start applications..."
|
||||||
for app in "${apps[@]}"; do
|
for app in "${apps[@]}"; do
|
||||||
if [ -x "$(command -v $app)" ]; then
|
app_name=$(echo $app | awk '{print $1}')
|
||||||
if screen -list | grep -q $app; then
|
app_params=$(echo $app | cut -d' ' -f2-)
|
||||||
echo "$app is already running. Skipping..."
|
|
||||||
|
if [ -x "$(command -v $app_name)" ]; then
|
||||||
|
if screen -list | grep -q $app_name; then
|
||||||
|
echo "$app_name is already running. Skipping..."
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Starting $app..."
|
echo "Starting $app_name with parameters $app_params..."
|
||||||
screen -dmS $app $app
|
screen -dmS $app_name $app_name $app_params
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -92,27 +92,28 @@ symlinks() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
sys_packages_upgrade() {
|
|
||||||
printfe "%s\n" "cyan" "Running NixOS channel update..."
|
|
||||||
sudo nix-channel --update
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
|
|
||||||
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure
|
|
||||||
}
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Update packages
|
# Update packages
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
sys_packages() {
|
sys_packages() {
|
||||||
printfe "%s\n" "cyan" "Updating system packages..."
|
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
printfe "%s\n" "cyan" "Updating brew packages..."
|
||||||
brew update
|
brew update
|
||||||
brew upgrade
|
brew upgrade
|
||||||
brew cleanup
|
brew cleanup
|
||||||
else
|
else
|
||||||
if [ -x "$(command -v nixos-version)" ]; then
|
if [ -x "$(command -v nixos-version)" ]; then
|
||||||
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure
|
printfe "%s\n" "cyan" "Updating nix channels..."
|
||||||
|
printfe "%s" "cyan" "System channels: "
|
||||||
|
sudo -i nix-channel --update
|
||||||
|
|
||||||
|
printfe "%s" "cyan" "User channels: "
|
||||||
|
nix-channel --update
|
||||||
|
|
||||||
|
printfe "%s\n" "cyan" "Updating nixos flake..."
|
||||||
|
cd $HOME/dotfiles/config/nixos && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
|
||||||
|
|
||||||
# Exit if this failed
|
# Exit if this failed
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
@@ -121,8 +122,16 @@ sys_packages() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo nala upgrade -y
|
if [ -x "$(command -v apt)" ]; then
|
||||||
sudo nala autoremove -y --purge
|
printfe "%s\n" "cyan" "Updating apt packages..."
|
||||||
|
sudo nala upgrade -y
|
||||||
|
sudo nala autoremove -y --purge
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x "$(command -v yum)" ]; then
|
||||||
|
printfe "%s\n" "cyan" "Updating yum packages..."
|
||||||
|
sudo yum update -y
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,15 +169,8 @@ flatpakpkgs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
homemanager() {
|
homemanager() {
|
||||||
printfe "%s\n" "cyan" "Running Home Manager update..."
|
printfe "%s\n" "cyan" "Updating Home Manager flake..."
|
||||||
|
cd $HOME/dotfiles/config/home-manager && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
|
||||||
# Due to weirdness delete this file if it exists
|
|
||||||
if [ -f "$HOME/.config/mimeapps.list.backup" ]; then
|
|
||||||
echo "Removing mimeapps.list.backup"
|
|
||||||
rip "$HOME/.config/mimeapps.list.backup"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup --flake .#$DOTF_HOSTNAME --impure
|
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
@@ -188,9 +190,6 @@ if [ "$#" -eq 0 ]; then
|
|||||||
else
|
else
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
case $arg in
|
case $arg in
|
||||||
--nixos-upgrade)
|
|
||||||
sys_packages_upgrade
|
|
||||||
;;
|
|
||||||
--nixos|nixos|nix|nixos-rebuild)
|
--nixos|nixos|nix|nixos-rebuild)
|
||||||
sys_packages
|
sys_packages
|
||||||
;;
|
;;
|
||||||
|
|||||||
72
bin/actions/upgrade.sh
Executable file
72
bin/actions/upgrade.sh
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||||
|
|
||||||
|
help() {
|
||||||
|
printfe "%s\n" "green" "Usage: upgrade.sh [options]"
|
||||||
|
printfe "%s\n" "green" "Options:"
|
||||||
|
printfe "%s\n" "green" " --ha, -H Upgrade Home Manager packages."
|
||||||
|
printfe "%s\n" "green" " --nix, -X Upgrade NixOS packages."
|
||||||
|
printfe "%s\n" "green" " --full-speed, -F Upgrade packages and use all available cores for compilation. (Default: 8 cores)"
|
||||||
|
printfe "%s\n" "green" " --help, -h Display this help message."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--ha|-H) RUN_HA=true ;;
|
||||||
|
--nix|-X) RUN_NIX=true ;;
|
||||||
|
--full-speed|-F) FULL_SPEED=true ;;
|
||||||
|
--help|-h) help ;;
|
||||||
|
*) echo "Unknown parameter passed: $1";
|
||||||
|
help ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "$RUN_HA" && -z "$RUN_NIX" ]]; then
|
||||||
|
RUN_HA=true
|
||||||
|
RUN_NIX=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if --full-speed flag is passed, otherwise use --cores 8 -j 1
|
||||||
|
if [[ "$FULL_SPEED" == true ]]; then
|
||||||
|
CORES=$(nproc)
|
||||||
|
JOBS=$(nproc)
|
||||||
|
else
|
||||||
|
CORES=8
|
||||||
|
JOBS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
printfe "%s\n" "cyan" "Limiting to $CORES cores with $JOBS jobs."
|
||||||
|
|
||||||
|
if [[ "$RUN_NIX" == true ]]; then
|
||||||
|
if command -v nixos-rebuild &> /dev/null; then
|
||||||
|
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
|
||||||
|
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
|
||||||
|
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
printfe "%s\n" "red" "Failed to upgrade NixOS packages."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
printfe "%s\n" "red" "Skipping nixos-rebuild, NixOS is not installed."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$RUN_HA" == true ]]; then
|
||||||
|
if command -v home-manager &> /dev/null; then
|
||||||
|
printfe "%s\n" "cyan" "Cleaning old backup files..."
|
||||||
|
rm -rf $HOME/.config/mimeapps.list.backup
|
||||||
|
|
||||||
|
printfe "%s\n" "cyan" "Upgrading Home Manager packages..."
|
||||||
|
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager --extra-experimental-features nix-command --extra-experimental-features flakes switch -b backup --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
|
||||||
|
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
printfe "%s\n" "red" "Failed to upgrade Home Manager packages."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
printfe "%s\n" "red" "Home Manager is not installed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
16
bin/dotf
16
bin/dotf
@@ -28,8 +28,17 @@ update() {
|
|||||||
"$update_script" $@
|
"$update_script" $@
|
||||||
}
|
}
|
||||||
|
|
||||||
term() {
|
upgrade() {
|
||||||
local term_script="$DOTFILES_BIN/actions/term.sh"
|
local upgrade_script="$DOTFILES_BIN/actions/upgrade.sh"
|
||||||
|
if [[ ! -x "$upgrade_script" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Upgrade script not found or not executable"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$upgrade_script" $@
|
||||||
|
}
|
||||||
|
|
||||||
|
hello() {
|
||||||
|
local term_script="$DOTFILES_BIN/actions/hello.sh"
|
||||||
if [[ ! -x "$term_script" ]]; then
|
if [[ ! -x "$term_script" ]]; then
|
||||||
printfe "%s\n" "red" "Error: Terminal script not found or not executable"
|
printfe "%s\n" "red" "Error: Terminal script not found or not executable"
|
||||||
return 1
|
return 1
|
||||||
@@ -114,8 +123,9 @@ main() {
|
|||||||
# Parse commands
|
# Parse commands
|
||||||
case "${1:-help}" in
|
case "${1:-help}" in
|
||||||
update) shift; update "$@" ;;
|
update) shift; update "$@" ;;
|
||||||
|
upgrade) shift; upgrade "$@" ;;
|
||||||
help) shift; help "$@" ;;
|
help) shift; help "$@" ;;
|
||||||
term) shift; term "$@" ;;
|
hello) shift; hello "$@" ;;
|
||||||
secrets) shift; secrets "$@" ;;
|
secrets) shift; secrets "$@" ;;
|
||||||
auto-start) shift; auto_start "$@" ;;
|
auto-start) shift; auto_start "$@" ;;
|
||||||
*) help ;;
|
*) help ;;
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
|
||||||
Usage: dotf [OPTIONS] [ARGS]
|
Usage: dotf [OPTIONS] [ARGS]
|
||||||
|
|
||||||
update: Pull latest changes, and update symlinks and configurations.
|
update: Pull latest changes, and update symlinks and configurations
|
||||||
|
Also pulls latest nix channels and updates flakes to latest versions.
|
||||||
|
upgrade: Runs switch, flake variants for nix switch with upgrade and home-manager.
|
||||||
secrets: Encrypt and decrypt secrets.
|
secrets: Encrypt and decrypt secrets.
|
||||||
auto-start: Start a set of pre-defined applications.
|
auto-start: Start a set of pre-defined applications.
|
||||||
term: Shows the welcome message for the terminal.
|
hello: Shows the welcome message for the terminal.
|
||||||
help: Shows this help message
|
help: Shows this help message
|
||||||
|
|
||||||
@@ -1 +1 @@
|
|||||||
/nix/store/4jqpwdf5q8rh58a9vk80r4naaz9aic6z-home-manager-files/.config/autostart/ulauncher.desktop
|
/nix/store/b21375qzs3rbmhz9wrvyab7jljis7jc3-home-manager-files/.config/autostart/ulauncher.desktop
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Categories=Network;InstantMessaging;Chat
|
|
||||||
Exec=vesktop %U
|
|
||||||
GenericName=Internet Messenger
|
|
||||||
Icon=vesktop
|
|
||||||
Keywords=discord;vencord;electron;chat
|
|
||||||
Name=Vesktop
|
|
||||||
StartupWMClass=Vesktop
|
|
||||||
Type=Application
|
|
||||||
Version=1.4
|
|
||||||
@@ -13,8 +13,11 @@ config:
|
|||||||
# Gitconfig
|
# Gitconfig
|
||||||
gitconfig:
|
gitconfig:
|
||||||
sources:
|
sources:
|
||||||
macos: ~/dotfiles/config/gitconfig.macos
|
mennos-server: ~/dotfiles/config/gitconfig.mennos-server
|
||||||
linux: ~/dotfiles/config/gitconfig.linux
|
mennos-desktop: ~/dotfiles/config/gitconfig.linux
|
||||||
|
mennos-gamingpc: ~/dotfiles/config/gitconfig.linux
|
||||||
|
mennos-laptop: ~/dotfiles/config/gitconfig.linux
|
||||||
|
homeserver-pc: ~/dotfiles/config/gitconfig.linux
|
||||||
wsl: ~/dotfiles/config/gitconfig.wsl
|
wsl: ~/dotfiles/config/gitconfig.wsl
|
||||||
target: ~/.gitconfig
|
target: ~/.gitconfig
|
||||||
|
|
||||||
@@ -32,11 +35,6 @@ config:
|
|||||||
vscode:
|
vscode:
|
||||||
source: ~/dotfiles/vscode/settings.json
|
source: ~/dotfiles/vscode/settings.json
|
||||||
target: ~/.config/Code/User/settings.json
|
target: ~/.config/Code/User/settings.json
|
||||||
|
|
||||||
# Autostart
|
|
||||||
autostart:
|
|
||||||
source: ~/dotfiles/config/autostart
|
|
||||||
target: ~/.config/autostart
|
|
||||||
|
|
||||||
# SSH config
|
# SSH config
|
||||||
ssh:
|
ssh:
|
||||||
@@ -56,12 +54,16 @@ config:
|
|||||||
target: ~/.ssh/authorized_keys
|
target: ~/.ssh/authorized_keys
|
||||||
chmod: 600
|
chmod: 600
|
||||||
|
|
||||||
|
# Ghostty config
|
||||||
|
ghostty:
|
||||||
|
source: ~/dotfiles/config/ghostty.conf
|
||||||
|
target: ~/.config/ghostty/config
|
||||||
|
|
||||||
# Starship config
|
# Starship config
|
||||||
starship:
|
starship:
|
||||||
source: ~/dotfiles/config/starship.toml
|
source: ~/dotfiles/config/starship.toml
|
||||||
target: ~/.config/starship.toml
|
target: ~/.config/starship.toml
|
||||||
|
|
||||||
|
|
||||||
# Packages to install
|
# Packages to install
|
||||||
# Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system!
|
# Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system!
|
||||||
# Likewise with flatpak remotes, apt repositories, etc.
|
# Likewise with flatpak remotes, apt repositories, etc.
|
||||||
|
|||||||
10
config/flatpaks/com.ktechpit.whatsie.flatpakref
Normal file
10
config/flatpaks/com.ktechpit.whatsie.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=com.ktechpit.whatsie
|
||||||
|
Branch=stable
|
||||||
|
Title=com.ktechpit.whatsie 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
|
||||||
|
|
||||||
10
config/flatpaks/org.fedoraproject.MediaWriter.flatpakref
Normal file
10
config/flatpaks/org.fedoraproject.MediaWriter.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=org.fedoraproject.MediaWriter
|
||||||
|
Branch=stable
|
||||||
|
Title=org.fedoraproject.MediaWriter 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
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[Flatpak Ref]
|
[Flatpak Ref]
|
||||||
Name=net.openra.OpenRA
|
Name=tv.plex.PlexDesktop
|
||||||
Branch=stable
|
Branch=stable
|
||||||
Title=net.openra.OpenRA from flathub
|
Title=tv.plex.PlexDesktop from flathub
|
||||||
IsRuntime=false
|
IsRuntime=false
|
||||||
Url=https://dl.flathub.org/repo/
|
Url=https://dl.flathub.org/repo/
|
||||||
SuggestRemoteName=flathub
|
SuggestRemoteName=flathub
|
||||||
25
config/ghostty.conf
Normal file
25
config/ghostty.conf
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Theme
|
||||||
|
# Try new themes with: `ghostty +list-themes`
|
||||||
|
theme = dark:Adwaita Dark,light:Adwaita
|
||||||
|
|
||||||
|
# Keybinds
|
||||||
|
keybind = ctrl+shift+k=clear_screen
|
||||||
|
|
||||||
|
# Font size keybinds
|
||||||
|
keybind = ctrl+zero=reset_font_size
|
||||||
|
keybind = ctrl+kp_add=increase_font_size:1
|
||||||
|
keybind = ctrl+kp_subtract=decrease_font_size:1
|
||||||
|
|
||||||
|
# Keybinds for moving windows
|
||||||
|
keybind = alt+right=next_tab
|
||||||
|
keybind = alt+left=previous_tab
|
||||||
|
keybind = shift+alt+left=move_tab:-1
|
||||||
|
keybind = shift+alt+right=move_tab:1
|
||||||
|
|
||||||
|
# Window keybinds
|
||||||
|
keybind = ctrl+q=close_window
|
||||||
|
keybind = ctrl+shift+Q=close_all_windows
|
||||||
|
|
||||||
|
|
||||||
|
# Shell integration
|
||||||
|
shell-integration = bash
|
||||||
@@ -6,9 +6,6 @@
|
|||||||
[gpg]
|
[gpg]
|
||||||
format = ssh
|
format = ssh
|
||||||
|
|
||||||
[gpg "ssh"]
|
|
||||||
program = "op-ssh-sign"
|
|
||||||
|
|
||||||
[commit]
|
[commit]
|
||||||
gpgsign = true
|
gpgsign = true
|
||||||
|
|
||||||
|
|||||||
18
config/gitconfig.mennos-server
Normal file
18
config/gitconfig.mennos-server
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[user]
|
||||||
|
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||||
|
email = menno@vleeuwen.me
|
||||||
|
name = Menno van Leeuwen
|
||||||
|
|
||||||
|
[color]
|
||||||
|
ui = true
|
||||||
|
[push]
|
||||||
|
autoSetupRemote = true
|
||||||
|
[pull]
|
||||||
|
rebase = false
|
||||||
|
[filter "lfs"]
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
183
config/home-manager/flake.lock
generated
183
config/home-manager/flake.lock
generated
@@ -1,5 +1,62 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ghostty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"zig": "zig",
|
||||||
|
"zig2nix": "zig2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740954062,
|
||||||
|
"narHash": "sha256-VVsSwi1sTVCL0fijNHqw1hv/546acgxxrTAChl/K254=",
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"rev": "ee8ae196ee0fad3824c7ae9eac947f2128b4ae4f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -7,43 +64,75 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726989464,
|
"lastModified": 1739757849,
|
||||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730327045,
|
"lastModified": 1740932899,
|
||||||
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738255539,
|
||||||
|
"narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "release-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730531603,
|
"lastModified": 1738136902,
|
||||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1741010256,
|
||||||
|
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -55,9 +144,79 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
"nixpkgs-unstable": "nixpkgs-unstable_2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zig": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"ghostty"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs-stable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738239110,
|
||||||
|
"narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=",
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"rev": "1a8fb6f3a04724519436355564b95fce5e272504",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zig2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs-stable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738263917,
|
||||||
|
"narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=",
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zig2nix",
|
||||||
|
"rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jcollie",
|
||||||
|
"ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||||
|
"repo": "zig2nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
description = "menno's dotfiles";
|
description = "menno's dotfiles";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
ghostty.url = "github:ghostty-org/ghostty";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-unstable,
|
nixpkgs-unstable,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
ghostty,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
@@ -31,11 +33,15 @@
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"mennos-gamingpc" = home-manager.lib.homeManagerConfiguration {
|
"mennos-desktop" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit pkgs pkgs-unstable;
|
inherit
|
||||||
|
pkgs
|
||||||
|
pkgs-unstable
|
||||||
|
ghostty
|
||||||
|
;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
hostname = "mennos-gamingpc";
|
hostname = "mennos-gamingpc";
|
||||||
};
|
};
|
||||||
@@ -45,7 +51,10 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit pkgs pkgs-unstable;
|
inherit
|
||||||
|
pkgs
|
||||||
|
pkgs-unstable
|
||||||
|
;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
hostname = "mennos-server";
|
hostname = "mennos-server";
|
||||||
};
|
};
|
||||||
@@ -55,7 +64,11 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit pkgs pkgs-unstable;
|
inherit
|
||||||
|
pkgs
|
||||||
|
pkgs-unstable
|
||||||
|
ghostty
|
||||||
|
;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
hostname = "mennos-laptop";
|
hostname = "mennos-laptop";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,9 +30,9 @@
|
|||||||
home = {
|
home = {
|
||||||
username = "menno";
|
username = "menno";
|
||||||
homeDirectory = "/home/menno";
|
homeDirectory = "/home/menno";
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.11";
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks
|
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs-unstable, ... }:
|
{ pkgs-unstable, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs-unstable; [ ollama ];
|
home.packages = with pkgs-unstable; [ ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs-unstable, ... }:
|
{ pkgs-unstable, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs-unstable; [ ollama-rocm ];
|
home.packages = with pkgs-unstable; [ ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs-unstable, ... }:
|
{ pkgs-unstable, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs-unstable; [ ollama-cuda ];
|
home.packages = with pkgs-unstable; [ ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# Ollama will be installed in the hosts/ configuration depending on what the host is of this system
|
|
||||||
# If none is registered, the fallback will be used which installs ollama without GPU acceleration support.
|
|
||||||
systemd.user.services.ollama = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Ollama Service";
|
|
||||||
After = [ "network.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
# This resolves to for example: /home/menno/.nix-profile/bin/ollama
|
|
||||||
ExecStart = "${config.home.profileDirectory}/bin/ollama serve";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = "10";
|
|
||||||
};
|
|
||||||
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "default.target" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -21,11 +21,13 @@
|
|||||||
[
|
[
|
||||||
# General packages
|
# General packages
|
||||||
git
|
git
|
||||||
|
onefetch
|
||||||
gnupg
|
gnupg
|
||||||
gh
|
gh
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
wget
|
wget
|
||||||
fastfetch
|
fastfetch
|
||||||
|
gpredict
|
||||||
|
|
||||||
# Package management
|
# Package management
|
||||||
pipx
|
pipx
|
||||||
@@ -66,6 +68,7 @@
|
|||||||
jq # JSON processor
|
jq # JSON processor
|
||||||
yq # YAML processor
|
yq # YAML processor
|
||||||
xsv # CSV processor
|
xsv # CSV processor
|
||||||
|
ncdu # Disk usage analyzer
|
||||||
|
|
||||||
# System monitoring and process management
|
# System monitoring and process management
|
||||||
procs # Modern ps
|
procs # Modern ps
|
||||||
@@ -97,6 +100,9 @@
|
|||||||
|
|
||||||
# Editors
|
# Editors
|
||||||
neovim
|
neovim
|
||||||
|
## Neovim plugins
|
||||||
|
vimPlugins.LazyVim
|
||||||
|
|
||||||
nano
|
nano
|
||||||
micro
|
micro
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [ ];
|
home.packages = with pkgs; [ ddrescue ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
{ id = "fihnjjcciajhdojfnbdddfaoknhalnja"; } # I don't care about cookies
|
{ id = "fihnjjcciajhdojfnbdddfaoknhalnja"; } # I don't care about cookies
|
||||||
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # gnome shell integration
|
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # gnome shell integration
|
||||||
{ id = "eadndfjplgieldjbigjakmdgkmoaaaoc"; } # xdebug helper
|
{ id = "eadndfjplgieldjbigjakmdgkmoaaaoc"; } # xdebug helper
|
||||||
|
{ id = "hlgbcneanomplepojfcnclggenpcoldo"; } # perplexity ai companion
|
||||||
];
|
];
|
||||||
commandLineArgs = [ ];
|
commandLineArgs = [ ];
|
||||||
};
|
};
|
||||||
|
|||||||
6
config/home-manager/packages/workstation/ghostty.nix
Normal file
6
config/home-manager/packages/workstation/ghostty.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{ ghostty, pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
ghostty.packages.${pkgs.system}.default
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -3,18 +3,24 @@
|
|||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# GUI Application
|
# GUI Application
|
||||||
## Utilities
|
## Utilities
|
||||||
pkgs-unstable.mission-center # Task Manager like Windows 11
|
mission-center # Task Manager like Windows 11
|
||||||
gnome.gnome-tweaks
|
gnome-tweaks
|
||||||
pinta # Paint.NET alternative
|
pinta # Paint.NET alternative
|
||||||
bottles # Wine manager
|
bottles # Wine manager
|
||||||
trayscale # Tray icon for Tailscale
|
trayscale # Tray icon for Tailscale
|
||||||
spacedrive # Virtual filesystem manager
|
spacedrive # Virtual filesystem manager
|
||||||
smile # Emoji picker
|
smile # Emoji picker
|
||||||
gnome-frog # OCR tool
|
gnome-frog # OCR tool
|
||||||
gnome.gnome-boxes # Virtual machine manager
|
gnome-boxes # Virtual machine manager
|
||||||
deja-dup # Backup tool
|
deja-dup # Backup tool
|
||||||
sqlitebrowser # SQLite database manager
|
sqlitebrowser # SQLite database manager
|
||||||
wmctrl # Window manager control (Used in ulauncher)
|
wmctrl # Window manager control (Used in ulauncher)
|
||||||
|
gparted # Used to nuke Windows off of my system
|
||||||
|
rpi-imager # Raspberry Pi OS image writer
|
||||||
|
pavucontrol # PulseAudio volume control
|
||||||
|
qrencode # qr code generator
|
||||||
|
grimblast # Screenshot tool
|
||||||
|
ptyxis # Terminal emulator
|
||||||
|
|
||||||
## Chat Apps
|
## Chat Apps
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
|
|||||||
7
config/home-manager/packages/workstation/steam.nix
Normal file
7
config/home-manager/packages/workstation/steam.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, pkgs-unstable, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
steamcmd
|
||||||
|
steam-tui
|
||||||
|
];
|
||||||
|
}
|
||||||
12
config/home-manager/packages/workstation/thunderbird.nix
Normal file
12
config/home-manager/packages/workstation/thunderbird.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
profiles = {
|
||||||
|
default = {
|
||||||
|
isDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -16,7 +16,7 @@ let
|
|||||||
render-on-screen = "mouse-pointer-monitor";
|
render-on-screen = "mouse-pointer-monitor";
|
||||||
show-indicator-icon = true;
|
show-indicator-icon = true;
|
||||||
show-recent-apps = "4";
|
show-recent-apps = "4";
|
||||||
terminal-command = "kgx";
|
terminal-command = "ghostty";
|
||||||
theme-name = "dark";
|
theme-name = "dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -26,7 +26,8 @@ let
|
|||||||
"name" = "Google Search";
|
"name" = "Google Search";
|
||||||
"keyword" = "g";
|
"keyword" = "g";
|
||||||
"cmd" = "https://google.com/search?q=%s";
|
"cmd" = "https://google.com/search?q=%s";
|
||||||
"icon" = "/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/google-search-icon.png";
|
"icon" =
|
||||||
|
"/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/google-search-icon.png";
|
||||||
"is_default_search" = true;
|
"is_default_search" = true;
|
||||||
"run_without_argument" = false;
|
"run_without_argument" = false;
|
||||||
"added" = 0;
|
"added" = 0;
|
||||||
@@ -36,7 +37,8 @@ let
|
|||||||
"name" = "Stack Overflow";
|
"name" = "Stack Overflow";
|
||||||
"keyword" = "so";
|
"keyword" = "so";
|
||||||
"cmd" = "https://stackoverflow.com/search?q=%s";
|
"cmd" = "https://stackoverflow.com/search?q=%s";
|
||||||
"icon" = "/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/stackoverflow-icon.svg";
|
"icon" =
|
||||||
|
"/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/stackoverflow-icon.svg";
|
||||||
"is_default_search" = true;
|
"is_default_search" = true;
|
||||||
"run_without_argument" = false;
|
"run_without_argument" = false;
|
||||||
"added" = 0;
|
"added" = 0;
|
||||||
@@ -108,6 +110,7 @@ in
|
|||||||
# https://ext.ulauncher.io/-/github-tchar-ulauncher-albert-calculate-anything
|
# https://ext.ulauncher.io/-/github-tchar-ulauncher-albert-calculate-anything
|
||||||
# https://ext.ulauncher.io/-/github-isacikgoz-ukill
|
# https://ext.ulauncher.io/-/github-isacikgoz-ukill
|
||||||
# https://ext.ulauncher.io/-/github-iboyperson-ulauncher-system
|
# https://ext.ulauncher.io/-/github-iboyperson-ulauncher-system
|
||||||
|
# https://github.com/IgorVaryvoda/ulauncher-perplexity
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: prev: { ulauncher = prev.ulauncher.override { python3 = pythonWithPackages; }; })
|
(final: prev: { ulauncher = prev.ulauncher.override { python3 = pythonWithPackages; }; })
|
||||||
@@ -134,7 +137,8 @@ in
|
|||||||
xdg.dataFile."applications/ulauncher.desktop".text = desktopEntry;
|
xdg.dataFile."applications/ulauncher.desktop".text = desktopEntry;
|
||||||
|
|
||||||
# Enable autostart for Ulauncher
|
# Enable autostart for Ulauncher
|
||||||
xdg.configFile."autostart/ulauncher.desktop".source = "${pkgs.ulauncher}/share/applications/ulauncher.desktop";
|
xdg.configFile."autostart/ulauncher.desktop".source =
|
||||||
|
"${pkgs.ulauncher}/share/applications/ulauncher.desktop";
|
||||||
|
|
||||||
# Overwrite ulauncher settings and shortcuts
|
# Overwrite ulauncher settings and shortcuts
|
||||||
home.activation.ulauncher-config = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
home.activation.ulauncher-config = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
|
|||||||
@@ -35,6 +35,14 @@
|
|||||||
dconf = {
|
dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
# Set nemo as the default file manager and disable desktop icons since this is handled by nemo
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
show-desktop-icons = false;
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/applications/file-manager" = {
|
||||||
|
exec = "nemo";
|
||||||
|
};
|
||||||
|
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
color-scheme = "prefer-dark";
|
color-scheme = "prefer-dark";
|
||||||
};
|
};
|
||||||
@@ -50,7 +58,7 @@
|
|||||||
"com.plexamp.Plexamp.desktop"
|
"com.plexamp.Plexamp.desktop"
|
||||||
"vesktop.desktop"
|
"vesktop.desktop"
|
||||||
"org.gnome.Geary.desktop"
|
"org.gnome.Geary.desktop"
|
||||||
"org.gnome.Nautilus.desktop"
|
"nemo.desktop"
|
||||||
"org.gnome.Console.desktop"
|
"org.gnome.Console.desktop"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -58,7 +66,7 @@
|
|||||||
# GNOME Terminal settings
|
# GNOME Terminal settings
|
||||||
"org/gnome/Console" = {
|
"org/gnome/Console" = {
|
||||||
use-system-font = false;
|
use-system-font = false;
|
||||||
custom-font = "Hack Nerd Font 14";
|
custom-font = "Hack Nerd Font 13";
|
||||||
theme = "night";
|
theme = "night";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||||
binding = "<Ctrl><Alt>t";
|
binding = "<Ctrl><Alt>t";
|
||||||
command = "kgx";
|
command = "ptyxis --new-window"; # ghostty doesn't work on Fedora atm
|
||||||
name = "terminal";
|
name = "terminal";
|
||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{ config, pkgs, ... }: { }
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
# OpenSSH server
|
# Install xanmod kernel
|
||||||
|
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ports = [ 400 ];
|
ports = [ 400 ];
|
||||||
@@ -16,21 +18,29 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Open ports in the firewall
|
networking = {
|
||||||
networking.firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [
|
|
||||||
400 # SSH
|
|
||||||
80 # HTTP
|
|
||||||
443 # HTTPS
|
|
||||||
22 # Git over SSH
|
|
||||||
32400 # Plex
|
|
||||||
|
|
||||||
7788 # Sabnzbd
|
# External ports
|
||||||
8085 # Qbittorrent
|
allowedTCPPorts = [
|
||||||
];
|
## Portforwarded
|
||||||
allowedUDPPorts = [
|
80 # HTTP
|
||||||
51820 # WireGuard
|
443 # HTTPS
|
||||||
];
|
22 # Git over SSH
|
||||||
|
25565 # Minecraft
|
||||||
|
24454 # Minecraft (Voice Chat)
|
||||||
|
32400 # Plex
|
||||||
|
51820 # WireGuard
|
||||||
|
|
||||||
|
## Internal services / TailScale
|
||||||
|
400 # SSH
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedUDPPorts = [
|
||||||
|
51820 # WireGuard
|
||||||
|
25565 # Minecraft
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
@@ -7,7 +7,19 @@
|
|||||||
services.xserver.displayManager.gdm.enable = true;
|
services.xserver.displayManager.gdm.enable = true;
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
services.xserver.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ gnome3.gnome-session ];
|
# Enable the Cosmic Desktop Environment.
|
||||||
|
# services.desktopManager.cosmic.enable = true;
|
||||||
|
# services.displayManager.cosmic-greeter.enable = true;
|
||||||
|
|
||||||
|
# Install xanmod kernel
|
||||||
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnome-session
|
||||||
|
xdg-desktop-portal
|
||||||
|
xdg-desktop-portal-gnome
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
@@ -25,16 +37,6 @@
|
|||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Japanese input
|
|
||||||
i18n.inputMethod = {
|
|
||||||
enabled = "fcitx5";
|
|
||||||
fcitx5.addons = with pkgs; [
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-gtk
|
|
||||||
];
|
|
||||||
ibus.engines = with pkgs.ibus-engines; [ mozc ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Open ports in the firewall
|
# Open ports in the firewall
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -66,5 +66,5 @@
|
|||||||
# this value at the release version of the first install of this system.
|
# this value at the release version of the first install of this system.
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
system.stateVersion = "24.05"; # Did you read the comment?
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
name: arr-stack
|
|
||||||
services:
|
|
||||||
radarr:
|
|
||||||
container_name: radarr
|
|
||||||
image: lscr.io/linuxserver/radarr:latest
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
ports:
|
|
||||||
- 7878:7878
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
volumes:
|
|
||||||
- ./data/radarr-config:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
restart: "unless-stopped"
|
|
||||||
|
|
||||||
sonarr:
|
|
||||||
image: linuxserver/sonarr:latest
|
|
||||||
container_name: sonarr
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
volumes:
|
|
||||||
- ./data/sonarr-config:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
ports:
|
|
||||||
- 8989:8989
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
lidarr:
|
|
||||||
image: linuxserver/lidarr:latest
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
ports:
|
|
||||||
- 8686:8686
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
volumes:
|
|
||||||
- ./data/lidarr-config:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
whisparr:
|
|
||||||
image: ghcr.io/hotio/whisparr:latest
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
ports:
|
|
||||||
- 8386:8686
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
volumes:
|
|
||||||
- ./data/whisparr-config:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
prowlarr:
|
|
||||||
container_name: prowlarr
|
|
||||||
image: linuxserver/prowlarr:latest
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- 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:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- 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,17 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
imports = [ ];
|
|
||||||
}
|
|
||||||
# TODO: Import all the package modules, disabled for testing one by one.
|
|
||||||
# { config, pkgs, ... }:
|
|
||||||
|
|
||||||
# let
|
|
||||||
# files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
|
||||||
|
|
||||||
# # Import all other .nix files as modules
|
|
||||||
# moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
|
||||||
# in
|
|
||||||
# {
|
|
||||||
# # Import all the package modules
|
|
||||||
# imports = moduleFiles;
|
|
||||||
# }
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/duplicati/docker-compose.yml".source = ./duplicati/docker-compose.yml;
|
|
||||||
|
|
||||||
systemd.services.duplicati = {
|
|
||||||
description = "Duplicati Backup Server Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/duplicati";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
name: duplicati
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
image: lscr.io/linuxserver/duplicati:latest
|
|
||||||
environment:
|
|
||||||
- PUID=1
|
|
||||||
- PGID=1
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
- CLI_ARGS=
|
|
||||||
volumes:
|
|
||||||
- ./config:/config
|
|
||||||
- /mnt:/mnt
|
|
||||||
ports:
|
|
||||||
- 8200:8200
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
image: ghcr.io/vleeuwenmenno/duplicati-discord-notification:main
|
|
||||||
ports:
|
|
||||||
- 5334:5000
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/factorio/docker-compose.yml".source = ./factorio/docker-compose.yml;
|
|
||||||
|
|
||||||
systemd.services.factorio = {
|
|
||||||
description = "Factorio Server Manager Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/factorio";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
name: factorio
|
|
||||||
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": 34197, "protocol": "udp"}
|
|
||||||
]
|
|
||||||
|
|
||||||
server-manager:
|
|
||||||
image: "ofsm/ofsm:latest"
|
|
||||||
container_name: "factorio-server-manager"
|
|
||||||
restart: "unless-stopped"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- "FACTORIO_VERSION=stable"
|
|
||||||
- "RCON_PASS=458fc84534"
|
|
||||||
ports:
|
|
||||||
- "5080:80"
|
|
||||||
- "34197:34197/udp"
|
|
||||||
volumes:
|
|
||||||
- "./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"
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/gitea/docker-compose.yml".source = ./gitea/docker-compose.yml;
|
|
||||||
environment.etc."docker/gitea/act-runner-config.yaml".source = ./gitea/act-runner-config.yaml;
|
|
||||||
|
|
||||||
systemd.services.gitea = {
|
|
||||||
description = "Gitea Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/gitea/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/gitea/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/gitea";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
# Example configuration file, it's safe to copy this as the default config file without any modification.
|
|
||||||
|
|
||||||
# You don't have to copy this file to your instance,
|
|
||||||
# just run `./act_runner generate-config > config.yaml` to generate a config file.
|
|
||||||
|
|
||||||
log:
|
|
||||||
# The level of logging, can be trace, debug, info, warn, error, fatal
|
|
||||||
level: info
|
|
||||||
|
|
||||||
runner:
|
|
||||||
# Where to store the registration result.
|
|
||||||
file: .runner
|
|
||||||
# Execute how many tasks concurrently at the same time.
|
|
||||||
capacity: 1
|
|
||||||
# Extra environment variables to run jobs.
|
|
||||||
envs:
|
|
||||||
A_TEST_ENV_NAME_1: a_test_env_value_1
|
|
||||||
A_TEST_ENV_NAME_2: a_test_env_value_2
|
|
||||||
# Extra environment variables to run jobs from a file.
|
|
||||||
# It will be ignored if it's empty or the file doesn't exist.
|
|
||||||
env_file: .env
|
|
||||||
# The timeout for a job to be finished.
|
|
||||||
# Please note that the Gitea instance also has a timeout (3h by default) for the job.
|
|
||||||
# So the job could be stopped by the Gitea instance if it's timeout is shorter than this.
|
|
||||||
timeout: 3h
|
|
||||||
# Whether skip verifying the TLS certificate of the Gitea instance.
|
|
||||||
insecure: false
|
|
||||||
# The timeout for fetching the job from the Gitea instance.
|
|
||||||
fetch_timeout: 5s
|
|
||||||
# The interval for fetching the job from the Gitea instance.
|
|
||||||
fetch_interval: 2s
|
|
||||||
# The labels of a runner are used to determine which jobs the runner can run, and how to run them.
|
|
||||||
# Like: "macos-arm64:host" or "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"
|
|
||||||
# Find more images provided by Gitea at https://gitea.com/gitea/runner-images .
|
|
||||||
# If it's empty when registering, it will ask for inputting labels.
|
|
||||||
# If it's empty when execute `daemon`, will use labels in `.runner` file.
|
|
||||||
labels:
|
|
||||||
- "ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"
|
|
||||||
- "ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04"
|
|
||||||
- "ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04"
|
|
||||||
|
|
||||||
cache:
|
|
||||||
# Enable cache server to use actions/cache.
|
|
||||||
enabled: true
|
|
||||||
# The directory to store the cache data.
|
|
||||||
# If it's empty, the cache data will be stored in $HOME/.cache/actcache.
|
|
||||||
dir: ""
|
|
||||||
# The host of the cache server.
|
|
||||||
# It's not for the address to listen, but the address to connect from job containers.
|
|
||||||
# So 0.0.0.0 is a bad choice, leave it empty to detect automatically.
|
|
||||||
host: ""
|
|
||||||
# The port of the cache server.
|
|
||||||
# 0 means to use a random available port.
|
|
||||||
port: 0
|
|
||||||
# The external cache server URL. Valid only when enable is true.
|
|
||||||
# If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself.
|
|
||||||
# The URL should generally end with "/".
|
|
||||||
external_server: ""
|
|
||||||
|
|
||||||
container:
|
|
||||||
# Specifies the network to which the container will connect.
|
|
||||||
# Could be host, bridge or the name of a custom network.
|
|
||||||
# If it's empty, act_runner will create a network automatically.
|
|
||||||
network: ""
|
|
||||||
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
|
|
||||||
privileged: false
|
|
||||||
# And other options to be used when the container is started (eg, --add-host=my.gitea.url:host-gateway).
|
|
||||||
options:
|
|
||||||
# The parent directory of a job's working directory.
|
|
||||||
# NOTE: There is no need to add the first '/' of the path as act_runner will add it automatically.
|
|
||||||
# If the path starts with '/', the '/' will be trimmed.
|
|
||||||
# For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir
|
|
||||||
# If it's empty, /workspace will be used.
|
|
||||||
workdir_parent:
|
|
||||||
# Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob
|
|
||||||
# You can specify multiple volumes. If the sequence is empty, no volumes can be mounted.
|
|
||||||
# For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to:
|
|
||||||
# valid_volumes:
|
|
||||||
# - data
|
|
||||||
# - /src/*.json
|
|
||||||
# If you want to allow any volume, please use the following configuration:
|
|
||||||
# valid_volumes:
|
|
||||||
# - '**'
|
|
||||||
valid_volumes: []
|
|
||||||
# overrides the docker client host with the specified one.
|
|
||||||
# If it's empty, act_runner will find an available docker host automatically.
|
|
||||||
# If it's "-", act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers.
|
|
||||||
# If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work.
|
|
||||||
docker_host: ""
|
|
||||||
# Pull docker image(s) even if already present
|
|
||||||
force_pull: true
|
|
||||||
# Rebuild docker image(s) even if already present
|
|
||||||
force_rebuild: false
|
|
||||||
|
|
||||||
host:
|
|
||||||
# The parent directory of a job's working directory.
|
|
||||||
# If it's empty, $HOME/.cache/act/ will be used.
|
|
||||||
workdir_parent:
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
name: gittea
|
|
||||||
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": 22, "protocol": "tcp"},
|
|
||||||
{"port": 22, "protocol": "udp"}
|
|
||||||
]
|
|
||||||
|
|
||||||
server:
|
|
||||||
image: gitea/gitea:latest
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/gitea/gitea:/data
|
|
||||||
- /etc/timezone:/etc/timezone:ro
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
ports:
|
|
||||||
- "3030:3000"
|
|
||||||
- "22:22"
|
|
||||||
networks:
|
|
||||||
- net
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
image: postgres:15-alpine
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- POSTGRES_USER=gitea
|
|
||||||
- POSTGRES_PASSWORD=gitea
|
|
||||||
- POSTGRES_DB=gitea
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/gitea/postgres:/var/lib/postgresql/data
|
|
||||||
networks:
|
|
||||||
- net
|
|
||||||
|
|
||||||
act_runner:
|
|
||||||
image: gitea/act_runner:latest
|
|
||||||
volumes:
|
|
||||||
- ./act-runner-config.yaml:/config.yaml
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- GITEA_INSTANCE_URL=https://git.mvl.sh
|
|
||||||
- GITEA_RUNNER_REGISTRATION_TOKEN=lIlte9POlu7aBanhCh3Xm1SPfohrexyfxqs9Yiqz
|
|
||||||
- GITEA_RUNNER_NAME=act-worker
|
|
||||||
- CONFIG_FILE=/config.yaml
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
net:
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.etc."docker/golink/docker-compose.yml".source = ./golink/docker-compose.yml;
|
|
||||||
environment.etc."docker/golink/.env".source = ./golink/.env;
|
|
||||||
|
|
||||||
systemd.services.golink = {
|
|
||||||
description = "GoLink Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/golink";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
TS_AUTHKEY=
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
name: golink
|
|
||||||
services:
|
|
||||||
server:
|
|
||||||
image: ghcr.io/tailscale/golink:main
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TS_AUTHKEY=${TS_AUTHKEY}
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/golink:/home/nonroot
|
|
||||||
restart: "unless-stopped"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/immich/docker-compose.yml".source = ./immich/docker-compose.yml;
|
|
||||||
environment.etc."docker/immich/.env".source = ./immich/.env;
|
|
||||||
environment.etc."docker/immich/hwaccel.ml.yml".source = ./immich/hwaccel.ml.yml;
|
|
||||||
environment.etc."docker/immich/hwaccel.transcoding.yml".source = ./immich/hwaccel.transcoding.yml;
|
|
||||||
|
|
||||||
systemd.services.immich = {
|
|
||||||
description = "Immich Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/immich/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/immich/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/immich";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
|
||||||
|
|
||||||
# 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=./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
|
|
||||||
|
|
||||||
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
|
|
||||||
IMMICH_VERSION=release
|
|
||||||
|
|
||||||
# Connection secret for postgres. You should change it to a random password
|
|
||||||
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
|
||||||
DB_PASSWORD=postgres
|
|
||||||
|
|
||||||
# The values below this line do not need to be changed
|
|
||||||
###################################################################################
|
|
||||||
DB_USERNAME=postgres
|
|
||||||
DB_DATABASE_NAME=immich
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
name: immich
|
|
||||||
services:
|
|
||||||
server:
|
|
||||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
|
||||||
extends:
|
|
||||||
file: hwaccel.transcoding.yml
|
|
||||||
service: nvenc # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
|
||||||
volumes:
|
|
||||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
ports:
|
|
||||||
- '2283:2283'
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
- database
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
restart: always
|
|
||||||
healthcheck:
|
|
||||||
disable: false
|
|
||||||
|
|
||||||
machine-learning:
|
|
||||||
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-cuda
|
|
||||||
extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
|
||||||
file: hwaccel.ml.yml
|
|
||||||
service: cuda # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
|
||||||
volumes:
|
|
||||||
- model-cache:/cache
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
restart: always
|
|
||||||
healthcheck:
|
|
||||||
disable: false
|
|
||||||
|
|
||||||
redis:
|
|
||||||
container_name: immich_redis
|
|
||||||
image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
|
|
||||||
healthcheck:
|
|
||||||
test: redis-cli ping || exit 1
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
database:
|
|
||||||
container_name: immich_postgres
|
|
||||||
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
|
|
||||||
environment:
|
|
||||||
PUID: 1000
|
|
||||||
PGID: 1000
|
|
||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
|
||||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
|
||||||
volumes:
|
|
||||||
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
|
||||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
|
||||||
healthcheck:
|
|
||||||
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
|
||||||
interval: 5m
|
|
||||||
start_interval: 30s
|
|
||||||
start_period: 5m
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
'postgres',
|
|
||||||
'-c',
|
|
||||||
'shared_preload_libraries=vectors.so',
|
|
||||||
'-c',
|
|
||||||
'search_path="$$user", public, vectors',
|
|
||||||
'-c',
|
|
||||||
'logging_collector=on',
|
|
||||||
'-c',
|
|
||||||
'max_wal_size=2GB',
|
|
||||||
'-c',
|
|
||||||
'shared_buffers=512MB',
|
|
||||||
'-c',
|
|
||||||
'wal_compression=on',
|
|
||||||
]
|
|
||||||
restart: always
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
model-cache:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Configurations for hardware-accelerated machine learning
|
|
||||||
|
|
||||||
# If using Unraid or another platform that doesn't allow multiple Compose files,
|
|
||||||
# you can inline the config for a backend by copying its contents
|
|
||||||
# into the immich-machine-learning service in the docker-compose.yml file.
|
|
||||||
|
|
||||||
# See https://immich.app/docs/features/ml-hardware-acceleration for info on usage.
|
|
||||||
|
|
||||||
services:
|
|
||||||
armnn:
|
|
||||||
devices:
|
|
||||||
- /dev/mali0:/dev/mali0
|
|
||||||
volumes:
|
|
||||||
- /lib/firmware/mali_csffw.bin:/lib/firmware/mali_csffw.bin:ro # Mali firmware for your chipset (not always required depending on the driver)
|
|
||||||
- /usr/lib/libmali.so:/usr/lib/libmali.so:ro # Mali driver for your chipset (always required)
|
|
||||||
|
|
||||||
cpu: {}
|
|
||||||
|
|
||||||
cuda:
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
reservations:
|
|
||||||
devices:
|
|
||||||
- driver: nvidia
|
|
||||||
count: 1
|
|
||||||
capabilities:
|
|
||||||
- gpu
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
# Configurations for hardware-accelerated transcoding
|
|
||||||
|
|
||||||
# If using Unraid or another platform that doesn't allow multiple Compose files,
|
|
||||||
# you can inline the config for a backend by copying its contents
|
|
||||||
# into the immich-microservices service in the docker-compose.yml file.
|
|
||||||
|
|
||||||
# See https://immich.app/docs/features/hardware-transcoding for more info on using hardware transcoding.
|
|
||||||
|
|
||||||
services:
|
|
||||||
cpu: {}
|
|
||||||
|
|
||||||
nvenc:
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
reservations:
|
|
||||||
devices:
|
|
||||||
- driver: nvidia
|
|
||||||
count: 1
|
|
||||||
capabilities:
|
|
||||||
- gpu
|
|
||||||
- compute
|
|
||||||
- video
|
|
||||||
|
|
||||||
rkmpp:
|
|
||||||
security_opt: # enables full access to /sys and /proc, still far better than privileged: true
|
|
||||||
- systempaths=unconfined
|
|
||||||
- apparmor=unconfined
|
|
||||||
group_add:
|
|
||||||
- video
|
|
||||||
devices:
|
|
||||||
- /dev/rga:/dev/rga
|
|
||||||
- /dev/dri:/dev/dri
|
|
||||||
- /dev/dma_heap:/dev/dma_heap
|
|
||||||
- /dev/mpp_service:/dev/mpp_service
|
|
||||||
#- /dev/mali0:/dev/mali0 # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
|
||||||
volumes:
|
|
||||||
#- /etc/OpenCL:/etc/OpenCL:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
|
||||||
#- /usr/lib/aarch64-linux-gnu/libmali.so.1:/usr/lib/aarch64-linux-gnu/libmali.so.1:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
|
||||||
|
|
||||||
vaapi:
|
|
||||||
devices:
|
|
||||||
- /dev/dri:/dev/dri
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
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:
|
|
||||||
PUID: 1000
|
|
||||||
PGID: 1000
|
|
||||||
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:
|
|
||||||
- /mnt/services/minecraft:/data
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
docker compose exec paper rcon-cli $@
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.etc."docker/nginx-proxy-manager/docker-compose.yml".source = ./nginx-proxy-manager/docker-compose.yml;
|
|
||||||
|
|
||||||
systemd.services.nginx-proxy-manager = {
|
|
||||||
description = "nginx-proxy-manager Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/nginx-proxy-manager/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/nginx-proxy-manager/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/nginx-proxy-manager";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
name: nginx-proxy-manager
|
|
||||||
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": 80, "protocol": "tcp"},
|
|
||||||
{"port": 443, "protocol": "tcp"}
|
|
||||||
]
|
|
||||||
|
|
||||||
server:
|
|
||||||
image: 'jc21/nginx-proxy-manager:latest'
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- '80:80'
|
|
||||||
- '81:81'
|
|
||||||
- '443:443'
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/proxy/nginx-proxy-manager/data:/data
|
|
||||||
- /mnt/services/proxy/nginx-proxy-manager/data/letsencrypt:/etc/letsencrypt
|
|
||||||
- /mnt/services/proxy/nginx/snippets:/snippets:ro
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
|
|
||||||
authelia:
|
|
||||||
container_name: authelia
|
|
||||||
image: authelia/authelia
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- 9091:9091
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/proxy/authelia/config:/config:ro
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
|
|
||||||
redis:
|
|
||||||
image: redis:alpine
|
|
||||||
container_name: redis
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/proxy/redis:/data
|
|
||||||
expose:
|
|
||||||
- 6379
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- POSTGRES_DB=authelia
|
|
||||||
- POSTGRES_USER=authelia
|
|
||||||
- POSTGRES_PASSWORD=authelia
|
|
||||||
image: postgres:15.4-alpine
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/proxy/postgres:/var/lib/postgresql/data
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
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:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- VERSION=docker
|
|
||||||
- PLEX_CLAIM=claim-sfTz4AWc_Uxhzfzz9fKS
|
|
||||||
- NVIDIA_VISIBLE_DEVICES=all
|
|
||||||
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/plex/plex:/config
|
|
||||||
- /mnt/movies:/movies
|
|
||||||
- /mnt/tvshows:/tvshows
|
|
||||||
- /mnt/music:/music
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
tautulli:
|
|
||||||
image: lscr.io/linuxserver/tautulli:latest
|
|
||||||
container_name: tautulli
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/plex/tautulli:/config
|
|
||||||
ports:
|
|
||||||
- 8181:8181
|
|
||||||
restart: unless-stopped
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
services:
|
|
||||||
sabnzbd:
|
|
||||||
image: lscr.io/linuxserver/sabnzbd:latest
|
|
||||||
container_name: sabnzbd
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Europe/Amsterdam
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/sabnzbd:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
ports:
|
|
||||||
- 7788:8080
|
|
||||||
restart: unless-stopped
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/satisfactory/docker-compose.yml".source = ./satisfactory/docker-compose.yml;
|
|
||||||
|
|
||||||
systemd.services.satisfactory = {
|
|
||||||
description = "Satisfactory Game Server Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/satisfactory";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
name: satisfactory
|
|
||||||
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": 7777, "protocol": "udp"},
|
|
||||||
{"port": 15000, "protocol": "udp"},
|
|
||||||
{"port": 15777, "protocol": "udp"},
|
|
||||||
{"port": 27015, "protocol": "tcp"},
|
|
||||||
{"port": 27015, "protocol": "udp"},
|
|
||||||
{"port": 27031, "protocol": "udp"},
|
|
||||||
{"port": 27032, "protocol": "udp"},
|
|
||||||
{"port": 27033, "protocol": "udp"},
|
|
||||||
{"port": 27034, "protocol": "udp"},
|
|
||||||
{"port": 27035, "protocol": "udp"},
|
|
||||||
{"port": 27036, "protocol": "tcp"},
|
|
||||||
{"port": 27036, "protocol": "udp"}
|
|
||||||
]
|
|
||||||
|
|
||||||
server:
|
|
||||||
hostname: 'satisfactory-server'
|
|
||||||
image: 'wolveix/satisfactory-server:latest'
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- './data/config:/config'
|
|
||||||
- './data/certs/live/satisfactory.mvl.sh/fullchain.pem:/config/gamefiles/FactoryGame/Certificates/cert_chain.pem'
|
|
||||||
- './data/certs/live/satisfactory.mvl.sh/privkey.pem:/config/gamefiles/FactoryGame/Certificates/private_key.pem'
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- MAXPLAYERS=4
|
|
||||||
- ROOTLESS=false
|
|
||||||
- STEAMBETA=false
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "bash", "/healthcheck.sh" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 120s
|
|
||||||
depends_on:
|
|
||||||
certbot:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
reservations:
|
|
||||||
memory: 4G
|
|
||||||
limits:
|
|
||||||
memory: 8G
|
|
||||||
network_mode: 'host'
|
|
||||||
|
|
||||||
certbot:
|
|
||||||
image: certbot/certbot
|
|
||||||
command: certonly --standalone --non-interactive --agree-tos -m menno@vleeuwen.me -d satisfactory.mvl.sh
|
|
||||||
# Uncomment this when requesting a new certificate, make sure to disable nginx-proxy-manager first since this conflicts with port 80
|
|
||||||
# ports:
|
|
||||||
# - '80:80/tcp'
|
|
||||||
volumes:
|
|
||||||
- ./data/certs:/etc/letsencrypt
|
|
||||||
environment:
|
|
||||||
- CERTBOT_MAIL=menno@vleeuwen.me
|
|
||||||
- DOMAIN=satisfactory.mvl.sh
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
services:
|
|
||||||
stash:
|
|
||||||
image: stashapp/stash:latest
|
|
||||||
container_name: stash
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "9999:9999"
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- 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.
|
|
||||||
- /mnt/services/stash/config:/root/.stash
|
|
||||||
## Point this at your collection.
|
|
||||||
- /mnt/stash:/data
|
|
||||||
## This is where your stash's metadata lives
|
|
||||||
- /mnt/services/stash/metadata:/metadata
|
|
||||||
## Any other cache content.
|
|
||||||
- /mnt/services/stash/cache:/cache
|
|
||||||
## Where to store binary blob data (scene covers, images)
|
|
||||||
- /mnt/services/stash/blobs:/blobs
|
|
||||||
## Where to store generated content (screenshots,previews,transcodes,sprites)
|
|
||||||
- /mnt/services/stash/generated:/generated
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
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:
|
|
||||||
- /mnt/services/torrent/gluetun:/gluetun
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- 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"
|
|
||||||
- /mnt/services/torrent/qbit-config:/config
|
|
||||||
- /mnt:/storage
|
|
||||||
depends_on:
|
|
||||||
- gluetun
|
|
||||||
restart: always
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.etc."docker/wireguard/docker-compose.yml".source = ./wireguard/docker-compose.yml;
|
|
||||||
|
|
||||||
systemd.services.wireguard = {
|
|
||||||
description = "Wireguard Docker Compose Service";
|
|
||||||
after = [ "network-online.target" ];
|
|
||||||
wants = [ "network-online.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/wireguard/docker-compose.yml up";
|
|
||||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/wireguard/docker-compose.yml down";
|
|
||||||
WorkingDirectory = "/etc/docker/wireguard";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = 10;
|
|
||||||
};
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
name: wireguard
|
|
||||||
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": 51820, "protocol": "udp"}
|
|
||||||
]
|
|
||||||
|
|
||||||
server:
|
|
||||||
image: lscr.io/linuxserver/wireguard:latest
|
|
||||||
container_name: wireguard
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN
|
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- PEERS=s24,pc,laptop
|
|
||||||
volumes:
|
|
||||||
- /mnt/services/wireguard/data:/config
|
|
||||||
ports:
|
|
||||||
- 51820:51820/udp
|
|
||||||
sysctls:
|
|
||||||
- net.ipv4.conf.all.src_valid_mark=1
|
|
||||||
restart: unless-stopped
|
|
||||||
93
config/nixos/flake.lock
generated
93
config/nixos/flake.lock
generated
@@ -1,28 +1,80 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1717312683,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||||
"owner": "nixos",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "flake-compat",
|
||||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-24.05",
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-cosmic": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1741055622,
|
||||||
|
"narHash": "sha256-z1y6MSfJ9pntwJ7YCkjNyGnqvYMHMnB9kH3v5Z/g9vQ=",
|
||||||
|
"owner": "lilyinstarlight",
|
||||||
|
"repo": "nixos-cosmic",
|
||||||
|
"rev": "f3f91440dfd18518445d9ab757cf3e540c7fd6ab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lilyinstarlight",
|
||||||
|
"repo": "nixos-cosmic",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740828860,
|
||||||
|
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740865531,
|
||||||
|
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730531603,
|
"lastModified": 1741010256,
|
||||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -32,9 +84,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740932899,
|
||||||
|
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs",
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
description = "menno's dotfiles";
|
description = "menno's dotfiles";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-unstable,
|
nixpkgs-unstable,
|
||||||
|
nixos-cosmic,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
@@ -35,7 +37,10 @@
|
|||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit pkgs-unstable;
|
inherit
|
||||||
|
pkgs-unstable
|
||||||
|
nixos-cosmic
|
||||||
|
;
|
||||||
isWorkstation = true;
|
isWorkstation = true;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
};
|
};
|
||||||
@@ -49,7 +54,10 @@
|
|||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit pkgs-unstable;
|
inherit
|
||||||
|
pkgs-unstable
|
||||||
|
nixos-cosmic
|
||||||
|
;
|
||||||
isWorkstation = true;
|
isWorkstation = true;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,6 +8,13 @@
|
|||||||
{
|
{
|
||||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||||
networking.hostName = "mennos-gamingpc";
|
networking.hostName = "mennos-gamingpc";
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/ac5a70cf-4b12-4d02-b5b4-a6eddf4c40b5";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
networking.interfaces.enp8s0.wakeOnLan = {
|
networking.interfaces.enp8s0.wakeOnLan = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
@@ -17,28 +24,34 @@
|
|||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
# Enable Vulkan support for AMD graphics cards
|
# Enable Vulkan support for AMD graphics cards
|
||||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
||||||
|
|
||||||
# Enable OpenGL
|
# Swap file (Desktop PC has 48GB of RAM so 8GB swap should be enough)
|
||||||
hardware.opengl = {
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 8192;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable graphics
|
||||||
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
|
|
||||||
# Enable the latest AMDGPU drivers
|
# Enable the latest AMDGPU drivers
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
amdvlk
|
amdvlk
|
||||||
rocm-opencl-icd
|
rocmPackages.clr
|
||||||
rocm-opencl-runtime
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Add ROCm packages
|
# Add ROCm packages and nvtop
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
rocmPackages.rocm-smi
|
rocmPackages.rocm-smi
|
||||||
rocmPackages.clr
|
rocmPackages.clr
|
||||||
rocmPackages.rocm-core
|
rocmPackages.rocm-core
|
||||||
rocmPackages.hipcc
|
rocmPackages.hipcc
|
||||||
rocmPackages.rocm-device-libs
|
rocmPackages.rocm-device-libs
|
||||||
|
nvtopPackages.amd
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,44 +9,76 @@
|
|||||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||||
networking.hostName = "mennos-laptop";
|
networking.hostName = "mennos-laptop";
|
||||||
|
|
||||||
# Bootloader.
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/1356cd09-5c55-45b5-8b06-6aadc84cee37";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Bootloader
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
# Enable OpenGL
|
# Enable graphics
|
||||||
hardware.opengl.enable = true;
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
amdvlk
|
||||||
|
rocmPackages.clr
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
# Swap file (Laptop has 32GB of RAM so 8GB swap should be enough)
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 8192;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Load AMD and NVIDIA drivers for Xorg and Wayland
|
||||||
|
services.xserver.videoDrivers = [
|
||||||
|
"nvidia"
|
||||||
|
"amdgpu"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Monitoring tools
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nvtopPackages.nvidia
|
||||||
|
nvtopPackages.amd
|
||||||
|
glxinfo
|
||||||
|
vulkan-tools
|
||||||
|
];
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
# Modesetting is required.
|
# Enable modesetting
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
# Power management configuration
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
powerManagement = {
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
enable = true;
|
||||||
# of just the bare essentials.
|
finegrained = false; # Disabled as it requires offload mode
|
||||||
powerManagement.enable = false;
|
};
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Prime configuration for hybrid graphics
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
prime = {
|
||||||
powerManagement.finegrained = false;
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# AMD GPU as primary
|
||||||
|
amdgpuBusId = "PCI:5:0:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
open = false;
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.sg_display=0"
|
||||||
|
"nvidia-drm.modeset=1"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,13 @@
|
|||||||
/etc/nixos/hardware-configuration.nix
|
/etc/nixos/hardware-configuration.nix
|
||||||
./mennos-server/zfs.nix
|
./mennos-server/zfs.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/dd3fa13c-a1bd-4dc9-bcb4-aee17c7f12d1";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostName = "mennos-server";
|
networking.hostName = "mennos-server";
|
||||||
networking.hostId = "64519940";
|
networking.hostId = "64519940";
|
||||||
|
|
||||||
@@ -17,15 +24,17 @@
|
|||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
# Load nvidia driver for Xorg and Wayland
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
# Enable oepngl and 32-bit support
|
# Enable graphics
|
||||||
hardware.opengl = {
|
hardware.graphics.enable = true;
|
||||||
enable = true;
|
|
||||||
driSupport = true;
|
# nvtop, a system monitor for GPUs
|
||||||
driSupport32Bit = true;
|
environment.systemPackages = with pkgs; [ nvtopPackages.nvidia ];
|
||||||
};
|
|
||||||
|
|
||||||
# Enable NVIDIA Docker support
|
# Enable NVIDIA Docker support
|
||||||
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
|
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
|
||||||
@@ -34,34 +43,22 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Swap file (Laptop has 64GB of RAM so 16GB swap should be enough)
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swapfile";
|
||||||
|
size = 16384;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
open = false;
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Use the latest driver from the unstable channel
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ let
|
|||||||
chmod 755 /mnt/services/proxy
|
chmod 755 /mnt/services/proxy
|
||||||
chmod 755 /mnt/services/static-websites
|
chmod 755 /mnt/services/static-websites
|
||||||
|
|
||||||
|
chown menno:users /mnt/backups
|
||||||
|
chown menno:users /mnt/backups/photos
|
||||||
|
chown menno:users /mnt/backups/services
|
||||||
|
chmod 775 /mnt/backups
|
||||||
|
chmod 775 /mnt/backups/photos
|
||||||
|
chmod 775 /mnt/backups/services
|
||||||
|
|
||||||
# Set permissions for other mount points
|
# Set permissions for other mount points
|
||||||
for dir in /mnt/{ai,astrophotography,audiobooks,downloads,ISOs,movies,music,old_backups,photos,stash,tvshows,VMs}; do
|
for dir in /mnt/{ai,astrophotography,audiobooks,downloads,ISOs,movies,music,old_backups,photos,stash,tvshows,VMs}; do
|
||||||
chmod 755 "$dir"
|
chmod 755 "$dir"
|
||||||
@@ -30,6 +37,7 @@ in
|
|||||||
zfs
|
zfs
|
||||||
zfstools
|
zfstools
|
||||||
permissionsScript
|
permissionsScript
|
||||||
|
smartmontools
|
||||||
];
|
];
|
||||||
|
|
||||||
# Add the permissions service
|
# Add the permissions service
|
||||||
@@ -52,7 +60,10 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Enable ZFS support
|
# Enable ZFS support
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [
|
||||||
|
"ntfs"
|
||||||
|
"zfs"
|
||||||
|
];
|
||||||
|
|
||||||
# ZFS system services
|
# ZFS system services
|
||||||
services.zfs = {
|
services.zfs = {
|
||||||
@@ -63,9 +74,23 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# If you want to keep compression settings
|
# If you want to keep compression settings
|
||||||
boot.kernelParams = [ "zfs.zfs_compressed_arc_enabled=1" ];
|
boot.kernelParams = [
|
||||||
|
"zfs.zfs_compressed_arc_enabled=1" # Enable compressed ARC
|
||||||
|
"zfs.zfs_arc_max=21474836480" # 20 GiB
|
||||||
|
];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
|
# backup ZFS mount points
|
||||||
|
"/mnt/backups/photos" = {
|
||||||
|
device = "backup/photos-duplicati";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
"/mnt/backups/services" = {
|
||||||
|
device = "backup/services-duplicati";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# datapool ZFS mount points
|
||||||
"/mnt/ai" = {
|
"/mnt/ai" = {
|
||||||
device = "datapool/ai";
|
device = "datapool/ai";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
|
|||||||
@@ -8,4 +8,4 @@
|
|||||||
127.0.0.1 api.local
|
127.0.0.1 api.local
|
||||||
127.0.0.1 mailpit.local
|
127.0.0.1 mailpit.local
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
files = builtins.removeAttrs (builtins.readDir ./.) [
|
|
||||||
"default.nix"
|
|
||||||
"mennovanleeuwen.nl"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Import all other .nix files as modules
|
|
||||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# Import all the package modules
|
# Import all the package modules
|
||||||
imports = moduleFiles;
|
imports = [
|
||||||
|
./juicefs.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable JuiceFS
|
||||||
|
services.juicefsCustom = {
|
||||||
|
enable = true;
|
||||||
|
redisUrl = "redis://:your-redis-password@localhost:6379/0";
|
||||||
|
mountPoint = "/mnt/object_storage";
|
||||||
|
cacheDir = "/var/jfsCache";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
97
config/nixos/packages/server/juicefs.nix
Normal file
97
config/nixos/packages/server/juicefs.nix
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.juicefsCustom;
|
||||||
|
in {
|
||||||
|
options.services.juicefsCustom = {
|
||||||
|
enable = mkEnableOption "JuiceFS custom mount service";
|
||||||
|
|
||||||
|
mountPoint = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/mnt/object_storage";
|
||||||
|
description = "Directory where JuiceFS should mount the filesystem";
|
||||||
|
};
|
||||||
|
|
||||||
|
cacheDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/var/jfsCache";
|
||||||
|
description = "Directory for JuiceFS cache";
|
||||||
|
};
|
||||||
|
|
||||||
|
cacheSize = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 204800;
|
||||||
|
description = "Cache size in MiB";
|
||||||
|
};
|
||||||
|
|
||||||
|
redisUrl = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "redis://:PASSWORD@localhost:6379/0";
|
||||||
|
description = "Redis URL for metadata storage (replace PASSWORD with actual password)";
|
||||||
|
};
|
||||||
|
|
||||||
|
bufferSize = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 1024;
|
||||||
|
description = "Buffer size in MiB";
|
||||||
|
};
|
||||||
|
|
||||||
|
prefetch = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 4;
|
||||||
|
description = "Prefetch size";
|
||||||
|
};
|
||||||
|
|
||||||
|
attrCache = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 3;
|
||||||
|
description = "Attribute cache expiration time in seconds";
|
||||||
|
};
|
||||||
|
|
||||||
|
entryCache = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 3;
|
||||||
|
description = "Entry cache expiration time in seconds";
|
||||||
|
};
|
||||||
|
|
||||||
|
openCache = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 3;
|
||||||
|
description = "Open file cache expiration time in seconds";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# Install JuiceFS package
|
||||||
|
environment.systemPackages = [ pkgs.juicefs ];
|
||||||
|
|
||||||
|
# Create the mount and cache directories
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${cfg.mountPoint} 0755 root root -"
|
||||||
|
"d ${cfg.cacheDir} 0755 root root -"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Add the JuiceFS systemd service
|
||||||
|
systemd.services.juicefs = {
|
||||||
|
description = "JuiceFS Mount Service";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
before = [ "docker.service" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.juicefs}/bin/juicefs mount ${cfg.redisUrl} ${cfg.mountPoint} "
|
||||||
|
+ "--cache-dir=${cfg.cacheDir} "
|
||||||
|
+ "--buffer-size=${toString cfg.bufferSize} "
|
||||||
|
+ "--prefetch=${toString cfg.prefetch} "
|
||||||
|
+ "--cache-size=${toString cfg.cacheSize} "
|
||||||
|
+ "--attr-cache=${toString cfg.attrCache} "
|
||||||
|
+ "--entry-cache=${toString cfg.entryCache} "
|
||||||
|
+ "--open-cache=${toString cfg.openCache}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1 +0,0 @@
|
|||||||
dist/
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
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;
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,84 +0,0 @@
|
|||||||
|
|
||||||
# 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.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ 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";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
}
|
|
||||||
@@ -2,9 +2,7 @@
|
|||||||
{
|
{
|
||||||
# Import all the package modules
|
# Import all the package modules
|
||||||
imports = [
|
imports = [
|
||||||
./1password.nix
|
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./steam.nix
|
./1password.nix
|
||||||
./pano.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
systemd.services.flatpak-repo = {
|
systemd.services.flatpak-repo = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.flatpak ];
|
path = [ pkgs.flatpak ];
|
||||||
script = ''
|
script = ''
|
||||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ (pkgs.callPackage ./pano { }) ];
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
stdenv,
|
|
||||||
fetchzip,
|
|
||||||
lib,
|
|
||||||
gnome,
|
|
||||||
glib,
|
|
||||||
libgda,
|
|
||||||
gsound,
|
|
||||||
substituteAll,
|
|
||||||
wrapGAppsHook,
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "gnome-shell-extension-pano";
|
|
||||||
version = "v23-alpha3";
|
|
||||||
|
|
||||||
src = fetchzip {
|
|
||||||
url = "https://github.com/oae/gnome-shell-pano/releases/download/${version}/pano@elhan.io.zip";
|
|
||||||
sha256 = "LYpxsl/PC8hwz0ZdH5cDdSZPRmkniBPUCqHQxB4KNhc=";
|
|
||||||
stripRoot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
(substituteAll {
|
|
||||||
src = ./gnome-shell-extension-pano.patch;
|
|
||||||
gsound_path = "${gsound}/lib/girepository-1.0";
|
|
||||||
gda_path = "${libgda}/lib/girepository-1.0";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gnome.gnome-shell
|
|
||||||
libgda
|
|
||||||
gsound
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
local_ext_dir=$out/share/gnome-shell/extensions/pano@elhan.io
|
|
||||||
install -d $local_ext_dir
|
|
||||||
cp -r * $local_ext_dir
|
|
||||||
|
|
||||||
# Ensure typelibs are directly accessible
|
|
||||||
mkdir -p $out/lib/girepository-1.0
|
|
||||||
ln -s ${gsound}/lib/girepository-1.0/* $out/lib/girepository-1.0/
|
|
||||||
ln -s ${libgda}/lib/girepository-1.0/* $out/lib/girepository-1.0/
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Pano GNOME Shell Clipboard Management Extension (${version} pre-release)";
|
|
||||||
homepage = "https://github.com/oae/gnome-shell-pano";
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
maintainers = [ maintainers.zvictor ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
--- a/extension.js
|
|
||||||
+++ b/extension.js
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+import GIRepository from 'gi://GIRepository';
|
|
||||||
+GIRepository.Repository.prepend_search_path('@gda_path@');
|
|
||||||
+GIRepository.Repository.prepend_search_path('@gsound_path@');
|
|
||||||
+
|
|
||||||
import Gio from 'gi://Gio';
|
|
||||||
import GLib from 'gi://GLib';
|
|
||||||
import * as extension_js from 'resource:///org/gnome/shell/extensions/extension.js';
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# In your configuration.nix
|
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
# Open ports in the firewall for Steam Remote Play
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
# Open ports in the firewall for Source Dedicated Server
|
|
||||||
dedicatedServer.openFirewall = true;
|
|
||||||
# Open ports in the firewall for Steam Local Network Game Transfers
|
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -14,6 +14,8 @@
|
|||||||
"video"
|
"video"
|
||||||
"render"
|
"render"
|
||||||
"users"
|
"users"
|
||||||
|
"input"
|
||||||
|
"adbusers"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
# This is the authrorized_keys file for the user mennos-laptop
|
# This is the authrorized_keys file for the user mennos-laptop
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||||
|
|
||||||
|
# Samsung S24U
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||||
|
|
||||||
|
# Menno's 2025 SSH Key
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
# This is the authrorized_keys file for the user mennos-gamingpc
|
# This is the authrorized_keys file for the user mennos-laptop
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||||
|
|
||||||
|
# Samsung S24U
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||||
|
|
||||||
|
# Menno's 2025 SSH Key
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
# This is the authrorized_keys file for the user mennos-laptop
|
# This is the authrorized_keys file for the user mennos-laptop
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||||
|
|
||||||
|
# Samsung S24U
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||||
|
|
||||||
|
# Menno's 2025 SSH Key
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
# This is the authrorized_keys file for the user mennos-server
|
# This is the authrorized_keys file for the user mennos-laptop
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||||
|
|
||||||
|
# Samsung S24U
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||||
|
|
||||||
|
# Menno's 2025 SSH Key
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
jA0ECQMIdzswSvGKIFj/0sAIAc0IMa6q0CiEqk/RjpEaea0RpVSxKL8v/E0HyqiC
|
jA0ECQMIyS/QhVzk8iz/0sAIAYCHd2CTLa3u1Ajj4oj7tqJivyB2moggjt7f0uep
|
||||||
nZBGvcaadZ+uQ/Ndxk3WfehTYuXWZk9gotfoQ91TrvMcCNt0ag6sMdVLHtEzoXWF
|
qpah5aM35C/BnzMVRkg6CBWbMFhBRYlRaJ7oyQMPlq/OAtDuk4heXhQfqN24PEEb
|
||||||
93wn4UDc9kv56mfU+JnSK5Rv6euXhZ8ZapEqFIvmh7kGkX/nwTJFNU/f6jz0yhaw
|
X5SzXFaTtW01HIHy2JNaVaz7qU4RsRctayjPe6jBKfkDrxbLpKtUf1ETNuwqgMOR
|
||||||
uu/pa9b9NFpIH7IoelJ2SzJMX3ZhX5aVcY0ojOEvlfRxOGdsOxUK2Ifd9MWV9Tyd
|
pyZjgoBO6Wo2DUkeq3cku95ejsX/63XXnTKW0CXwVdvolo7OzdBIfNsiSMTnvnr5
|
||||||
Sgsa3uFFcL4STwXNq6umwlfkk/SOqtq5WAA=
|
s1jFbGH7K3QOz7FcSyanG4gK+z3x6Njaduc=
|
||||||
=Zo/k
|
=tmo1
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user