#!/usr/bin/env node import PocketBase from 'pocketbase'; import { spawn } from 'node:child_process'; import util from 'node:util'; const spawnAsync = util.promisify(spawn); if (!process.env.POCKETBASE_PASSWORD) throw new Error('POCKETBASE_PASSWORD missing in env'); if (!process.env.POCKETBASE_USERNAME) throw new Error('POCKETBASE_USERNAME missing in env'); if (!process.env.APPURL) throw new Error('APPURL missing in env'); const pb = new PocketBase('http://localhost:8090'); await pb .collection("_superusers") .authWithPassword(process.env.POCKETBASE_USERNAME, process.env.POCKETBASE_PASSWORD); // change to the production APPURL await pb.settings.update({ meta: { appName: 'Futureporn', appUrl: 'https://futureporn.net', }, }); // upload the site spawnAsync('rsync', [ '-avz', '-e', 'ssh', '.', 'root@fp:/home/pb/pb' ]); // @see https://pocketbase.io/docs/api-settings/#update-settings // put it back to dev app url await pb.settings.update({ meta: { appName: 'Futureporn', appUrl: process.env.APPURL, }, });