Overview
Phenom Drop is the media intake system for the Phenom app ecosystem. It handles user media submissions with consent tracking, email collection, and C2PA credential signing. The backend runs on AWS App Runner.
Repository: thephenom-app/phenom-drop
Architecture
phenom-drop/
backend/
server.py -- Python HTTP server
requirements.txt -- Python dependencies
docker-compose.yml -- Local development
Dockerfile -- Docker build (legacy, pre-Sovereign Architecture)
Components
Backend Server (Python)
The Python server handles:
- Media file uploads (images, video)
- Consent form processing
- Email collection (
submitterEmail) - Firestore payload storage
- S3 media storage
- C2PA signing integration
Email/Consent Flow
- User submits media via the Phenom app drop interface
- Backend collects
submitterEmailfrom the consent form - Media files are uploaded to S3
- Drop payload (including
submitterEmail) is stored in Firestore - C2PA credentials are generated for the submitted media
Firestore Payload Structure
| |
Deployment
Build
Phenom Drop uses Docker builds (legacy pattern). Build on ai.matthewstevens.org:
| |
Push to ECR
| |
App Runner Deployment
App Runner automatically deploys when a new image is pushed to ECR. Manual trigger:
| |
See AWS App Runner SOP for full details.
NAS Deployment (Testing)
For NAS-based testing:
| |
Docker Network Requirements
The phenom-drop backend must be on the same Docker network as related services (e.g., drop-hash-log). If containers are on different networks, DNS resolution fails and you get 502 errors.
| |
S3 Configuration
- Bucket:
phenom-drop-media - Region:
us-east-1 - CORS: Configured for the Phenom app domain
- Access: Via AWS credentials (not public)
Known Issues
- Large file C2PA error: Files over 100MB may fail C2PA signing due to memory constraints. Increase App Runner memory if needed.
- Docker network isolation: Containers must be on the same Docker network for inter-service communication on the NAS.
- S3 CORS: If uploads fail with CORS errors, verify the S3 bucket CORS configuration includes the app domain.
Related Services
- Badge Signer – C2PA signing service
- AWS App Runner – Deployment infrastructure
- Docker Builds – Build server setup