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
Dockerfilein the project root - A
strongly.manifest.yamlconfiguration file - Optional:
.envfile for environment variables
Step 1: Navigate to Apps

- Click Apps in the main navigation
- Click the Deploy App button
Step 2: Configure Your App

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
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 aDockerfileandstrongly.manifest.yamlin its root. Optionally include a.envfile 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.
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

- 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
- Review Configuration: Check all settings before deployment
- Click Deploy App: Initiate build and deployment process
- Monitor Build: Watch build progress and logs stream in real time
- Access App: Once deployed, click View App on the app details page
Build Process
The platform automatically:
- Extracts your code archive (or clones from GitHub)
- Builds a Docker image from your Dockerfile in an isolated build environment
- Stores the image in the platform's private container registry
- Deploys the app with your configured resources and instance count
- Injects environment variables and service connections (including
STRONGLY_SERVICES) - Starts health checks
Build progress and logs stream live on the page while the build runs.
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.

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
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_SERVICESenvironment variable is properly parsed - Verify credentials and connection strings
- Test connectivity from app terminal