citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

commit 70c515d9a78584a08ea9de4ec6d127009fb79ce0
parent 9fbb26274325009246de0921db7e16509edbe4d5
Author: William Casarin <jb55@jb55.com>
Date:   Fri, 17 Nov 2023 06:21:37 -0800

Merge remote-tracking branch 'origin/master'

Diffstat:
Mbin/btc-balance | 10++++++++--
Mbin/fuzz-notmuch-am | 2+-
Mbin/fuzz-reader | 2+-
Abin/mail-prlink | 6++++++
Mbin/mail-prpatch | 7+------
Abin/mail-prpatch-insert | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abin/mutt-local-date | 14++++++++++++++
Mbin/nix-build-cache | 6++++--
Mdotfiles/.bashrc | 7++++++-
Mdotfiles/.config/neomutt/neomuttrc | 14++++++++------
Mdotfiles/.config/qutebrowser/config.py | 7+++++++
Mdotfiles/.gitconfig | 5+++++
Mdotfiles/.notmuch-config | 7+------
Mdotfiles/.screenrc | 1+
Mdotfiles/.tmux.conf | 37++++++++++++++++++-------------------
Mdotfiles/commands | 5++---
Mnix-config/environment/default.nix | 2+-
Mnix-config/environment/desktop/default.nix | 2+-
Mnix-config/machines/monad/bitcoin/default.nix | 48++++++++++++++++++++++++------------------------
Mnix-config/machines/monad/default.nix | 29+++++++++++++++++++----------
Mnix-config/machines/monad/networking/default.nix | 13+++++++++++++
21 files changed, 219 insertions(+), 83 deletions(-)

