commit 5d6d295a4898580d6b77f9a57cdcc703c27bca52
parent 0bcc8e08a1a0b830d6a8f4cf8126f24f006b2189
author: nathanael <nathanael@dalliard.ch>
date: Fri, 17 Oct 2025 15:15:40 +0000
s1: replace lnaddr
from golang to shell
diffstat:
6 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/s1/scripts/sysfiles.sh b/s1/scripts/sysfiles.sh
@@ -3,6 +3,7 @@ src="$HOME/src/src/s1/sysfiles"
doas install -d -o root -g wheel -m 755 "/etc/dovecot/sieve/"
doas install -d -o root -g www -m 755 "/var/www/go/"
+doas install -d -o root -g www -m 755 "/var/www/ln/"
doas install -d -o root -g www -m 755 "/var/www/mail/"
doas install -d -o root -g www -m 777 "/var/www/tmp/"
doas install -o root -g wheel -m 600 "$src/pf.conf" "/etc/pf.conf"
@@ -18,10 +19,11 @@ doas install -o root -g wheel -m 644 "$src/smtpd.conf" "/etc/mail/smtpd.conf"
doas install -o root -g wheel -m 644 "$src/sshd_config" "/etc/ssh/sshd_config"
doas install -o root -g wheel -m 644 "$src/sysclean" "/etc/sysclean.ignore"
doas install -o root -g wheel -m 644 "$src/weekly.local" "/etc/weekly.local"
-doas install -o root -g wheel -m 755 "$src/lnaddr.rc" "/etc/rc.d/lnaddr"
-doas install -o root -g www -m 640 "$src/redirects.txt" "/var/www/go/redirects.txt"
+doas install -o root -g www -m 640 "$HOME/prv/lnusers" "/var/www/ln/lnusers.txt"
+doas install -o root -g www -m 640 "$HOME/prv/redirs" "/var/www/go/redirects.txt"
doas install -o root -g www -m 644 "$src/favicon.ico" "/var/www/htdocs/favicon.ico"
doas install -o root -g www -m 644 "$src/index.html" "/var/www/htdocs/index.html"
doas install -o root -g www -m 644 "$src/mta-sts.txt" "/var/www/mail/mta-sts.txt"
doas install -o root -g www -m 644 "$src/style.css" "/var/www/htdocs/style.css"
+doas install -o root -g www -m 755 "$src/lnaddr.sh" "/var/www/ln/lnaddr.sh"
doas install -o root -g www -m 755 "$src/redirect.sh" "/var/www/go/redirect.sh"
diff --git a/s1/sysfiles/httpd.conf b/s1/sysfiles/httpd.conf
@@ -32,6 +32,11 @@ server "dalliard.ch" {
location "/p" {
block return 301 "https://dalliard.ch/22b0bce1868386a2cc5b63cac61abf796ebd00e2.asc"
}
+ location "/.well-known/lnurlp/*" {
+ root "/ln/lnaddr.sh"
+ request strip 2
+ fastcgi socket "/run/slowcgi.sock"
+ }
errdocs "/www"
root "/www"
no log
diff --git a/s1/sysfiles/lnaddr.rc b/s1/sysfiles/lnaddr.rc
@@ -1,11 +0,0 @@
-#!/bin/ksh
-
-daemon="/usr/local/sbin/lnaddr"
-daemon_logger="daemon.info"
-
-. /etc/rc.d/rc.subr
-
-rc_bg=YES
-rc_reload=NO
-
-rc_cmd $1
diff --git a/s1/sysfiles/lnaddr.sh b/s1/sysfiles/lnaddr.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+username="${PATH_INFO#/}"
+ok=$(while read -r user; do
+ if [ "$user" = "$username" ]; then
+ echo "1"
+ break
+ fi
+done < /ln/lnusers.txt)
+
+if [ -n "$ok" ]; then
+ printf "Content-Type: application/json\r\n"
+ printf "\r\n"
+ ftp -o - "https://coinos.io/.well-known/lnurlp/${username}" | \
+ sed 's|@coinos\.io|@dalliard.ch|g'
+else
+ printf "Status: 404 Not Found\r\n"
+ printf "Conten-Type: text/plain\r\n"
+ printf "\r\n"
+ printf "user not found\n"
+fi
diff --git a/s1/sysfiles/relayd.conf b/s1/sysfiles/relayd.conf
@@ -1,7 +1,6 @@
ipv4="46.23.90.207"
ipv6="2a03:6000:6f64:604::207"
table <httpd> { 127.0.0.1 }
-table <lnaddr> { 127.0.0.1 }
http protocol https {
tls { no tlsv1.0, tlsv1.1, ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS" }
tls keypair s1.dalliard.ch
@@ -23,19 +22,14 @@ http protocol https {
match request url "dalliard.ch/.well-known/nostr.json" tag "cors"
match response tagged "cors" header set "Access-Control-Allow-Origin" \
value "*"
-
- pass quick url "dalliard.ch/.well-known/lnurlp/" forward to <lnaddr>
- pass forward to <httpd>
}
relay wwwtls4 {
listen on $ipv4 port https tls
protocol https
forward to <httpd> port https
- forward to <lnaddr> port 8080
}
relay wwwtls6 {
listen on $ipv6 port https tls
protocol https
forward to <httpd> port https
- forward to <lnaddr> port 8080
}
diff --git a/s1/sysfiles/sysclean b/s1/sysfiles/sysclean
@@ -1,4 +1,3 @@
-/etc/rc.d/lnaddr
/etc/ssl/die-maltherapie.ch.crt
/etc/ssl/die-maltherapie.ch.crt.1
/etc/ssl/die-sexualberatung.ch.crt
@@ -14,8 +13,10 @@
/etc/ssl/s1.dalliard.ch.ocsp
/var/got
/var/www/bin/sh
+/var/www/etc
/var/www/go
/var/www/judith
+/var/www/ln
/var/www/mail
/var/www/usr
/var/www/www