feat: ship Barkstack UI plugin
All checks were successful
Build and Push Image / docker-build-and-push (push) Successful in 6m32s
Test and Release PawSQL / test (push) Successful in 50s
Test and Release PawSQL / release (push) Successful in 8s

This commit is contained in:
2026-09-16 13:47:07 -04:00
parent cae9419cd5
commit 7d7133d6cc
16 changed files with 4034 additions and 19 deletions

View File

@@ -11,9 +11,13 @@ PawSQL is a TLS-terminating PostgreSQL router. It accepts PostgreSQL clients on
## Build, configure, and run
Build a native binary:
Build the independently owned Svelte plugin, then the native binary:
```sh
cd ui
bun install
bun run build
cd ..
go build -o pawsql ./cmd/pawsql
```
@@ -21,10 +25,10 @@ Create a `Barkfile` and validate it before starting:
```sh
./pawsql validate --config Barkfile
./pawsql --config Barkfile
./pawsql --config Barkfile --admin-listen :9090
```
`--config` defaults to `Barkfile`. The listener, TLS material, and at least one database route are required.
`--config` defaults to `Barkfile`. The PostgreSQL listener, TLS material, and at least one database route are required. `--admin-listen` defaults to `:9090` and serves PawSQL's embedded Barkstack plugin at `/barkstack/ui/`; pass an empty value to disable it. The admin port is intended for Barkstack over localhost or a private overlay network, not direct publication.
To build and run the PawSQL container image for routes reachable from that container:
@@ -37,7 +41,7 @@ docker run --rm --publish 5432:5432 \
pawsql
```
The supplied image includes the Docker CLI so managed `postgres` routes can create, start, and stop their containers through the mounted Docker socket. The socket grants PawSQL root-equivalent control of the Docker host; mount it only for trusted Barkfiles and trusted administrators.
The supplied image includes the compiled PawSQL Svelte plugin and Docker CLI; production does not run Node or Bun. The Docker CLI lets managed `postgres` routes create, start, and stop containers through the mounted Docker socket. The socket grants PawSQL root-equivalent control of the Docker host; mount it only for trusted Barkfiles and trusted administrators. Publish PostgreSQL port 5432 as needed, but leave admin port 9090 unpublished and let Barkstack proxy the UI.
## Barkfile