Apps

Overview

Apps are the core unit of deployment in Tapitalee. An app represents a complete application environment including all containers, infrastructure, and configuration needed to run your software. Apps provide isolation, resource management, and deployment orchestration for your Docker-based applications.

Purpose and Benefits

  • Application Isolation: Complete separation of resources between different applications
  • Resource Management: Centralized control over CPU, memory, and scaling configurations
  • Environment Organization: Logical grouping of related services and configuration

How Apps Work

App Structure

Each Tapitalee app consists of:

  • Processes: Container-based services (web servers, APIs, workers)
  • Add-ons: Infrastructure components (databases, storage, networking)
  • Variables: Configuration and secrets
  • Domains: Custom domain names and routing
  • Deploy Tokens: Authentication for CI/CD systems

AWS Infrastructure

Tapitalee creates the following AWS resources for each app:

  • ECS Cluster: Container orchestration and management
  • VPC: Isolated network environment
  • Security Groups: Network access controls
  • IAM Roles: Service authentication and permissions
  • CloudWatch: Monitoring and logging

CLI Usage

Create App

Create a new app with its infrastructure (VPC, ECS cluster, ECR registry)

tapit create app <app_name> [region=us-east-1] [memory=0.5] [cpu=0.25] [demand=1] [spot=1] [tenant=<name>] [description=<text>] [--ignore-existing] [-w|--wait]

Arguments

  • - Name for the new app

Parameters

  • region: AWS region to deploy to (default: ap-southeast-2)
  • memory: Memory allocation in GB for the default process (default: 0.5)
  • cpu: CPU allocation in vCPUs for the default process (default: 0.25)
  • demand: Number of on-demand container instances (default: 1)
  • spot: Number of spot container instances (default: 0)
  • tenant: Optional tenant name for tracking purposes (default: none)
  • description: Optional description of the app (default: none)
  • -w|--wait: Wait for app creation to complete before returning
  • --ignore-existing: Skip creation if an app with the same name already exists (useful for idempotent scripts)

Examples

# Basic app creation
tapit create app myapp

# App with custom resource allocation
tapit create app myapp memory=1.0 cpu=0.5 demand=2 spot=1

# App in specific region with wait
tapit create app myapp region=us-west-2 --wait

# Production app with larger resources
tapit create app prodapp memory=2.0 cpu=1.0 demand=3 spot=0 region=ap-southeast-2

Show App Details

Show details about the app including region, state, and add-ons

tapit show app

List Apps

List all apps for the current team

tapit list apps [--include-preview-apps] [tenant=<name>]

Parameters

  • tenant: Filter apps by tenant name
  • --include-preview-apps: Include preview apps in the listing (excluded by default)

Delete App

Delete an app and all its infrastructure

tapit delete [--force] app <app_name> [--delete-previews]

Arguments

  • - Name of the app to delete

Parameters

  • --force: Skip confirmation prompts
  • --delete-previews: Also delete all preview apps derived from this app

App Configuration

Resource Defaults

When you create an app, the default resource allocations apply to new processes unless overridden:

  • Memory: RAM allocation per container instance
  • CPU: Processing power allocation per container instance
  • Demand Instances: Always-on instances for guaranteed capacity
  • Spot Instances: Lower-cost instances that may be interrupted

You can mix demand and spot instances to guarantee some capacity and have some cost-optimized when usually available.

Environment Management

Multi-Environment Pattern

# Create environments for different stages
tapit create app myapp-dev region=ap-southeast-2
tapit create app myapp-staging region=ap-southeast-2
tapit create app myapp-prod region=ap-southeast-2 memory=2.0 cpu=1.0 demand=3

Preview Apps

Temporary environments for testing:

Create a preview app cloned from the current app’s configuration

tapit create preview <new_app_name> [domain=www.myapp.com] [delete_in_days=7] [-w|--wait]

Arguments

  • - Name for the new preview app

Parameters

  • domain: Custom domain to attach to the preview app
  • delete_in_days: Automatically delete the preview app after this many days
  • -w|--wait: Wait for preview app creation to complete before returning

Monitoring and Observability

Application Health

  • Process Health: Container health checking and automatic restart
  • Resource Utilization: CPU, memory, and network monitoring
  • Logging: Container application output (stdout/stderr) sent to Cloudwatch Logs