anbaric-hosting 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +34 -1
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -22,7 +22,9 @@ The platform is configured entirely through environment variables:
22
22
  | `ANBARIC_PLATFORM_INTERNAL_URL` | how deployed apps reach the internal entry point | `http://localhost:<internal port>` |
23
23
  | `ANBARIC_TENANT` | tenant this platform serves (returned to the CLI on login) | — |
24
24
  | `ANBARIC_BUILD_LAYER` | `docker` (needs a docker socket) or `fargate` (AWS); unset disables app deployment | unset |
25
- | `ANBARIC_AUTHENTICATOR` | module name of an auth plugin exposing `createAuthenticator()` | unset (auth disabled) |
25
+ | `ANBARIC_AUTHENTICATOR` | `stub`, or the module name of an auth plugin exposing `createAuthenticator()` | unset (auth disabled) |
26
+ | `ANBARIC_STUB_USER` | the fixed identity the stub authenticator signs everyone in as | `local-admin` |
27
+ | `ANBARIC_CLI_KEY_LOOKUP_URL` / `_SECRET` | verify CLI keys against a central key registry instead of the local database (hosted-platform feature; self-hosts leave unset) | unset (keys local) |
26
28
  | `ANBARIC_APPS_DIR` | working directory for app bundles | `/tmp/anbaric-apps` |
27
29
  | `ANBARIC_DISPATCH_INTERVAL_MS` | queue dispatch interval | `1000` |
28
30
 
@@ -41,3 +43,34 @@ it must only ever be reachable by deployed apps (same docker network, same
41
43
  task, or a security-group rule).
42
44
 
43
45
  Health check: `GET /ping` → `{"status":"ok"}` on both ports.
46
+
47
+ ## The self-host flow
48
+
49
+ Self-hosting is deliberately simple — one platform, everything local, no
50
+ external control plane:
51
+
52
+ 1. **Domain**: run on `localhost`, or put the platform behind your own
53
+ domain/TLS (a reverse proxy or the reference AWS setup in the repo's
54
+ `gitops/`); set `ANBARIC_PLATFORM_PUBLIC_URL` accordingly.
55
+ 2. **Authentication — three choices**:
56
+ - **Unset**: no auth at all. Every request is anonymous; fine on a
57
+ trusted network or laptop.
58
+ - **`ANBARIC_AUTHENTICATOR=stub`**: every request is authenticated as one
59
+ fixed identity with no credential check — the whole auth-dependent
60
+ surface (`/whoami`, CLI keys, the dashboard) works without an identity
61
+ provider. Development only: anyone who can reach the platform *is* that
62
+ user.
63
+ - **Your own provider**: publish or vendor a module exporting
64
+ `createAuthenticator() : Authenticator` — `authenticate` returns
65
+ `[User, Tenant]` for a valid session and writes its own redirect/401
66
+ otherwise — and name it in `ANBARIC_AUTHENTICATOR`. Any OIDC/SAML/
67
+ anything provider fits behind that contract.
68
+ 3. **CLI access**: `anbaric login`, choose Other and enter your platform
69
+ URL. The browser authorization, keypair issuance, key storage and
70
+ verification all happen on your platform — no central service involved.
71
+ `ANBARIC_TENANT` is an optional label your platform reports to the CLI
72
+ ("Logged into tenant X"); leave it unset for a single-tenant install.
73
+
74
+ Anbaric Cloud (the hosted product) layers central login, organizations and
75
+ edge routing on top of exactly this platform — none of it lives in the open
76
+ source packages, and none of it is needed to self-host.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anbaric-hosting",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "Run an Anbaric platform: the hosted API, dispatcher, build layers and app proxy, bootable with the anbaric-hosting command",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "bin"
15
15
  ],
16
16
  "dependencies": {
17
- "anbaric-cloud-hosting": "^1.1.1",
17
+ "anbaric-cloud-hosting": "^1.2.1",
18
18
  "tsx": "^4.20.0"
19
19
  }
20
20
  }