diff --git a/bin/btc-balance b/bin/btc-balance @@ -1,8 +1,14 @@ #!/usr/bin/env bash #btc coins | awk '{print $3}' | xargs printf '%.8f * 100000000\n' | bc -l | xargs printf '%.0f\n' | paste -sd+ | bc -l | xargs printf '%s sats to btc\n' | bcalc -n -bcli -rpcwallet=personal getbalance -bcli -rpcwallet=vanessa getbalance +for wallet in personal vanessa multisig bare clightning +do + echo -n "$wallet " + bcli -rpcwallet="$wallet" getbalance +done + +echo -n "cln-availout " +lcli summary | grep avail_out | cut -d= -f2 | cut -d" " -f1 | xargs printf '%s to btc\n' | bcalc -n #if [ -n "$1" ]; then # FIAT=$(printf '%s sats to fiat\n' "$SATS" | bcalc --price "$1") diff --git a/bin/fuzz-notmuch-am b/bin/fuzz-notmuch-am @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eou pipefail -echo notmuch am query:patches +echo notmuch am -s --am -f ${1:-query:patches} diff --git a/bin/fuzz-reader b/bin/fuzz-reader @@ -13,7 +13,7 @@ document=$(find "$BOOKS_DIR" \( -iname '*.txt' -o -iname '*.epub' -o -iname '*.p name="$(basename "$document")" noext="${name%.*}" -wname "$noext" +#wname "$noext" ext="$(extname "$document")" if [ "$ext" == ".txt" ] || [ "$ext" == ".md" ] || [ "$ext" == ".mediawiki" ]; then echo lessr "$document" diff --git a/bin/mail-prlink b/bin/mail-prlink @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +tac | +grep -E '^https://github\.com.*pull/' | +head -n1 | +sed -En 's,^(.*github.com/[^/]+/[^/]+/pull/[0-9]+).*,\1,p' diff --git a/bin/mail-prpatch b/bin/mail-prpatch @@ -2,11 +2,6 @@ set -eou pipefail -args=$( -tac | -grep -E 'github\.com.*pull/' | -head -n1 | -sed -En 's,.*github.com/([^/]+)/([^/]+)/pull/([0-9]+).*,\3 \1/\2,p' -) +args=$(mail-prlink | sed -En 's,.*github.com/([^/]+)/([^/]+)/pull/([0-9]+).*,\3 \1/\2,p') prpatch $args diff --git a/bin/mail-prpatch-insert b/bin/mail-prpatch-insert @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +set -e + +function new_msgid() { + echo "<$(sha256sum "$1" | awk '{ print $1 }')-$(date +%s)>" +} + +TO="jb55@jb55.com" +PRPATCH="$HOME/var/prpatch" +MBOX="$PRPATCH/out.mbox" +PATCHES="$PRPATCH/out" + +function build_coverletter() { + <"$1" awk '/^$/ {exit} {print}' > "$PRPATCH"/header + <"$PRPATCH/mail" awk 'BEGIN {print_it=0;} skip > 0 {skip -= 1; next;} /^----==_mimepart/ {print_it=!print_it;skip=3;next;} print_it==1 {print;}' | + cat "$PRPATCH/header" - | + sed -E 's,(PATCH[^1]+)1,\10,' > "$PATCHES/0000" +} + +rm -rf "$PRPATCH" +mkdir -p "$PATCHES" +mail="$(cat -)" +prlink="$(mail-prlink <<<"$mail")" +#threadid=$(<<<"$mail" grep -i '^message-id:' | cut -d: -f2-) +pr="$(<<<"$prlink" sed -En 's,.*github.com/([^/]+)/([^/]+)/pull/([0-9]+).*,\3,p')" +target="$(<<<"$prlink" sed -En 's,.*github.com/([^/]+)/([^/]+)/pull/([0-9]+).*,\2,p')" +replyto="$(grep -i '^reply-to:' <<<"$mail" | cut -d":" -f2- | tr -d '\n' || :)" +echo "$mail" > "$PRPATCH/mail" +<<<"$mail" mail-prpatch > "$MBOX" + +# pull out the cover letter + +git mailsplit -o"$PATCHES" "$MBOX" + +$(build_coverletter "$PATCHES/0001") + +file="$PATCHES"/0000 +msgid=$(new_msgid "$file") +threadid=$msgid +for file in "$PATCHES/"* +do + # mailsplit introduces linebreaks from some reason + awk ' + /^Subject:/ { subj = 1; printf "%s", $0; next } + subj && !/^$/ { printf " %s", $0; next } + /^$/ && subj { subj = 0; print ""; next } + { print } + ' < "$file" > "$file".2 + mv "$file".2 "$file" + + if [ -n "$replyto" ]; then + sed -i"" "1 a Cc: $replyto" "$file" + fi + + if [ -n "$prlink" ]; then + sed -i"" "0,/^---/{s@^---@\nCloses: $prlink\n---@}" "$file" + fi + + if [ -n "$target" ]; then + sed -i"" "s,\[PATCH,\[PATCH $target," "$file" + fi + + if [[ "$prlink" =~ "damus-io" ]]; then + TO="patches@damus.io" + fi + + sed -i"" "1 a To: $TO" "$file" + sed -i"" "1 a Message-ID: $msgid" "$file" + + # build thread + sed -i"" "1 a In-Reply-To: $threadid" "$file" + sed -i"" "1 a References: $threadid" "$file" + + notmuch insert +inbox < "$file" + + msgid=$(new_msgid "$file") +done diff --git a/bin/mutt-local-date b/bin/mutt-local-date @@ -0,0 +1,14 @@ +#!/usr/bin/perl -n + +use Date::Parse; +use POSIX; +use strict; + +if (/^Date: (.*)$/) { + my $datestr = $1; + my $date = strftime ("%a, %d %b %Y %H:%M:%S", + localtime (str2time ($datestr))); + print "Local-Date: $date\n"; +} + +print; diff --git a/bin/nix-build-cache b/bin/nix-build-cache @@ -5,6 +5,8 @@ printf "building cache of haskellPackages\n" >&2 nix-env -f $NIXPKGS -qaPA haskellPackages > /tmp/search2 & printf "building cache of perlPackages\n" >&2 nix-env -f $NIXPKGS -qaPA perlPackages > /tmp/search3 & +printf "building cache of linuxPackages\n" >&2 +nix-env -f $NIXPKGS -qaPA linuxPackages > /tmp/search4 & wait -cat /tmp/search{1,2,3} | sort > ~/.nixenv.cache -rm -f /tmp/search1 /tmp/search2 +cat /tmp/search{1,2,3,4} | sort > ~/.nixenv.cache +rm -f /tmp/search{1,2,3,4} diff --git a/dotfiles/.bashrc b/dotfiles/.bashrc @@ -16,8 +16,13 @@ export NIX_PATH="dotfiles=$HOME/dotfiles:$NIX_PATH" #[ -z "$PS1" ] && return export HOST=$(hostname) +export IGNORE_WINDOW_CHECK=1 export LONG_RUNNING_COMMAND_TIMEOUT=3 -export PS1='$(printf "\x01\033[30;1m\x02%3.*s\x01\033[0m\x02 %s> \x01\033[33m\x02" $? $? $HOST)' +IN_NIX="" +if [ -n "$IN_NIX_SHELL" ]; then + IN_NIX="-nix" +fi +export PS1='$(printf "\x01\033[30;1m\x02%3.*s\x01\033[0m\x02 %s%s> \x01\033[33m\x02" $? $? $HOST $IN_NIX)' export PS0='\033[0m' #export PS1='$(printf "\x01\033[30;1m\x02%3.*s\x01\033[0m\x02> " $? $?)' diff --git a/dotfiles/.config/neomutt/neomuttrc b/dotfiles/.config/neomutt/neomuttrc @@ -8,6 +8,7 @@ set wait_key=no set pager_stop=yes set from="jb55@jb55.com" set pipe_decode=yes +set sig_dashes=no set pipe_split=no set envelope_from=yes set mime_forward=yes @@ -28,14 +29,13 @@ set sort = reverse-last-date-received virtual-mailboxes \ "INBOX" "notmuch://?query=query:inbox" \ - "damus-prs" "notmuch://?query=query:damusp" \ - "damus-issues" "notmuch://?query=query:damusi" \ - "damus-all-issues" "notmuch://?query=query:damus-all-issues" \ - "damus-all-issues-no-elsat" "notmuch://?query=query:damus-all-issues-no-elsat" \ "patches" "notmuch://?query=query:patches" \ - "damus-issues-no-elsat" "notmuch://?query=query:damusinoelsat" + "today" "notmuch://?query=date:today" \ + "damus-prs" "notmuch://?query=query:damusp" \ + "damus-issues" "notmuch://?query=query:damusi" macro index,pager a "<modify-labels>-unread -inbox<enter> +macro index,pager i "<modify-labels>+inbox<enter> macro index,pager A "<create-alias>" "Create alias" macro index,pager F "<modify-labels>+filed" "File message" macro index,pager + "<modify-labels>+" @@ -49,7 +49,8 @@ macro pager u "<previous-page>" macro pager t "|collapse|less<enter>" macro attach h "|w3m -dump -T text/html | less<enter>" "View text/html with w3m" #macro pager P "|grep patch$ | xargs curl -sL | delta --paging always<enter>" -macro pager P "| mail-prpatch | delta --paging always" +macro pager P ":set pipe_decode=no<enter> | mail-prpatch | delta --paging always" +macro pager G ":set pipe_decode=no<enter> | mail-prpatch-insert" my_hdr Bcc: William Casarin <jb55@jb55.com> @@ -70,5 +71,6 @@ color header brightcyan default '^Subject:' folder-hook . "push \eV" set collapse_unread=yes set uncollapse_jump=yes +set display_filter=~/bin/mutt-local-date source ~/.mail_aliases diff --git a/dotfiles/.config/qutebrowser/config.py b/dotfiles/.config/qutebrowser/config.py @@ -75,6 +75,13 @@ config.bind('e', 'open-editor') config.bind('co', 'tab-only') config.bind('gl', 'tab-move +') config.bind('gh', 'tab-move -') + +# Remove fixed, sticky elements from pages. +# This is useful to recover full page scrolling +#config.bind(',s', 'jseval javascript:(function(){x=document.querySelectorAll(`*`);for(i=0;i<x.length;i++){elementStyle=getComputedStyle(x[i]);if(elementStyle.position.startsWith("fixed")||elementStyle.position.startsWith("sticky")){x[i].style.position=`absolute`;}}}())') + +config.bind(',s', "jseval javascript:(function(){var elements=document.querySelectorAll(`*`);Array.from(elements).forEach(function(element){var style=getComputedStyle(element);if(style.position.startsWith(`fixed`)||style.position.startsWith(`sticky`)){element.style.cssText+=`position: absolute !important;`;}});})()") + config.bind('gF', 'hint all tab-bg') config.unbind('D') config.bind('Do', 'download-open') diff --git a/dotfiles/.gitconfig b/dotfiles/.gitconfig @@ -111,3 +111,8 @@ defaultBranch = master [nostr] relays = wss://relay.damus.io wss://nos.lol wss://nostr.wine +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true diff --git a/dotfiles/.notmuch-config b/dotfiles/.notmuch-config @@ -113,11 +113,6 @@ inbox=tag:inbox and not tag:filed lightning=tag:inbox and tag:lightning list=tag:list and not tag:github and tag:inbox and not tag:busy notmuch=tag:notmuch and tag:inbox -today=date:today and tag:inbox -work=tag:inbox and tag:work -patches=subject:PATCH and tag:inbox and (to:jb55@jb55.com or to:patches@damus.io) +patches=subject:PATCH and tag:inbox damusp=(subject:PR or subject:PATCH) and subject:damus and tag:inbox damusi=subject:Issue and subject:damus-io and tag:inbox -damus-all-issues=subject:Issue and subject:damus-io -damus-all-issues-no-elsat=subject:Issue and subject:damus-io and not from:alltheseas -damusinoelsat=subject:Issue and subject:damus-io and tag:inbox and not from:alltheseas diff --git a/dotfiles/.screenrc b/dotfiles/.screenrc @@ -15,3 +15,4 @@ hardstatus string '%{= 9b}[ %{B}%H %{b}][%= %{= 9w}%?%-Lw%?%{=b 9R}(%{W}%n*%f %t maptimeout 0 +truecolor on diff --git a/dotfiles/.tmux.conf b/dotfiles/.tmux.conf @@ -19,9 +19,9 @@ bind C-X swap-pane setw -g mode-keys vi # Make mouse useful in copy mode -setw -g mode-mouse on +#setw -g mode-mouse on setw -g escape-time 0 -setw -g mouse-resize-pane on +#setw -g mouse-resize-pane on # More straight forward key bindings for splitting unbind % @@ -57,8 +57,8 @@ setw -g window-status-current-format '#I:#W#F' setw -g automatic-rename off # Status Bar -set -g status-bg colour233 -set -g status-fg colour239 +set -g status-bg colour0 +set -g status-fg colour2 #set -g status-interval 1 #set -g status-left '#[fg=colour118]#H#[default]' #set -g status-right '#[fg=colour238]#(cut -d " " -f 1-4 /proc/loadavg)#[default] #[fg=colour242]%Y-%m-%d %H:%M:%S#[default]' @@ -71,14 +71,14 @@ set -g visual-activity off set -g visual-bell off # Highlighting the active window in status bar -setw -g window-status-current-bg colour233 -setw -g window-status-current-fg colour154 +#setw -g window-status-current-bg colour233 +#setw -g window-status-current-fg colour154 -set -g pane-border-bg black -set -g pane-border-fg colour238 +#set -g pane-border-bg black +#set -g pane-border-fg colour238 -set -g pane-active-border-bg black -set -g pane-active-border-fg colour112 +#set -g pane-active-border-bg black +#set -g pane-active-border-fg colour112 # Clock setw -g clock-mode-colour green @@ -87,12 +87,11 @@ setw -g clock-mode-style 24 # Title # powerline -set-option -g status on -set-option -g status-interval 2 -set-option -g status-utf8 on -set-option -g status-justify "centre" -set-option -g status-left-length 60 -set-option -g status-right-length 90 -set-option -g status-left "#(~/dev/tmux-powerline/status-left.sh)" -set-option -g status-right "#(~/dev/tmux-powerline/status-right.sh)" - +#set-option -g status on +#set-option -g status-interval 2 +#set-option -g status-utf8 on +#set-option -g status-justify "centre" +#set-option -g status-left-length 60 +#set-option -g status-right-length 90 +#set-option -g status-left "#(~/dev/tmux-powerline/status-left.sh)" +#set-option -g status-right "#(~/dev/tmux-powerline/status-right.sh)" diff --git a/dotfiles/commands b/dotfiles/commands @@ -37,6 +37,7 @@ eG edit gemmarks echo edit ~/dotfiles/gemmarks elf edit last files fuzz-last-files edit eM edit mimi echo edit ~/.config/mimi/mime.conf em edit mutt config echo edit ~/.config/neomutt/neomuttrc +ea edit mail aliases echo edit ~/.mail_aliases et edit todo echo edit ~/docs/todo/todo.txt ff create file echo fuzz-create-file gb git branches echo git bvr @@ -57,9 +58,6 @@ m mutt echo neomutt mP mutt prs echo neomutt -f damus-prs mp mutt patches echo neomutt -f patches mi mutt issues echo neomutt -f damus-issues -min mutt issues noelsat echo neomutt -f damus-issues-no-elsat -mai mutt all issues echo neomutt -f damus-all-issues -main mutt all issues noelsat echo neomutt -f damus-all-issues-no-elsat Nc new command echo make-script ni notmuch inbox fuzz-notmuch-inbox nT email today echo f nt query:today @@ -68,6 +66,7 @@ of open file fuzz-open-file olf open last files fuzz-last-files open pr cd project root echo cd \"$(project-root)\" pc cat project file fuzz-cat-file +pr cd project root echo cd $(project-root) pf edit project file fuzz-edit-file ps edit project skeletons fuzz-edit-file --dir ~/dotfiles/skeletons rf recent files fuzz-recent-files diff --git a/nix-config/environment/default.nix b/nix-config/environment/default.nix @@ -70,7 +70,7 @@ let jb55pkgs = import <jb55pkgs> { inherit pkgs; }; linuxPackages.bpftrace linuxPackages.perf lsof - mailutils + #mailutils man-pages mdcat minisign diff --git a/nix-config/environment/desktop/default.nix b/nix-config/environment/desktop/default.nix @@ -118,7 +118,7 @@ in { VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; # radv }; - programs.steam.enable = false; + programs.steam.enable = true; environment.systemPackages = if extra.is-minimal then (with pkgs; [ #steam diff --git a/nix-config/machines/monad/bitcoin/default.nix b/nix-config/machines/monad/bitcoin/default.nix @@ -9,11 +9,11 @@ let nix-bitcoin = import (pkgs.fetchFromGitHub { owner = "fort-nix"; repo = "nix-bitcoin"; - rev = "v0.0.44"; - sha256 = "08qn597r3xnqg9s7bnkssf4xcxvm0lf6xmisr86nkp2gammazc42"; + rev = "v0.0.89"; + sha256 = "sha256-SMJW+QZt3iRuoezjE12sopBsdLHDihXe/RerLfRpqoI="; }) { inherit pkgs; }; - plugins = ["summary" "rebalance"]; + plugins = ["summary"]; mkPluginCfg = name: "plugin=${builtins.getAttr name (nix-bitcoin.clightning-plugins)}/${name}.py"; @@ -91,25 +91,25 @@ in }; }; - services.clightning.networks = { - mainnet = { - dataDir = "/home/jb55/.lightning-bitcoin"; - - config = '' - bitcoin-rpcuser=rpcuser - bitcoin-rpcpassword=rpcpass - bitcoin-rpcconnect=127.0.0.1 - bitcoin-rpcport=8332 - fee-per-satoshi=900 - bind-addr=0.0.0.0:9735 - announce-addr=24.84.152.187:9735 - network=bitcoin - alias=jb55.com - rgb=ff0000 - proxy=127.0.0.1:9050 - experimental-offers - ${lib.concatStringsSep "\n" (map mkPluginCfg plugins)} - ''; - }; - }; + #services.clightning.networks = { + # mainnet = { + # dataDir = "/home/jb55/.lightning-bitcoin"; + + # config = '' + # bitcoin-rpcuser=rpcuser + # bitcoin-rpcpassword=rpcpass + # bitcoin-rpcconnect=127.0.0.1 + # bitcoin-rpcport=8332 + # fee-per-satoshi=900 + # bind-addr=0.0.0.0:9735 + # announce-addr=24.84.152.187:9735 + # network=bitcoin + # alias=jb55.com + # rgb=ff0000 + # proxy=127.0.0.1:9050 + # experimental-offers + # ${lib.concatStringsSep "\n" (map mkPluginCfg plugins)} + # ''; + # }; + #}; } diff --git a/nix-config/machines/monad/default.nix b/nix-config/machines/monad/default.nix @@ -107,14 +107,9 @@ in services.dnsmasq.resolveLocalQueries = true; #services.dnsmasq.servers = ["127.0.0.1#43"]; # services.dnsmasq.servers = ["127.0.0.1#43" "1.1.1.1" "8.8.8.8"]; - services.dnsmasq.servers = ["8.8.8.8" "8.8.4.4" ]; - services.dnsmasq.extraConfig = '' - cache-size=10000 - addn-hosts=/var/hosts - conf-file=/var/dnsmasq-hosts - conf-file=/var/distracting-hosts - ''; - + services.dnsmasq.settings.server = ["8.8.8.8" "8.8.4.4" ]; + services.dnsmasq.settings.conf-file = "/var/dnsmasq-hosts"; + services.dnsmasq.settings.addn-hosts = "/var/hosts"; services.bitlbee.plugins = with pkgs; [ bitlbee-mastodon @@ -141,7 +136,7 @@ in }; systemd.user.services.bitcoin-contacts = { - enable = if extra.is-minimal then false else true; + enable = false; description = "Email bitcoin PR patches that have me as a git-contact"; wantedBy = [ "graphical-session.target" ]; @@ -322,6 +317,20 @@ in systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ]; services.nginx.httpConfig = '' server { + listen 80 default_server; + listen ${extra.machine.ztip}:80 default_server; + listen 192.168.87.26 default_server; + + server_name monad.jb55.com; + + location / { + root /var/www/public; + autoindex on; + index index.html; + } + } + + server { listen 80; listen ${extra.machine.ztip}:80; listen 192.168.87.26; @@ -377,7 +386,7 @@ in serviceConfig.Type = "oneshot"; serviceConfig.ExecStart = util.writeBash "disable-c6-state" '' ${pkgs.kmod}/bin/modprobe msr - ${pkgs.python2}/bin/python ${zenstates}/zenstates.py --c6-disable --list + ${pkgs.python3}/bin/python ${zenstates}/zenstates.py --c6-disable --list ''; }; diff --git a/nix-config/machines/monad/networking/default.nix b/nix-config/machines/monad/networking/default.nix @@ -46,6 +46,8 @@ let "nixos-fw -s 10.100.0.0/24,192.168.87.1/24 -p tcp --dport 5442 -j nixos-fw-accept" "nixos-fw -s 10.100.0.0/24 -p tcp --dport 80 -j nixos-fw-accept" "nixos-fw -s 10.100.0.0/24 -p tcp --dport 3000 -j nixos-fw-accept" + "nixos-fw -s 10.100.0.0/24 -p tcp --dport 25565 -j nixos-fw-accept" + "nixos-fw -s 10.100.0.0/24 -p tcp --dport 25575 -j nixos-fw-accept" "nixos-fw -s 10.100.0.2/32 -p tcp --dport ${toString ports.lntun} -j nixos-fw-accept" "nixos-fw -s 10.100.0.0/24 -p tcp --dport ${toString ports.weechat} -j nixos-fw-accept" "nixos-fw -s 10.100.0.0/24,192.168.87.1/24 -p tcp --dport 8333 -j nixos-fw-accept" # bitcoin @@ -118,6 +120,12 @@ in { publicKey = "oYTNuXPl5GQsz53cL55MO9MfI61DyZBrBDy9ZFBpDWU="; # cross (air) allowedIPs = [ "10.100.0.8/32" ]; } + { publicKey = "kBTRfnUGBwbTlyazK1J67VVpzNg/wLjgmSfI9+1J6S4="; # ipad-air + allowedIPs = [ "10.100.0.12/32" ]; + } + { publicKey = "fj35gCObJ+uP/8tDpYsAD+b2XuSpa82umL/8LscIHwQ="; # pixel6-android + allowedIPs = [ "10.100.0.9/32" ]; + } ]; }; @@ -187,6 +195,10 @@ in # any requests that come in that match any these names will use the proxy. server_name plex.jb55.com plez.jb55.com media.home plex.home; + location = / { + return 302 http://plex.jb55.com/web/index.html; + } + # this is where everything cool happens (you probably don't need to change anything here): location / { # if a request to / comes in, 301 redirect to the main plex page. @@ -273,6 +285,7 @@ in } ''; + systemd.services.transmission.enable = false; systemd.services.transmission.requires = [ "openvpn-pia.service" ]; systemd.services.transmission.after = [ "openvpn-pia.service" ]; systemd.services.transmission.serviceConfig.User = lib.mkForce "root";