📌 Purpose & Quick Summary
The App Engine is BoostonCP's multi-runtime application deployment platform. Powered by the enterprise PM2 process manager and edge Nginx reverse proxying, it allows you to run modern dynamic web applications—including Node.js LTS, Next.js SSR/Pro, Python 3 (WSGI/FastAPI/Django), and Ruby (Puma/Rails)—on dedicated local ports (127.0.0.1:$PORT) with automated SSL termination and zero-downtime process management.
Figure 12: App Engine runtime catalog showing Node.js, Next.js, Python 3, and Ruby deployment options.
🖥️ Interface Tour & Elements
- Runtime Explore Catalog: Visual cards representing supported runtimes:
- Node.js LTS: Express, NestJS, Strapi, Socket.io applications.
- Next.js Pro: Server-Side Rendered (SSR) React applications.
- Python 3: Flask, Django, FastAPI WSGI/ASGI applications.
- Ruby Runtime: Sinatra, Ruby on Rails (Puma) applications.
- Deploy Application Modal:
- App Name: Custom alphanumeric application identifier.
- Domain Selector: Target domain or subdomain where traffic will be proxied.
- Port Assignment: Dedicated local port (e.g.
3000,8000,8080). - App Root Directory: Directory selector to designate the project root.
- Startup Script: Entrypoint filename (e.g.
app.js,server.js,wsgi.py). - Environment Variables: Key-value editor for application configuration (
PORT,NODE_ENV=production).
🛠️ Step-by-Step Instructions
Step 1: Preparing Your Application Files
- Use the File Manager or Git Push-to-Deploy to upload your project files into a folder in your home directory (e.g.
/home/user/apps/my-node-app). - If deploying Node.js, ensure your dependencies are installed (
npm install).
Step 2: Deploying via App Engine
- In the sidebar, click App Engine (icon:
fa-microchip). - On the Node.js LTS or Next.js card, click Setup Node (or Setup Next).
- In the deployment modal:
- App Name: Enter
my-api. - Domain: Select your domain from the dropdown (e.g.
api.yourdomain.com). - Port: Enter an unassigned port (e.g.
3005). - App Root: Click Browse and select
/apps/my-node-app. - Startup Script: Enter
server.js. - Environment Variables: Add
NODE_ENV=production.
- App Name: Enter
- Click Deploy Application.
Figure 12.1: App Engine deployment modal configuring app name, domain proxy, port, and startup script.
- BoostonCP registers the process under PM2, compiles the Host Nginx reverse proxy configuration (
proxy_pass http://127.0.0.1:3005), and reloads listeners with zero downtime.
⚙️ Complete Field & Parameter Reference Table
| Parameter | Required | Example | Operational Significance |
|---|---|---|---|
| App Name | Yes | store-backend |
Unique PM2 process identifier in the process table. |
| Domain | Yes | store.domain.com |
Host Nginx reverse proxy routes traffic for this domain directly to the app port. |
| App Port | Yes | 3000 - 9999 |
Local TCP port where your application listens (127.0.0.1). |
| App Root | Yes | /apps/store |
Working directory where PM2 launches the process (cwd). |
| Startup File | Yes | app.js / wsgi.py |
Primary execution entrypoint file executed by the runtime. |
| Environment | Optional | KEY=VALUE |
Injected environment variables available to runtime processes. |
❓ Troubleshooting & Common Errors
1. App Status Shows "Errored / Restarting"
- Cause: Syntax error in the startup script or missing dependencies (
node_modules). - Solution: Click the View Logs button in the Installed tab. Inspect the real-time
stderroutput to identify the exact missing module or syntax error.
2. Browser Returns "502 Bad Gateway"
- Cause: The application is not listening on the exact port specified in the App Engine modal, or crashed immediately after startup.
- Solution: Ensure your code uses
process.env.PORTor explicitly listens on127.0.0.1:$PORT.