page:recipes:vendor portal:phoenix:tenant workspaces
Host vendor portal with Phoenix: tenant-scoped workspaces
Summary
Deploy a vendor portal built with Phoenix on Ample using the multi-tenant relational data 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 Phoenix: a tenant column on every row and query, with a cross-tenant read returning nothing (tenant_isolation=ok). Not separately tested: your tenant model, membership and per-tenant authorization; treat the vendor portal-specific behavior as your application code.
Representative Queries
- Host vendor portal with Phoenix: tenant-scoped workspaces
- Where can I host Vendor portal built with Phoenix?
- I need an explicit tenant model and application-enforced tenant isolation tests.
Resource Requirements
- Compute
- Postgres
Infrastructure Requirements
- Compute: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
- 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.
Prerequisites
- A Phoenix project that builds and starts with the documented commands.
- A PostgreSQL driver reading DATABASE_URL at runtime.
- An Ample account token with servers:write, databases:read.
Tested Configuration
- Template: elixir-1.18
- Runtime: elixir
- Size: s-1vcpu-1gb
- Install: mix local.hex --force && mix local.rebar --force && MIX_ENV=prod mix deps.get --only prod
- Build: MIX_ENV=prod mix compile && MIX_ENV=prod mix release --overwrite
- Start: PHX_SERVER=true _build/prod/rel/$(ls _build/prod/rel | head -n 1)/bin/$(ls _build/prod/rel | head -n 1) start
Workflow Steps
- Build and start: mix deps.get, MIX_ENV=prod mix compile and mix release in the builder...
- Implement the pattern on PostgreSQL: The fixture's module implements multi-tenant relational data...
- Deploy: Run the synchronous deploy once and read the result...
- Verify: Fetch the live URL and the pattern self-test route(s)...
Success Checks
- App responds on its public URL.
- Multi-tenant-relational-data self-test.
Limitations
- Verified on the elixir-1.18 template at s-1vcpu-1gb with the example fixture...
Cost Estimate
- Monthly Amount: 10.0 USD
- Note: Always-on monthly price of the tested sizes...
Evidence Summary
- Canary run: Phoenix pattern fixture deployed on Ample...
- Canary run: The same Phoenix app deployed with a --release-command migration...
Last Verified At
2026-09-20T23:45:31Z