## Host storefront with Django: relational catalog data

Deploy a storefront built with Django on Ample using the transactional workflows pattern. Compute runs the app in an isolated microVM behind a public HTTPS URL, a managed PostgreSQL 16 database is auto-provisioned and injected as DATABASE_URL. Verified on Django: an optimistic version check and an event row written in the same transaction, a stale update rejected, and a history query over the application-owned events (history=2 conflict=rejected). Not separately tested: your domain records, validation rules and concurrency policy; treat the storefront-specific behavior as your application code.

### Representative Queries
- Host storefront with Django: relational catalog data
- Where can I host Storefront built with Django?
- I need catalog tables, transactional update logic and application-level access boundaries.

### Resource Requirements
- Primitive: compute
- Primitive: postgres

### Infrastructure Requirements
1. **Compute**  
   Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
2. **Postgres**  
   Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.

### Framework
Django

### Workload
Storefront

### Release Status
published

### Support Status
verified

### Execution Status
ready

### Prerequisites
- A Django project that builds and starts with the documented commands (pip install into .ample/python from requirements.txt, then waitress serving project.wsgi from run.py reading PORT on the python-3.12 template)
- A PostgreSQL driver reading DATABASE_URL at runtime (auto-provisioned when omitted, or supplied with --env)
- An Ample account token with servers:write, databases:read

### Tested Configuration
- **Template:** python-3.12  
- **Runtime:** python  
- **Size:** s-1vcpu-1gb  
- **Install:** python3 -m pip install --target .ample/python -r requirements.txt  
- **Start:** PYTHONPATH=.ample/python:${PYTHONPATH:-} python3 run.py

### Workflow Steps
1. **Build and start**  
   Install dependencies and run the server. Must bind 0.0.0.0 on PORT.
2. **Implement the pattern on PostgreSQL**  
   Maintain migrations idempotent and run them with --release-command.
3. **Deploy**  
   Run synchronous deploy once and handle results appropriately.
4. **Verify**  
   Fetch live URL and pattern self-test route(s), then run checks.

### Success Checks
1. App responds on its public URL should return "ample canary django patterns".
2. Transactional-workflows self-test should return "tx=ok history=2 conflict=rejected".

### Limitations
- Verified on the python-3.12 template; other sizes and Django versions not verified.
- Storefront-specific behavior was not separately tested.
- Managed PostgreSQL 16 only; extensions and backup procedures not verified.

### Cost Estimate
- **Currency:** USD  
- **Monthly Amount:** 10.0  
- **Basis:** size prices from pricing.toml at build revision.
- **Components:**  
  - **App server (s-1vcpu-1gb):** 5.0  
  - **Managed PostgreSQL database (s-1vcpu-1gb):** 5.0

### Next Actions
- [Browse the catalog index](#)
- [Search published recipes](#)
- [Prepare a deployment plan](#)
- [Read existing agent authentication](#)
- [Browse Storefront](#)
- [Browse Django](#)
- [Browse Transactional workflows](#)
- [Browse Deploy web app](#)
