page:recipes:community forum:sveltekit:private documents

Host community forum with SvelteKit: private documents

Deploy a community forum built with SvelteKit on Ample using the private document library 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, a private S3-compatible bucket holds objects with credentials delivered as encrypted environment variables. Verified on SvelteKit: a role-to-document access model with negative tests (401 without identity, 403 for the wrong role) and a private-bucket round-trip for the allowed role (private=ok). Not separately tested: your identity integration and role assignments; treat the community forum-specific behavior as your application code.

Representative Queries

Resource Requirements

Infrastructure Requirements

Framework

SvelteKit

Workload

Community forum

Release Status

Published

Support Status

Verified

Execution Status

Ready

Prerequisites

Tested Configuration

Workflow Steps

  1. Build and start
    vite build with @sveltejs/adapter-node then node build on the node-22 template. The server must bind 0.0.0.0 on PORT.

  2. Implement the pattern on PostgreSQL
    The fixture's module implements private document library: a role-to-document access model with negative tests (401 without identity, 403 for the wrong role) and a private-bucket round-trip for the allowed role (private=ok). Copy the approach into your schema; keep migrations idempotent and run them with --release-command.

  3. Wire object storage
    Create the bucket(s), then pass endpoint, region, bucket and keys as --env values. Use path-style addressing. Keep private data in an unpublished bucket.

  4. Deploy
    Run the synchronous deploy once and read the result (exit 0 live, 1 failed, 2 blocked). Re-running with no change is a no-op.

    Command: ample deploy . --name --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...

  5. Verify
    Fetch the live URL and the pattern self-test route(s) (/p/private-document-library) from the example; then run your own checks. On failure read ample logs --kind build then --kind runtime.

    Command: ample logs --kind build

Examples

Success Checks

Limitations

Cost Estimate

Currency: USD
Monthly Amount: 10.0
Authoritative: true
Basis: size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty.

Components

Note

Always-on monthly price of the tested sizes; apps and databases auto-pause when idle. Buckets are allocation-priced per quota and not included.

Evidence Summary

Last Verified At

2026-09-20T03:31:44Z