Skip to main content

Overview

The platform runs on AWS with the following services:

AWS account details

S3

Configuration

Config: config/filesystems.php under s3 disk.

Storage layout

The S3 bucket tutorbloc-app stores:

File access patterns

Files are served via temporary signed S3 URLs — not direct public URLs:

File model

File: app/Models/File.php Uses UUID primary keys (non-incrementing strings), not auto-increment integers.

ECS

Task definitions

Two environments, each running 3 containers: Production (production-taskdef.json): Staging (staging-taskdef.json):

Environment file loading

ECS loads .env from S3 at container startup:

Container startup

The app container (from Dockerfile) runs on startup:
  1. php artisan migrate --force — run pending migrations
  2. crond — start cron daemon for scheduled jobs
  3. php-fpm — start PHP-FPM process
If a migration fails, the container fails to start. This can cause deployment issues if a migration has errors.

CloudWatch

Logging configured per container:
All three containers (app, nginx, blackbox) log to the same CloudWatch group.

ECR images

Three images are pushed during CI/CD: The blackbox image is pulled separately (not built in CI/CD).