github oblien/openship v0.9.1
Openship v0.9.1

5 hours ago

This patch adds a public app catalog, Russian dashboard support and runtime image
controls. It fixes workflow saves and Cloud recovery, updates webmail live, and
improves routing, build capacity and image handling during redeployments. These
notes cover all changes since 0.9.0.

Apps, language and workflow setup

  • Browse apps before installing — the public website now has an Apps directory
    with search, category filters and individual pages showing features, included
    services and app overviews. Installation opens the existing Cloud setup flow;
    self-hosted users can follow the installation guide. Returning to the directory
    preserves search and category selections.
  • Russian language support — select Russian during onboarding or in dashboard
    language settings. Dashboard translations cover workflow setup, Cloud reconnect
    and webmail recovery, and a Russian README is available alongside the existing
    localized introductions.
  • Save custom Actions workflows — new standalone workflows initialize their
    name from validated YAML, so valid starter workflows can be saved after setup.
    Missing names, runners, files, source validation or access settings now have
    inline guidance that leads back to the relevant control or editor. Repository
    setup also offers a direct custom-workflow option.

Cloud and webmail recovery

  • Continue app installs and plan selection after sign-in — app and plan links
    retain their destination through login, registration, verification, password
    reset and 2FA. App installation resumes its confirmed configuration, server and
    existing draft after checkout; failed retries remain recoverable. Plan links
    select an offer for review, with an explicit action still required to purchase.
  • Reconnect saved Cloud server links — disconnected links show a Cloud sign-in
    action, with separate guidance for account mismatches and temporary failures.
    Live controls wait for a verified connection, and reconnecting reuses the saved
    server link. Controls missing from an older Cloud API show availability guidance;
    refreshing retries reads without repeating a write.
  • Recover an existing webmail app — when a mail registration loses its webmail
    link, select an accessible existing app on the same mail server and hostname and
    choose Reconnect and deploy. Recovery reuses the project, credentials and
    persistent volumes while preserving domain ownership and permission checks.

Runtime configuration and deployment safety

  • Select matching runtime versions and custom production images — generated
    PHP builds support PHP 8.3 and 8.4 through the generic runtimeVersion setting.
    Docker source builds offer an advanced runtimeImage override. Stack-selected
    recipes validate actual runtime capabilities and compatibility before activation;
    invalid settings do not partially update the project, and retained-image rollback
    preserves the original version and image configuration.

  • Recover Cloud Actions from connected instances — Desktop and self-hosted
    clients forward Cloud workflow and runner operations to their owning Cloud
    instance, with the same scope and permission checks.

  • Use the server's actual available build capacity — automatic Cloud builds
    account for running workloads and pending CPU reservations before choosing
    their worker size. Build setup also reports the effective workspace capacity.

  • Recheck deployment health — project status and workload selection reuse
    current startup-health verification while retaining earlier warnings for review.

  • Track current container images during Compose redeploys — cached Docker
    inventory preserves immutable image identity, so port preflight and rollback
    can verify running services safely.

  • Receive live inbox changes — webmail refreshes after IMAP IDLE events, with
    event streams flushed through buffering proxies and correct folder routing.

  • Simplify the project Backup page — the existing project header supplies
    its title, removing the duplicated backup heading and description.

  • Validate declared runtime roles — stack-role configuration rejects missing
    kinds, empty commands, incomplete exec probes and invalid replica counts.
    This is configuration/detection support for future role execution.

  • Preserve domains that route only specific paths — migrations now discover
    and retain domains with exact or prefix routes and no catch-all service. OpenResty
    and Cloud routing preserve those paths; unmatched requests return 404. Omitting
    an existing source catch-all requires a decision before project creation or
    source container changes. Routing retries keep the previous complete table when
    a selected upstream is unavailable.

  • Refresh deployment images before replacing services — manual Docker
    redeploys refresh mutable registry tags while preserving locally built images
    and pinned rollback artifacts. Full redeploys keep otherwise unchanged external
    services, including databases, running when their actual image content matches.
    Docker validates every replacement image and freezes its reference before
    activating any service; failed preparation leaves existing containers running.
    Image preparation is all-or-nothing, while container replacement remains
    sequential rather than a transaction across the whole stack.

Don't miss a new openship release

NewReleases is sending notifications on new releases.