PLATFORM ADMINISTRATION
Sign in to the console
Use the local administrator account created when this portal was installed.
APPVESSEL CONSOLE
Platform administration
The cluster
What the members of this cluster last reported about themselves.
Declared state and the host
What is declared, what the host reports, and what a reconcile would change.
| App | Declared | Entry | Configuration | Units |
|---|
Loading…
Reconcile
Review the plan first. Apply runs the same steps an operator would run by hand, in order, and stops at the first failure.
Generated files are ordinary systemd units and nginx configuration. Taking one over by hand is supported; this controller will report it as drift and offer to write its own version again.
The nginx configuration is checked before a reload, so a generated mistake cannot take the entry down.
Declared Apps
One record per App. Saving changes the record; the host changes when you reconcile.
| App | State | Activation | Runs on | Host | Port | Actions |
|---|
Loading…
Saving writes one JSON file under the configuration root. The file is the truth and can be read or edited over ssh.
A retired App keeps its record and its data but owns no generated configuration after the next reconcile.
An App placed on other servers is not reconciled here: each of those servers is sent the record and runs it, and reports the revision it reached. Apply changes what this console server runs.
Servers
A server is admitted by its node key. The server generates the key and prints it; you register the public half here.
| Name | Fingerprint | Server | State | Its portal | Actions |
|---|
Loading…
What each server reports
Claims the servers made, kept apart from the records above: those are what this console decided, these are what is true. A server asks for its configuration every minute, so one that is behind or missing has not been heard from.
| Server | Configuration | Workspaces | Tunnels | Reported |
|---|
No server has reported yet.
Registering writes a record. The server learns the answer the next time it asks; nothing is pushed to it.
Removing a record withdraws admission. The server keeps its key and is answered as unregistered.
A name is a label. The domain is not: every member derives addresses from it, and changing it moves them. Membership is decided by the identity above, which cannot be changed.
Decide a registered server
Use Admit, Refuse or Remove in the table above.
A record says who is admitted, what the server is for and where a gateway answers. The server is sent what its roles call for the next time it asks; nothing is pushed to it.
People
Who may sign in. A person is the provider that vouches for them and the subject it gave them; an address is how people recognise each other and is not who anyone is. Each gateway enforces this from a copy it is sent.
| Person | Signs in as | Workspace | State | Actions |
|---|
Loading…
Declaring writes a record. Each gateway is sent a copy the next time it asks, and enforces it from that copy.
Suspending publishes a refusal rather than withdrawing the record, so an operator reading a gateway can see the decision. Removing publishes nothing at all. Either takes an administrator's keys off every server within a minute; it ends no connection that is already open.
Reaching the servers over ssh:
Two files for 's own machine, covering . Neither holds a secret: their private key never reaches this console, and a server reached through a meeting point is a ProxyJump rather than a second credential — ssh authenticates each hop from the machine they are sitting at.
Save the first as ~/.ssh/appvessel.conf and add Include ~/.ssh/appvessel.conf at the top of ~/.ssh/config; save the second as ~/.ssh/appvessel_known_hosts. Then ssh <server> reaches any of them by the name it was admitted under.
Generated from the records and from what each server reported about itself, so it is built again every time it is asked for. A server that has not reported its host key yet is named and said to be unverifiable rather than quietly left out.
Decide a declared person
Use Suspend, Restore or Remove in the table above.
Nothing here reaches anyone directly. A change takes effect at a gateway when that gateway next asks for its configuration.
Approval requests
Each request is bound to one owner, resource and revision. Deciding records the decision; it does not itself publish anything.
| Kind | Resource | Revision | Owner | Status | Decision |
|---|
Loading…
Decide a request
Choose Approve or Reject in the table above. An owner cannot decide their own request.
These are recorded decisions. No service consumes them yet, so approving a request does not expose a route or publish an App.
Administrative permissions
Recorded roles. They do not change sudo, SSH, single sign-on or this portal's own account.
| Subject | Role | Actions |
|---|
Loading…
Granting is idempotent. Revoking removes the record only; ending real access is a separate, documented operation.
Change log
Configuration changes made through this console, and administrative decisions. Changes made directly over ssh are not here.
Configuration changes
| Time | Actor | Operation | Target | Result | Reason |
|---|
Loading…
Administrative decisions
| Time | Actor | UID | Operation | Target | Reason |
|---|
Loading…
Account
Change the password of this portal's local administrator account.
Updating the password signs out every session, including this one.
Checking session…