Oct 62026v0.8.1featurefixsecurity50 updatesCopy link
Managed Cloud servers
One server, multiple projects
Each managed server has its own subscription and shared CPU, RAM and disk. Builds, applications, Compose stacks and catalog services use the existing Docker and Bare deployment engines. Creating a project no longer allocates a separate VM or reserves another disk (#1036).
Choose Docker or Direct execution
Use Docker for containers and Compose, or run compatible source applications as supervised host processes with Direct. The shared destination picker can select an existing server or start a purchase for another. New eligible source apps default to Direct below 2 GiB RAM; saved projects and explicit runtime choices are preserved (#1064).
Use the capacity you purchased
A service can use the server's full available CPU and RAM, or use a custom container limit. Fractional CPU settings, including Micro, reach Docker correctly. Source builds use available server headroom and optional build caps; image-only installs do not start a source builder. Applications, builds and the operating system still share the host.
Inspect usage separately from capacity
Server monitoring distinguishes the purchased disk size from measured usage. Project containers and volumes have a disk breakdown, with shared images, build cache and system data shown separately. Missing readings stay unknown, and undeployed drafts no longer inflate running-service counts (#1011).
Manage the server when you need to
Reuse server diagnostics, terminals, listening-port checks and resource views. Networking controls outbound internet access; the Activity tab holds provisioning and resize logs. Scheduled command jobs can target shared or separately subscribed managed servers.
Recover operations without losing neighboring projects
Provisioning, resize and interrupted deployment work retain progress for retry. Resizing restores previously running services while leaving intentionally stopped ones stopped. Project deletion removes its own resources and preserves the shared server; server deletion checks remaining projects and subscription state.
Cloud accounts on desktop and self-hosted Openship
Your existing Cloud resources appear when you connect
Cloud projects, apps and managed servers join the local inventory. A server already linked to the installation appears once. Cloud-owned settings, deployment history and operations stay in Cloud rather than becoming local project copies (#1074).
Buy and use managed servers from the same dashboard
Cloud subscriptions and provisioning remain in Cloud. Local projects can select an authorized managed server through the same destination picker as SSH servers, using an execution link for deployment, logs, terminals, jobs and backups.
Account switches clear the previous account's state
Inventories, project details, deployment history and billing responses follow the selected Cloud account and organization. Connections are revalidated for live operations; locally scoped automation credentials do not inherit the owner's Cloud account.
Billing and plans
Monthly servers include their full paid period
New monthly plans cover purchased CPU, RAM and storage without a second compute-credit allowance or a monthly build-time cap. New offers have no project or running-service count limit; workloads share the server's physical capacity. Optional managed proxy transfer and storage retained after coverage ends remain separate charges.
Revised plans and Custom resources
Hobby is $5/month for 1 vCPU, 4 GiB RAM and 25 GiB disk; Starter is $20 for 2 vCPU, 8 GiB and 32 GiB; Pro is $39 for 4 vCPU, 16 GiB and 128 GiB; Scale is $99 for 8 vCPU, 32 GiB and 256 GiB. Custom lets you choose CPU, RAM and disk and review a quote before checkout.
Billing follows the selected server
Switch servers without losing the page, inspect each subscription independently, or use Get server for a new purchase. First-time customers see plans rather than empty usage screens. Smaller upgrade comparisons keep compact cards and a separate current-plan summary; payment methods and invoices share the server's Stripe portal.
Review plan changes before applying them
Show the provider's prorated amount, effective date and affected projects. Capacity upgrades apply after confirmed payment; resource reductions and billing-mode changes wait until renewal. Pending changes remain visible, and a resize requires restart consent. Disks can grow but cannot shrink in place.
Checkout has a visible recovery path
Payment confirmation, paid coverage and server readiness are separate steps. Setup failures expose progress and retry without asking for another purchase; the welcome dialog appears when setup completes. Unavailable offers show a dedicated dialog with retry and a support request for availability updates (#1062).
Resume or cancel unfinished payments
Pending payments lists each server's saved offer and opens its original checkout. Provider-confirmed cancellation lets you choose another plan or delete an unused, unpaid server. Cloud and connected installations share the recovery flow, and switching accounts discards the previous account's payment details and responses (#1067).
Preview prepaid PAYG tiers
Compare three shared resource-pool tiers, configure server resources and select a credit package in one calculator. The estimate separates active vCPU-hours, reserved RAM and storage, with hourly costs and balance-duration scenarios. Enterprise contact is available in both purchase views. PAYG purchases remain disabled in this release (#1057).
Account security and GitHub
Passkeys and authenticator 2FA
Settings → Security supports passkey registration and removal, authenticator QR setup, and single-use recovery codes. Enabled 2FA also applies after social and passkey sign-in. These controls are available on Cloud and self-hosted installations with local accounts (#984).
Account protection remains consistent during failures
Credential changes commit together, concurrent requests cannot reuse a challenge or recovery code, and password resets do not disable 2FA. OAuth, invitation and MCP handoffs resume after verification. Security setup state clears when the account changes.
GitHub repository access is independent of sign-in
One GitHub identity can authorize repositories for multiple Openship accounts without transferring login ownership. Reconnect existing installations from the shared connection flow, including direct installation links, and see completion or failure for each attempt (#992).
Personal tokens work throughout the repository flow
Git settings remain reachable through the alternative connection option. A verified token can supply repository and owner listings and private-source access when no GitHub App connection is available. Account avatars and Git URL entry are clearer.
Support and onboarding
A private Cloud support inbox
Submit deployment, billing, account or general tickets, search your history, reply and resolve or reopen a conversation. The same personal ticket history is available from Cloud-connected desktop and self-hosted installations. Team membership does not expose another user's tickets (#1073).
Support and contact pages accept durable requests
Submissions are saved before email delivery, with a receipt and notification to
support@openship.io. Delivery retries survive API restarts, and support replies appear in the inbox and are emailed to the customer. Retried submissions reuse their original receipt rather than creating another ticket (#970).Clearer first-run and account screens
Refreshed Cloud plan prompts, purchase welcome dialogs, email-verification and password-reset completion screens. The home page omits empty system-status cards for new Cloud accounts, and already subscribed users do not keep seeing the first-purchase promotion.
Apps and migration
Apps have their own place
A dedicated Apps sidebar entry and list keep catalog applications separate from source projects. Compact home rows, restored empty states and clickable app illustrations make discovery less cluttered.
A more consistent deployment wizard
Share destination and server controls across Cloud and self-hosted modes, with Full/Custom power choices, filled inputs, compact Build/Start settings, readable deployment-step icons and clearer draft project details. App install forms support grouped and two-column layouts.
App installation explains routing and resource choices
Public dashboards start with domain routing and ask for confirmation before continuing without a recommended domain. Self-hosted app CPU/RAM recommendations are advisory; failed Cloud installs can be retried or cleaned up without treating an absent runtime as a teardown failure (#1009, #1016).
Import Docker applications into managed Cloud servers
Reuse the existing migration engine for images, environment, volumes, bind data and routes. Cloud can connect an external SSH server as a migration-only source. Target preparation, saved progress, verification and explicit cutover support recovery; source data is preserved and source-container retirement requires consent.
Review imports as cards or topology
Compact expandable service cards are the default, with a topology view, expand-all controls, repository linking and clearer Custom, Free and Internal-only routing choices.
Builds, deployments and recovery
Stop cancels the selected builder
Cancellation reaches the worker's actual Docker or Bare runtime, including remote Git and archive preparation. The UI shows Stopping… until cleanup finishes, then permits redeployment. Cancelling a build preserves deployed containers that inherited build labels; ambiguous service ownership still blocks activation (#1059).
Build output stays readable
Cloud Docker streams preserve raw bytes, partial lines, UTF-8 characters and terminal progress updates. Uploads finish correctly when stdin closes. Disk and inode exhaustion are explained separately from memory failures, and temporary BuildKit cache is reclaimed after builds (#1058, #1064).
Unchanged Compose services stay running
Folder uploads and snapshot syncs no longer mark unchanged image services dirty. Import metadata preserves concurrent configuration edits; inherited project resource changes still apply while respecting per-service overrides (#989).
Pre-deploy backups finish before activation
Deployments wait for all configured pre-deploy backups and their cleanup, including when reusing a build. Failed backups offer retry, an explicit skip or stop. PostgreSQL dumps must succeed, and suspiciously small dumps are rejected against recent comparable backups before becoming restore points (#1060).
Remote builds and static releases use the right paths
Subfolder refreshes preserve root manifests and rescan at the project root. Static output resolves relative to that root, and retained artifacts are checked on their deployment destination for rollback. Directory-only
.dockerignorenegations are honored (#1010, #1041).Health checks and shutdown respect the runtime
Configured single-app readiness probes run through the deployment server; unreachable SSH leaves a check unverified. Docker replacement honors stop signals and grace periods, probe watchdogs are reaped, and Bare services retain the correct user privileges and artifact ownership (#1043).
Farm.js detection
Identify Farm.js applications and supply the framework's build and output defaults (#1037).
Domains, networking and monitoring
Free domains follow the selected managed server
Availability and quota checks retain the destination through project creation, Compose synchronization and deployment. Route changes are validated before related settings are saved; editing an existing route at the limit does not count it as a new route (#1064).
Connect Cloudflare from domain setup
Add and verify a DNS credential without leaving the DNS panel, review proposed records, then apply them. Cloudflare TXT quoting and Cloud certificate-status handling are corrected, while certificate checks verify the domain's project binding (#977).
More reliable wildcard HTTPS and Edge recovery
DNS challenge hooks pass Certbot validation, Compose installations detect Edge correctly, and challenge route cleanup checks ownership. Whole-project rules handle a null path prefix correctly. Projects no longer have the unrelated 20-public-endpoint schema cap (#1054, #1003, #1017, #1045).
Source updates remain visible until deployment completes
The project deployment tab indicates available updates; unchanged image services are not refreshed unnecessarily. Updates on the local Openship instance use the appropriate advisory flow, and resource reporting accepts current Docker runtime limits (#1006, #1047).
Connection and setup fixes
Recover Cloud Docker connections after credential rotation, report missing proxy/bridge failures clearly, correct registry TLS/WebSocket dependency compatibility, and handle Docker networks without subnets during cluster setup (#970, #1068, #961).
SDK, CLI and platform fixes
More administration through Ship SDK and the CLI
Add commands for project resources, environments, storage and connections; credentials and DNS; monitoring, notifications and webhooks; workspace access and audit history. They use the shared platform operations and permission checks.
Safer command targeting and environment edits
Each CLI invocation keeps its selected endpoint, credential and organization. Directory links reject mismatched contexts. Partial service environment edits preserve other values and secret classification; full replacement is explicit. Deployment waits have deadlines and expose pending decisions, and request logs can be followed through the SDK's authorized Cloud stream.
Clearer MCP Cloud workflows
Discover authorized managed destinations and deploy desktop folders through a connected server. Explicit promotion to Cloud can resume from its saved receipt after an interrupted response or cleanup, without importing the project again (#1056).
Webmail and dashboard fixes
Spam, Not spam and Archive move messages into the correct IMAP folders. Notification settings and icons recover from hydration races, Teams accepts current Microsoft webhook hosts, member-access settings avoid repeated refetches, and background project deletion preserves navigation (#981, #1004, #1008, #1035, #1024, #1066).
API startup and bulk-action validation
Capacity previews pass the startup permission scan, and malformed bulk container requests are rejected instead of being interpreted as an empty request (#1033, #994).
Optional Cloud product analytics
The hosted Cloud API can send configured PostHog events for signup, deployment and verified checkout/payment outcomes. Delivery is queued separately from those operations. Telemetry runs only on the hosted Cloud API; local operations, logs, secrets and session recordings are excluded.
Data transfer and upgrade notes
Complete, portable exports
Instance and project archives include plaintext environment values, server keys and credentials by default, without an export password. Treat the archive as sensitive or explicitly omit secrets. Imports still accept older encrypted archives and encrypt credentials with the destination's key.
Imports preserve scope and selected data
Instance imports default to full replacement after confirmation. Project overwrite removes destination-only records in selected categories and applies cleared credentials atomically. Project analytics retain normalized hostnames, including
www; unsupported archive fields are rejected before changing data.Upgrade Cloud before connected clients
New inventory and support features require the matching Cloud API. Desktop-initiated cancellation fixes require an updated desktop controller. Existing per-project Cloud deployments need an explicit migration to managed servers; updating alone does not consolidate VMs or replace saved subscription terms.
Keep account-security configuration stable
Self-hosted passkeys require HTTPS and a stable dashboard hostname through
OPENSHIP_PUBLIC_URL(localhost is supported for development). Retain and back upBETTER_AUTH_SECRET, which protects authenticator secrets and recovery codes.