Adios
Apps and platforms · plans from $10/month

Deploy Strapi.Keep the CMS state explicit.

Build the Strapi 5 admin application on Node.js 24, connect managed PostgreSQL, generate every production secret, and keep local media uploads on durable storage.

Keep the repositoryInspect build and logsCustom domains and TLS
Adios deploy

Candidate release

Strapi

Healthy

SOURCE

Git

REGION

de

ROUTE

HTTPS

01Source received

02Build completed

03Runtime started

04Health check passed

Promoted route

production.adios.run

A production path for

Strapi 5Node.js 24PostgreSQL 17Generated secretsPersistent uploads

The production path

A working Strapi project still needs a safe release.

The application or service is only one part of production. Build evidence, runtime state, health, secrets, logs, routes, and the promoted version should remain inspectable together.

Build with a supported Strapi runtime

The starter uses Node.js 24, which is inside Strapi 5's declared package-engine range, and builds the administration panel before starting the production server.

Provision the database with the application

Managed PostgreSQL 17 is created with a generated password and injected DATABASE_URL, keeping the service connection attached to the deployment contract.

Preserve credentials and uploaded media

Application keys, JWT secrets, token salts, and the encryption key remain secret-backed while the uploads volume preserves media written by the local upload provider.

From source to release

Three steps keep the deployment path reviewable.

Use the source and production behavior the project already has. The manifest records what the platform should build or provision and how the result becomes ready.

  1. 01

    Start with source or a template

    Bring the existing repository, or inspect and deploy one of the exact starter variants linked below.

    $adios login
  2. 02

    Review the deployment contract

    Keep commands, runtime or service version, health behavior, and secret references in adios.yaml.

    $git diff -- adios.yaml
  3. 03

    Deploy and inspect the result

    Follow build and runtime evidence, verify the candidate, and open the promoted route or service connection.

    $adios up
adios.yaml
Your project
runtime: node@24
secrets:
  POSTGRES_PASSWORD: secret://generate:32
  APP_KEYS: secret://generate:128
  API_TOKEN_SALT: secret://generate:64
  ADMIN_JWT_SECRET: secret://generate:64

resources:
  db:
    type: database
    template: postgres:17
    database: strapi
    username: strapi
    password: secret://POSTGRES_PASSWORD

build_cmd: npm install && npm run build
start_cmd: npm run start
port: 1337
volumes:
  - /app/public/uploads
The full starter also generates the transfer-token salt, users-permissions JWT secret, and admin encryption key.

Deployable starting points

Start Strapi from a template when the repository is not ready.

The Strapi starter includes production configuration, managed PostgreSQL, generated secrets, the built-in health endpoint, and a persistent local-upload directory.

Web apps

Strapi 5 with PostgreSQL

Strapi 5 on Node.js 24 with managed PostgreSQL, generated secrets, and persistent uploads.

JavaScriptnpm
Template key
strapi
Runtime
node@24
Repository
templates
Source path
nodejs/strapi
git clone https://github.com/adiosdotdev/templates.git
cd templates/nodejs/strapi
adios up

Before production

Verify the workload.Then promote it.

The safest first release starts with a reproducible build or service configuration and a preview that exercises the dependencies production will actually use.

Ready when…

  • The production admin build completes on Node.js 24.
  • Strapi reaches managed PostgreSQL through DATABASE_URL.
  • The /_health endpoint responds after startup.
  • Uploaded media survives a new release and has a backup owner.

Preview when…

  • Content types or database migrations change.
  • An upload-provider or authentication plugin is added.
  • Database SSL, pooling, or cross-region placement changes.

Questions, answered

What to know before deploying Strapi.

Review the runtime or service boundary, template path, failure behavior, and production checks before creating the first release.

Which Node.js version does the Strapi template use?

The template uses Node.js 24. Strapi 5.46.1 declares support for Node.js 20 through 24, and the starter keeps the matching engine range in package.json.

Which database is provisioned for Strapi?

The starter provisions managed PostgreSQL 17 and injects a secret-backed DATABASE_URL. PostgreSQL 17 is Strapi's current recommended PostgreSQL version and is above its version 14 minimum.

Which Strapi secrets are generated?

The manifest generates the PostgreSQL password, app keys, API-token salt, admin JWT secret, transfer-token salt, users-permissions JWT secret, and admin encryption key.

Are Strapi uploads persistent?

Yes for the included local upload provider. The template mounts /app/public/uploads on persistent storage. If you switch to object storage, update the provider configuration and backup plan.

What health endpoint should I monitor?

Strapi exposes /_health and returns a successful no-content response after the server is ready. Use it for release readiness and uptime checks.

The first release

Deploy Strapi with the source and evidence attached.

Start from the repository or a template, review the deployment contract, and inspect what becomes the promoted production version.