Serve compliance-portal instead of trust

Embed and build @probo/compliance-portal for the
/trust path and custom-domain SPA so production
ships the v2 portal. Keep apps/trust in the repo
for local use on port 5175; portal takes 5174.

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-07-20 17:38:45 +02:00
parent 70d0424022
commit 26595b724f
18 changed files with 96 additions and 60 deletions

View File

@@ -53,9 +53,9 @@ track's paths:
git log $(git describe --tags --abbrev=0 --match='prb/v*')..HEAD --oneline \
-- cmd/prb pkg/cli pkg/cmd
# probod (server group: probod + console + trust + ui)
# probod (server group: probod + console + compliance-portal + ui)
git log $(git describe --tags --abbrev=0 --match='probod/v*')..HEAD --oneline \
-- cmd/probod apps/console apps/trust packages/ui pkg
-- cmd/probod apps/console apps/compliance-portal packages/ui pkg
# probod-bootstrap
git log $(git describe --tags --abbrev=0 --match='probod-bootstrap/v*')..HEAD --oneline \

View File

@@ -1,8 +1,8 @@
# Release `probod` (server group)
This track ships `probod`, `@probo/console`, `@probo/trust`, and
`@probo/ui` together as the Docker image and accompanying binary archive.
They share the same version.
This track ships `probod`, `@probo/console`, `@probo/compliance-portal`,
and `@probo/ui` together as the Docker image and accompanying binary
archive. They share the same version.
After confirming commits below, follow the
[common steps](./README.md#3-common-steps-every-track).
@@ -15,13 +15,13 @@ After confirming commits below, follow the
- **Changelog**: `cmd/probod/CHANGELOG.md` (covers all four components)
- **Files to stage**: `cmd/probod/VERSION`, `cmd/probod/CHANGELOG.md`
- **Workflow**: `.github/workflows/release-probod.yaml`
- **Path filter**: `cmd/probod apps/console apps/trust packages/ui pkg`
- **Path filter**: `cmd/probod apps/console apps/compliance-portal packages/ui pkg`
## Detect commits
```shell
git log $(git describe --tags --abbrev=0 --match='probod/v*')..HEAD --oneline \
-- cmd/probod apps/console apps/trust packages/ui pkg
-- cmd/probod apps/console apps/compliance-portal packages/ui pkg
```
If empty or non-user-facing only, do not release this track.
@@ -29,7 +29,7 @@ If empty or non-user-facing only, do not release this track.
## Notes
The changelog covers changes across all four components (`probod`,
`@probo/console`, `@probo/trust`, `@probo/ui`).
`@probo/console`, `@probo/compliance-portal`, `@probo/ui`).
CI builds the frontends and Go binaries, builds and pushes the
multi-arch image to `artifact.probo.inc/probo/probo:v<version>` (and

View File

@@ -34,11 +34,11 @@ make sandbox-delete
After `make sandbox-status`, use the VM IP to access services from the host:
| Service | URL |
| ---------- | --------------------------- |
| Console | `http://<vm-ip>:5173` |
| Trust | `http://<vm-ip>:5174` |
| API | `http://<vm-ip>:8080` |
| Service | URL |
| ------------------ | --------------------------- |
| Console | `http://<vm-ip>:5173` |
| Compliance Portal | `http://<vm-ip>:5174` |
| API | `http://<vm-ip>:8080` |
| Grafana | `http://<vm-ip>:3001` |
| Mailpit | `http://<vm-ip>:8025` |
| Keycloak | `http://<vm-ip>:8082` |
@@ -49,7 +49,7 @@ After `make sandbox-status`, use the VM IP to access services from the host:
During provisioning, the sandbox automatically generates:
- **`/etc/probod/config.yml`** — probod config with the VM IP as cookie domain, `secure: false`, and correct CORS origins
- **`apps/console/.env`** and **`apps/trust/.env`** — `VITE_API_URL` pointing to the VM IP
- **`apps/console/.env`** and **`apps/compliance-portal/.env`** — `VITE_API_URL` pointing to the VM IP
Probod config is at `/etc/probod/config.yml`.
@@ -70,18 +70,18 @@ This file is sourced during provisioning before `probod-bootstrap` runs. Any var
The sandbox provisions four systemd services:
| Service | Description | Starts on boot |
| --------------- | ---------------------------------------------------------- | -------------- |
| `probo-stack` | Docker Compose stack (Postgres, SeaweedFS, Keycloak, etc.) | Yes |
| `probod` | Probo API server (depends on `probo-stack`) | No |
| `probo-console` | Console frontend dev server | No |
| `probo-trust` | Trust frontend dev server | No |
| Service | Description | Starts on boot |
| -------------------------- | ---------------------------------------------------------- | -------------- |
| `probo-stack` | Docker Compose stack (Postgres, SeaweedFS, Keycloak, etc.) | Yes |
| `probod` | Probo API server (depends on `probo-stack`) | No |
| `probo-console` | Console frontend dev server | No |
| `probo-compliance-portal` | Compliance portal frontend dev server | No |
`probo-stack` starts automatically when the VM boots. `probod`, `probo-console`, and `probo-trust` must be started manually after building.
`probo-stack` starts automatically when the VM boots. `probod`, `probo-console`, and `probo-compliance-portal` must be started manually after building.
Manage them with `systemctl`:
```bash
./contrib/lima/sandbox.sh exec -- sudo systemctl start probod probo-console probo-trust
./contrib/lima/sandbox.sh exec -- sudo systemctl start probod probo-console probo-compliance-portal
./contrib/lima/sandbox.sh exec -- sudo systemctl stop probod
./contrib/lima/sandbox.sh exec -- sudo systemctl restart probod
./contrib/lima/sandbox.sh exec -- sudo systemctl status probod