soft3/lytics/scripts/deploy-cyberproxy.nu

# Build lytics-ingest (linux x86_64 via zig) and deploy to cyberproxy.
# Serves at https://cyberstates.net/lytics/
#
# Prereqs: rustup stable, cargo-zigbuild, zig, ssh cyberproxy
#
#   nu scripts/deploy-cyberproxy.nu

def main [] {
  let root = ($env.PWD | path expand)
  let rs = $"($root)/rs"
  if not ($"($rs)/Cargo.toml" | path exists) {
    error make {msg: "run from lytics repo root"}
  }

  let path = $"($env.HOME)/.rustup/toolchains/stable-aarch64-apple-darwin/bin:($env.HOME)/.cargo/bin:($env.PATH | str join ':')"
  let target = "x86_64-unknown-linux-gnu"
  let bin = $"($rs)/target/($target)/release/lytics-ingest"

  print "โ†’ zigbuild lytics-ingest ($target)"
  with-env { PATH: $path } {
    cd $rs
    ^cargo zigbuild -p lytics-ingest --release --target $target
  }

  print "โ†’ stage + rsync to cyberproxy:/home/cyber/lytics/"
  let stage = "/tmp/lytics-deploy"
  rm -rf $stage
  mkdir $"($stage)/bin" $"($stage)/data" $"($stage)/static/tracker"

  cp $bin $"($stage)/bin/lytics-ingest"
  cp $"($root)/data/dbip-city-lite.mmdb" $"($stage)/data/"
  ^cp -R $"($rs)/ingest/static/tracker/." $"($stage)/static/tracker/"

  ^ssh cyberproxy "mkdir -p /home/cyber/lytics/{bin,data/store,static/tracker}"
  ^rsync -az $"($stage)/bin/lytics-ingest" cyberproxy:/home/cyber/lytics/bin/
  ^rsync -az $"($stage)/static/tracker/" cyberproxy:/home/cyber/lytics/static/tracker/
  ^rsync -az $"($stage)/data/dbip-city-lite.mmdb" cyberproxy:/home/cyber/lytics/data/

  print "โ†’ restart lytics.service"
  ^ssh cyberproxy "chmod +x /home/cyber/lytics/bin/lytics-ingest; sudo systemctl restart lytics; sleep 1; sudo systemctl is-active lytics"

  print ""
  print "live: https://cyberstates.net/lytics/"
  print "api:  https://cyberstates.net/lytics/api/report/overview"
}

Homonyms

soft3/deploy/deploy-cyberproxy.nu

Graph