diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3a6c3e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +deploy: + ./build.sh + flyctl deploy + diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..4d0d25f --- /dev/null +++ b/build.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e +set -x + +export PATH="$PWD/../../tool":$PATH + +go run github.com/tailscale/mkctr \ + --base="alpine:3.15" \ + --gopaths="tailscale.io/cmd/golink:/tsgo" \ + --tags="latest" \ + --repos="registry.fly.io/tsgo" \ + --push diff --git a/fly.toml b/fly.toml new file mode 100644 index 0000000..6b47304 --- /dev/null +++ b/fly.toml @@ -0,0 +1,19 @@ +# Manually: +# $ fly scale count 1 +# $ fly volumes create tsgo_data --region ord --size 1 +# $ fly secrets set TS_AUTHKEY=.... + +app = "tsgo" + +[build] +image = "registry.fly.io/tsgo:latest" + +[experimental] +cmd = ["/tsgo", "-verbose", "-linkdir=/root/linkdata", "-mkdir"] + +[deploy] +strategy = "immediate" + +[mounts] +source="tsgo_data" +destination="/root" diff --git a/golink.go b/golink.go index 2815397..b279af7 100644 --- a/golink.go +++ b/golink.go @@ -28,6 +28,7 @@ var ( verbose = flag.Bool("verbose", false, "be verbose") linkDir = flag.String("linkdir", "", "the directory to store one JSON file per go/ shortlink") dev = flag.String("dev-listen", "", "if non-empty, listen on this addr and run in dev mode; auto-set linkDir if empty and don't use tsnet") + doMkdir = flag.Bool("mkdir", false, "whether to make --linkdir at start") ) //go:embed link-snapshot.json @@ -59,6 +60,13 @@ func main() { log.Fatalf("--linkdir is required") } } + + if *doMkdir { + if err := os.MkdirAll(*linkDir, 0755); err != nil { + log.Fatal(err) + } + } + if fi, err := os.Stat(*linkDir); err != nil { log.Fatal(err) } else if !fi.IsDir() { @@ -136,7 +144,7 @@ func loadLink(short string) (*DiskLink, error) { } func serveGo(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/export" { + if r.RequestURI == "/_/export" { serveExport(w, r) return } diff --git a/take-snapshot.sh b/take-snapshot.sh index 45d5376..bce94c2 100755 --- a/take-snapshot.sh +++ b/take-snapshot.sh @@ -3,4 +3,4 @@ set -e set -x -curl -o $(dirname "$0")/link-snapshot.json http://go/export +curl -o $(dirname "$0")/link-snapshot.json http://go/_/export