diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-02-12 05:20:35 -0800 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-02-12 05:20:35 -0800 |
| commit | d0fefc7ae6c5eccfb5f3813c1e6422a3043e3455 (patch) | |
| tree | 1fa3609e7d4eb1886b503398224712a07de26b62 /cmd | |
| parent | e2ab29bc48db4295b78e0e9c97f5ddb527930ca8 (diff) | |
| download | xesite-d0fefc7ae6c5eccfb5f3813c1e6422a3043e3455.tar.xz xesite-d0fefc7ae6c5eccfb5f3813c1e6422a3043e3455.zip | |
rip out tsnet for good
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/fabricate-generation/main.go | 145 | ||||
| -rw-r--r-- | cmd/patreon-saasproxy/main.go | 8 | ||||
| -rw-r--r-- | cmd/xesite/internalapi.go | 8 | ||||
| -rw-r--r-- | cmd/xesite/main.go | 29 |
4 files changed, 48 insertions, 142 deletions
diff --git a/cmd/fabricate-generation/main.go b/cmd/fabricate-generation/main.go index 6f63033..ef83546 100644 --- a/cmd/fabricate-generation/main.go +++ b/cmd/fabricate-generation/main.go @@ -3,25 +3,16 @@ package main import ( "context" "flag" - "log" "log/slog" "net/http" "os" - "sync" "github.com/facebookgo/flagenv" _ "github.com/joho/godotenv/autoload" "golang.org/x/oauth2" - "golang.org/x/oauth2/clientcredentials" "gopkg.in/mxpv/patreon-go.v1" - "tailscale.com/client/tailscale" - "tailscale.com/hostinfo" - "tailscale.com/ipn/store/mem" - "tailscale.com/tsnet" - "tailscale.com/util/cmpx" "within.website/x/web" "xeiaso.net/v4/internal" - "xeiaso.net/v4/internal/lume" "xeiaso.net/v4/internal/saasproxytoken" ) @@ -36,109 +27,51 @@ var ( ) func main() { - // Required to use the Tailscale client API. This is sussy, but okay. - tailscale.I_Acknowledge_This_API_Is_Unstable = true - flagenv.Parse() flag.Parse() internal.Slog() slog.Info("starting up", "github-sha", *githubSHA) - baseURL := cmpx.Or(os.Getenv("TS_BASE_URL"), "https://api.tailscale.com") - - credentials := clientcredentials.Config{ - ClientID: *tailscaleClientID, - ClientSecret: *tailscaleClientSecret, - TokenURL: baseURL + "/api/v2/oauth/token", - Scopes: []string{"device"}, - } - - ctx := context.Background() - tsClient := tailscale.NewClient("-", nil) - tsClient.HTTPClient = credentials.Client(ctx) - tsClient.BaseURL = baseURL - - caps := tailscale.KeyCapabilities{ - Devices: tailscale.KeyDeviceCapabilities{ - Create: tailscale.KeyDeviceCreateCapabilities{ - Reusable: false, - Ephemeral: true, - Preauthorized: true, - Tags: []string{"tag:service", "tag:ci"}, - }, - }, - } - - authkey, _, err := tsClient.CreateKey(ctx, caps) - if err != nil { - log.Fatal(err.Error()) - } - - os.Args[0] = "via XeDN" - - hostinfo.SetApp("xeiaso.net/v4/cmd/fabricate-generation") - - memStore, err := mem.New(log.Printf, "") - if err != nil { - log.Fatal(err) - } - - srv := &tsnet.Server{ - Hostname: "github-action-" + (*githubSHA)[:7], - Logf: log.Printf, - Ephemeral: true, - Store: memStore, - AuthKey: authkey, - } - - if err := srv.Start(); err != nil { - log.Fatal(err) - } - - if _, err := srv.Up(context.Background()); err != nil { - log.Fatal(err) - } - - hc := srv.HTTPClient() - - pc, err := NewPatreonClient(hc) - if err != nil { - slog.Error("can't create patreon client", "err", err) - } - - os.MkdirAll("./var", 0700) - - fs, err := lume.New(context.Background(), &lume.Options{ - Branch: "main", - Repo: "https://github.com/Xe/site", - StaticSiteDir: "lume", - URL: "https://xeiaso.net", - Development: false, - PatreonClient: pc, - DataDir: "./var", - MiToken: *miToken, - }) - if err != nil { - log.Fatal(err) - } - - defer fs.Close() - - var wg sync.WaitGroup - - for _, region := range regions { - wg.Add(1) - go func(region string) { - defer wg.Done() - - if err := uploadSlug(hc, "xedn-"+region, "./var/site.zip"); err != nil { - slog.Error("error updating", "region", region, "error", err) - } - }(region) - } - - wg.Wait() + /* + pc, err := NewPatreonClient(hc) + if err != nil { + slog.Error("can't create patreon client", "err", err) + } + + os.MkdirAll("./var", 0700) + + fs, err := lume.New(context.Background(), &lume.Options{ + Branch: "main", + Repo: "https://github.com/Xe/site", + StaticSiteDir: "lume", + URL: "https://xeiaso.net", + Development: false, + PatreonClient: pc, + DataDir: "./var", + MiToken: *miToken, + }) + if err != nil { + log.Fatal(err) + } + + defer fs.Close() + + var wg sync.WaitGroup + + for _, region := range regions { + wg.Add(1) + go func(region string) { + defer wg.Done() + + if err := uploadSlug(hc, "xedn-"+region, "./var/site.zip"); err != nil { + slog.Error("error updating", "region", region, "error", err) + } + }(region) + } + + wg.Wait() + */ } func uploadSlug(cli *http.Client, host, fname string) error { diff --git a/cmd/patreon-saasproxy/main.go b/cmd/patreon-saasproxy/main.go index 5bb1159..ef83302 100644 --- a/cmd/patreon-saasproxy/main.go +++ b/cmd/patreon-saasproxy/main.go @@ -18,13 +18,12 @@ import ( "google.golang.org/protobuf/types/known/emptypb" "google.golang.org/protobuf/types/known/timestamppb" "gopkg.in/mxpv/patreon-go.v1" - "tailscale.com/client/tailscale" "xeiaso.net/v4/internal" "xeiaso.net/v4/internal/adminpb" ) var ( - addr = flag.String("addr", ":80", "HTTP bind addr") + bind = flag.String("bind", ":80", "HTTP bind addr") clientID = flag.String("client-id", "", "Patreon client ID") clientSecret = flag.String("client-secret", "", "Patreon client secret") dataDir = flag.String("data-dir", "./var", "Directory to store data in") @@ -86,19 +85,18 @@ func main() { ph := adminpb.NewPatreonServer(s) http.Handle(adminpb.PatreonPathPrefix, ph) - ln, err := net.Listen("tcp", *addr) + ln, err := net.Listen("tcp", *bind) if err != nil { log.Fatalf("can't listen over TCP: %v", err) } defer ln.Close() - slog.Info("listening", "addr", *addr) + slog.Info("listening", "bind", *bind) log.Fatal(http.Serve(ln, nil)) } type Server struct { - lc *tailscale.LocalClient cts oauth2.TokenSource } diff --git a/cmd/xesite/internalapi.go b/cmd/xesite/internalapi.go index ca4da3b..7d1ebcb 100644 --- a/cmd/xesite/internalapi.go +++ b/cmd/xesite/internalapi.go @@ -4,19 +4,17 @@ import ( "context" "expvar" "log" + "net" "net/http" "path/filepath" - "tailscale.com/tsnet" - "tailscale.com/tsweb" "xeiaso.net/v4/internal/lume" ) -func internalAPI(srv *tsnet.Server, fs *lume.FS) { +func internalAPI(fs *lume.FS) { mux := http.NewServeMux() mux.Handle("/debug/vars", expvar.Handler()) - mux.HandleFunc("/metrics", tsweb.VarzHandler) mux.HandleFunc("/rebuild", func(w http.ResponseWriter, r *http.Request) { go fs.Update(context.Background()) @@ -28,7 +26,7 @@ func internalAPI(srv *tsnet.Server, fs *lume.FS) { http.ServeFile(w, r, filepath.Join(*dataDir, "site.zip")) }) - ln, err := srv.Listen("tcp", ":80") + ln, err := net.Listen("tcp", ":80") if err != nil { log.Fatal(err) } diff --git a/cmd/xesite/main.go b/cmd/xesite/main.go index 2389357..7365fa9 100644 --- a/cmd/xesite/main.go +++ b/cmd/xesite/main.go @@ -13,9 +13,6 @@ import ( "github.com/donatj/hmacsig" "github.com/facebookgo/flagenv" _ "github.com/joho/godotenv/autoload" - "tailscale.com/hostinfo" - "tailscale.com/tsnet" - "tailscale.com/tsweb" "xeiaso.net/v4/internal" "xeiaso.net/v4/internal/lume" ) @@ -28,9 +25,8 @@ var ( gitRepo = flag.String("git-repo", "https://github.com/Xe/site", "Git repository to clone") githubSecret = flag.String("github-secret", "", "GitHub secret to use for webhooks") miToken = flag.String("mi-token", "", "Token to use for the mi API") - patreonSaasProxyURL = flag.String("patreon-saasproxy-url", "http://patreon-saasproxy/give-token", "URL to use for the patreon saasproxy") + patreonSaasProxyURL = flag.String("patreon-saasproxy-url", "http://xesite-patreon-saasproxy.flycast/", "URL to use for the patreon saasproxy") siteURL = flag.String("site-url", "https://xeiaso.net/", "URL to use for the site") - tsnetHostname = flag.String("tailscale-hostname", "xesite", "Tailscale hostname to use") ) func main() { @@ -38,8 +34,6 @@ func main() { flag.Parse() internal.Slog() - hostinfo.SetApp("xeiaso.net/v4/cmd/xesite") - ctx := context.Background() ln, err := net.Listen("tcp", *bind) @@ -50,23 +44,7 @@ func main() { os.MkdirAll(*dataDir, 0700) os.MkdirAll(filepath.Join(*dataDir, "tsnet"), 0700) - srv := &tsnet.Server{ - Hostname: *tsnetHostname + "-" + os.Getenv("FLY_REGION"), - Logf: func(string, ...any) {}, - Dir: filepath.Join(*dataDir, "tsnet"), - } - - if err := srv.Start(); err != nil { - log.Fatal(err) - } - - if _, err := srv.Up(context.Background()); err != nil { - log.Fatal(err) - } - - hc := srv.HTTPClient() - - pc, err := NewPatreonClient(hc) + pc, err := NewPatreonClient(http.DefaultClient) if err != nil { slog.Error("can't create patreon client", "err", err) } @@ -91,7 +69,7 @@ func main() { go rebuildOnChange(fs) } - go internalAPI(srv, fs) + go internalAPI(fs) if err != nil { log.Fatal(err) @@ -99,7 +77,6 @@ func main() { mux := http.NewServeMux() mux.Handle("/", http.FileServer(http.FS(fs))) - mux.HandleFunc("/metrics", tsweb.VarzHandler) mux.HandleFunc("/blog.atom", func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/blog.rss", http.StatusMovedPermanently) |
