commit 30139a9977e6ba56e9a4086abe68c19cf241ba5f
parent 5d6d295a4898580d6b77f9a57cdcc703c27bca52
author: nathanael <nathanael@dalliard.ch>
date: Fri, 17 Oct 2025 15:17:43 +0000
s0: remove lnaddr
diffstat:
4 files changed, 0 insertions(+), 129 deletions(-)
diff --git a/s0/lnaddr/.gitignore b/s0/lnaddr/.gitignore
@@ -1 +0,0 @@
-lnaddr
diff --git a/s0/lnaddr/go.mod b/s0/lnaddr/go.mod
@@ -1,3 +0,0 @@
-module lnaddr
-
-go 1.25.0
diff --git a/s0/lnaddr/main.go b/s0/lnaddr/main.go
@@ -1,116 +0,0 @@
-package main
-
-import (
- "encoding/json"
- "fmt"
- "log"
- "net/http"
- "os"
- "strings"
- "time"
-)
-
-type lnurlResponse struct {
- AllowsNostr bool `json:"allowsNostr"`
- MinSendable int64 `json:"minSendable"`
- MaxSendable int64 `json:"maxSendable"`
- Metadata string `json:"metadata"`
- NostrPubkey string `json:"nostrPubkey"`
- CommentAllowed int `json:"commentAllowed"`
- Callback string `json:"callback"`
- Tag string `json:"tag"`
-}
-
-var (
- allowedUsers = strings.Split(getEnv("ALLOWED_USERS", "nathanael"), ",")
- serverPort = getEnv("SERVER_PORT", "8080")
- newHost = getEnv("NEW_HOST", "dalliard.ch")
- oldHost = getEnv("OLD_HOST", "coinos.io")
-)
-
-func getEnv(key, fallback string) string {
- if value, exists := os.LookupEnv(key); exists {
- return value
- }
- return fallback
-}
-
-var httpClient = &http.Client{
- Timeout: 10 * time.Second,
-}
-
-func fetchOriginal(url string) (*lnurlResponse, error) {
- resp, err := httpClient.Get(url)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
-
- var data lnurlResponse
- if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
- return nil, err
- }
- return &data, nil
-}
-
-func rewrite(original *lnurlResponse, oldHost, newHost string) *lnurlResponse {
- rewritten := *original
- rewritten.Metadata = strings.ReplaceAll(rewritten.Metadata, oldHost, newHost)
- return &rewritten
-}
-
-func handler(w http.ResponseWriter, r *http.Request) {
- username := strings.TrimPrefix(r.URL.Path, "/.well-known/lnurlp/")
-
- var allowed bool
- for _, user := range allowedUsers {
- if username == user {
- allowed = true
- break
- }
- }
-
- if !allowed {
- http.Error(w, "username not allowed", http.StatusForbidden)
- return
- }
-
- upstreamURL := fmt.Sprintf("https://%s/.well-known/lnurlp/%s", oldHost, username)
-
- orig, err := fetchOriginal(upstreamURL)
- if err != nil {
- log.Printf("upstream lnurl fetch failed for %s: %v", username, err)
- http.Error(w, "upstream lnurl fetch failed: "+err.Error(), http.StatusBadGateway)
- return
- }
-
- modified := rewrite(orig, oldHost, newHost)
- w.Header().Set("Content-Type", "application/json")
-
- enc := json.NewEncoder(w)
- enc.SetEscapeHTML(false)
- if err := enc.Encode(modified); err != nil {
- log.Printf("json encoding error: %v", err)
- http.Error(w, "internal server error", http.StatusInternalServerError)
- return
- }
-
- log.Printf("successfully processed request for username: %s", username)
-}
-
-func main() {
- mux := http.NewServeMux()
- mux.HandleFunc("/.well-known/lnurlp/", handler)
-
- server := &http.Server{
- Addr: ":" + serverPort,
- Handler: mux,
- ReadTimeout: 10 * time.Second,
- WriteTimeout: 10 * time.Second,
- }
-
- log.Printf("starting server on :%s", serverPort)
- if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
- log.Fatalf("server failed: %v", err)
- }
-}
diff --git a/s0/lnaddr/makefile b/s0/lnaddr/makefile
@@ -1,9 +0,0 @@
-deploy: build sync
-
-build:
- @CGO_ENABLED=1 go build -ldflags="-linkmode external -extldflags '-static'"
-
-sync:
- @ssh s1 doas rcctl stop lnaddr
- @scp lnaddr s1:/usr/local/sbin/lnaddr
- @ssh s1 doas rcctl start lnaddr