Workspace / Apps
Go live with your app
Connect domains, choose access and expiry, then verify the public result. Domain and platform-policy changes do not rebuild your app.
Changes that run on the host need live publishing turned on for the platform and your app’s host approved by an administrator. Otherwise they answer LIVE_DISABLED or HOST_NOT_APPROVED; reviews work either way. Copy each custom hostname’s ownership TXT record to your DNS provider before applying; keep correct A/CNAME records. Existing app login and expiry remain separate. User manual · Deploy guide · API reference · Agent and client setup
Your hosts and spend
Apps run on a shared host, or on an isolated host of your own that nobody else's apps share. Your own hosts, and dev instances, count against one monthly spend cap.
| Name | State | Size | Region | Monthly | So far | Address |
|---|
Reserve an isolated host
| App | Host monthly | App's share | Paid by |
|---|
Current state
Status and logs
What your app’s containers are doing on the host and what they printed. Values from your environment are masked, and every log read is recorded.
| Service | State | Health | Restarts | Last exit | Memory | CPU | Started |
|---|
Access links
A link opens this private app for one person without the password. Revoke it on its own; the sessions it opened end with it. Other visitors see your app’s own sign-in page: it asks for the password and, when people or teams are listed under “Private app: callbacks, caching and sign-in”, also offers Sign in with PitchStation. Once in, your app receives their requests' own Authorization header (for example a bearer token for your API).
| For | State | Expires | Opened | Link |
|---|
Backups
Once backups are configured, a deploy of an app that already has a release backs up its data first (unless the API’s beforeDeploy setting is off): before the first pre-deploy hook, else before the migration, else before the new containers start. The host keeps the newest; the platform keeps the newest 10 off the host too.
| When | Why | Size | Where |
|---|
Move to another host
The app is backed up and stopped here. The destination builds it (a release deployed from an image archive is loaded instead), restores the data and starts it, and then routes to it. The stopped copy here is kept 7 days by default. The platform address changes when the destination has a different base domain; Review move shows the new address. Point each custom domain at the destination as soon as the move stops the app here: the destination routes to the app only once every name resolves to it.
Read-only file system
Services listed here run with a read-only root file system and a writable /tmp. Keep data in named volumes. Applied at the next deploy, rollback or env change.
Deploy settings
The migration and the service it runs in, deploy hooks, and where the Compose file is. Commands run inside the container, split into words like a shell would; wrap one that needs a shell in sh -c '…'. Commands are never shown back: send one again to change it. Used by the next deploy.
Image archives
Build on your machine, in CI or on a Devbox and deploy the images: the host loads them and builds nothing. Build for your host’s CPU: pitchstation-apps.cjs archive --source DIR --platform linux/arm64 --output ~/.pitchstation/SLUG-images-01.tar.gz (or linux/amd64). Keep the archive outside the project, or it is packed into the upload, and give each build a new file name: the client never overwrites a file. Each shared host has a fixed architecture, and an isolated host has the one you chose; pitchstation-apps.cjs targets lists them. Then deploy --app ID --source DIR --image-archive ~/.pitchstation/SLUG-images-01.tar.gz. The newest three are kept.
| Uploaded | Archive | Images | Size |
|---|
Private app: callbacks, caching and sign-in
Callback paths skip the password for signed machine callbacks (payment webhooks, OAuth redirects); expiry still applies and your app must check each callback's signature. Cache paths let a viewer's own browser keep content-hashed files. People and teams listed here can open the app with their PitchStation account. Reviewed as a plan, then applied like any access change.
3 · Review and apply
No plan selected.
Apply needs live publishing on and a host an administrator approved (LIVE_DISABLED, HOST_NOT_APPROVED). A plan lasts 15 minutes, and only while the configuration is unchanged; after that, review again. You can close this page while an accepted operation runs.
| Type | Name | Value / target | TTL | Purpose | Copy |
|---|
Records of verified hostnames: keep them at your provider
Every change that updates routing checks the TXT record again, so deleting it stalls deploys. The A record must point at the address shown; it changes when the app moves.
| Type | Name | Value / target | TTL | Purpose | Copy |
|---|