Skip to main content

How to Deploy an Application

This guide walks through the complete process of deploying a containerized application to the Strongly platform.

Prerequisites

Before deploying, ensure you have:

  • Your application code in a directory
  • A Dockerfile in the project root
  • A strongly.manifest.yaml configuration file
  • Optional: .env file for environment variables

Step 1: Navigate to Apps

Apps page

  1. Click Apps in the main navigation
  2. Click the Deploy App button

Step 2: Configure Your App

Deploy New App form

Basic Information

Provide essential metadata about your application:

  • App Name (required): Unique identifier (lowercase, alphanumeric, hyphens only; must be URL-friendly)
  • Display Name: Optional friendly name shown in the UI
  • Thumbnail: Optional image (max 750KB) shown on the app card
  • Description: Brief description of your app
Naming Rules

App names must be lowercase and can only contain alphanumeric characters and hyphens. No spaces or special characters.

Source Code

Choose one of three Source Types:

  • Upload Archive: Upload a ZIP or TAR archive of your application code (.zip, .tar, .tar.gz, .tgz; maximum file size 100MB). The archive must contain a Dockerfile and strongly.manifest.yaml in its root. Optionally include a .env file for environment variables.
  • GitHub Repo: Provide an SSH repository URL, branch, and an SSH key from your profile integrations; optionally a subdirectory within the repo.
  • Project Volume: Deploy from a folder on one of your project volumes that contains a strongly.manifest.yaml.
Archive Structure

Ensure your Dockerfile and manifest are in the root of the archive, not in a subdirectory.

Connect Services (Optional)

Below the source section, attach platform services to your app. All connections are injected at runtime via the STRONGLY_SERVICES environment variable:

  • Environment Variables: Key-value pairs available to your app at runtime
  • Add-ons: Managed database instances (MongoDB, PostgreSQL, Redis, and others) -- connection strings injected automatically
  • Data Sources: External databases and storage -- credentials encrypted and injected at runtime
  • AI Models: Models from the AI Gateway -- endpoints and configuration provided automatically, usage tracked through the platform
  • Workflows: Workflows with REST API trigger nodes that your app can invoke

Resources

Resources and autoscaling

  • Environment (required): Pick a predefined environment (a named CPU/memory configuration managed by your administrators), or Custom Configuration to set CPU, memory, disk, and GPU directly
  • Instances: Number of app instances to run (1-10). Each instance runs on its own pod
  • Use Spot Instances: Optional toggle that runs your app on spot capacity, saving up to 70% for interruption-tolerant workloads

GPU support: For compute-intensive workloads, choose Custom Configuration (or a GPU environment) or configure GPU resources in the manifest's resources section with the gpu field.

Autoscaling (Optional)

Check Enable Autoscaling to scale automatically based on CPU and memory usage:

  • Min Replicas (1-20, default 1) and Max Replicas (2-50, default 10)
  • Polling Interval (10-300 seconds, default 30)
  • CPU Threshold (default 70%) and Memory Threshold (default 80%) -- scale up when usage exceeds the threshold

Scaling decisions are made every polling interval based on average resource usage across all instances. See Auto-Scaling Configuration for details.

Step 3: Deploy & Monitor

  1. Review Configuration: Check all settings before deployment
  2. Click Deploy App: Initiate build and deployment process
  3. Monitor Build: Watch build progress and logs stream in real time
  4. Access App: Once deployed, click View App on the app details page

Build Process

The platform automatically:

  1. Extracts your code archive (or clones from GitHub)
  2. Builds a Docker image from your Dockerfile in an isolated build environment
  3. Stores the image in the platform's private container registry
  4. Deploys the app with your configured resources and instance count
  5. Injects environment variables and service connections (including STRONGLY_SERVICES)
  6. Starts health checks

Build progress and logs stream live on the page while the build runs.

Build Timeout

Builds must complete within 20 minutes. Optimize your Dockerfile with multi-stage builds and layer caching to reduce build time.

Build Status Flow

Builds progress through the following statuses:

pending -> building -> completed
-> failed (build error, or exceeded the timeout)
-> cancelled

App Management

Open any app from the Apps page to reach its details page. Seven tabs cover the full lifecycle: Overview, Metrics, Logs, Permissions, Home App, Versions, and Settings.

App details Overview tab

Start/Stop/Restart

The status bar at the top of the details page shows the current status (Running, Stopped, Error) and the lifecycle controls:

  • Stop: Stop a running application
  • Restart: Restart an application (stop then start)
  • Delete: Permanently remove the application
  • View App: Open the running application in a new tab

Update Configuration

Update your running application:

  • Update environment variables
  • Scale instances up or down
  • Add or remove connected services
  • Redeploy to apply changes
Redeploy Required

Configuration changes require redeployment. The existing deployment is deleted first and a new one is created.

View Logs & Metrics

Monitor your application from the Metrics and Logs tabs:

  • Metrics: CPU, memory, and disk usage against allocation, plus network I/O, with an auto-refresh toggle
  • Logs: Three views -- Build Logs, Deployment Logs, and Runtime Logs -- with search, auto-refresh, and download

See Logs, Metrics & Monitoring for details.

Common Deployment Issues

Build Fails

  • Check Dockerfile syntax
  • Ensure all dependencies are accessible
  • Verify build context includes all required files
  • Check build logs for specific errors

App Builder Unreachable

If you see an app-builder-unreachable error:

  • The app builder backend service is not responding
  • Check that the app builder service is running
  • Verify network connectivity between frontend and backend

App Won't Start

  • Verify health check endpoint is accessible
  • Check application logs for startup errors
  • Ensure environment variables are set correctly
  • Verify port configuration matches manifest

Connection Issues

  • Check STRONGLY_SERVICES environment variable is properly parsed
  • Verify credentials and connection strings
  • Test connectivity from app terminal

Next Steps