Environment File Reference¶
SkillMeat reads runtime configuration from a .env file in the directory you run compose from. Each deployment profile has a dedicated template with inline comments explaining every variable. Use this page to download the template that matches your scenario.
Already have the repo?
If you've cloned skillmeat, copy the matching .env.*.example from the repo root instead of downloading — they are the same files.
Choosing a Template¶
| Template | Profile | Database | Auth | Best For |
|---|---|---|---|---|
.env.local.example |
local |
SQLite | None | Personal use, quickstart, offline dev |
.env.local-auth.example |
local-auth |
SQLite | Clerk | Small teams on a single host |
.env.enterprise.example |
enterprise |
PostgreSQL | Clerk (configurable) | Multi-tenant production |
.env.production.example |
any | any | any | Production with managed secrets |
.env.web.example |
— | — | — | Next.js web UI standalone dev |
Pair the template you pick with the compose files from the Container Deployment guide.
Downloading Templates¶
Local¶
Zero-config SQLite with no authentication. Safe defaults for a single-user machine.
- Download:
.env.local.example - Raw from GitHub:
Local with Auth¶
SQLite backend with Clerk authentication enabled — useful when a small team shares a single deployment and needs named accounts.
- Download:
.env.local-auth.example - Raw from GitHub:
Required edits after copying:
CLERK_SECRET_KEY/CLERK_PUBLISHABLE_KEY— from your Clerk dashboard.
Enterprise¶
PostgreSQL backend, multi-tenant RLS, full observability hooks. Intended for production deployments.
- Download:
.env.enterprise.example - Raw from GitHub:
Required edits after copying:
| Variable | What it does | Example |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | postgresql://skillmeat:password@postgres:5432/skillmeat |
POSTGRES_PASSWORD |
Database user password (if using bundled postgres service) | your-secure-password |
SKILLMEAT_EDITION |
Must be set to enterprise |
enterprise |
SKILLMEAT_AUTH_ENABLED |
Enable authentication | true |
SKILLMEAT_AUTH_PROVIDER |
Auth mechanism: clerk or local |
clerk |
CLERK_JWKS_URL |
Clerk JWT key set URL (when using Clerk) | https://<your-clerk-id>.clerk.accounts.com/.well-known/jwks.json |
CLERK_ISSUER |
Clerk JWT issuer (when using Clerk) | https://<your-clerk-id>.clerk.accounts.com |
SKILLMEAT_ENTERPRISE_PAT_SECRET |
Shared secret for enterprise service clients | your-enterprise-pat |
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Frontend Clerk key (when using Clerk) | pk_live_... |
NEXT_PUBLIC_SKILLMEAT_EDITION |
Frontend edition flag — must match backend | enterprise |
NEXT_PUBLIC_AUTH_ENABLED |
Frontend auth flag — must match backend | true |
Important notes:
DATABASE_URLformat:postgresql://username:password@hostname:port/database- For container deployments (compose): hostname is
postgres(service name) - For external/managed databases: hostname is your database host
NEXT_PUBLIC_*variables are inlined at build time. Changing them requires rebuilding the Next.js frontend:- Without
SKILLMEAT_ENTERPRISE_PAT_SECRET, the enterprise download/sync endpoints will reject requests - All
REPLACE_WITH_*placeholders must be filled before deploying
Production¶
Template oriented around production deployments where secrets are injected from a secrets manager (Vault, AWS Secrets Manager, GCP Secret Manager). Documents every variable the compose stack consults at startup.
- Download:
.env.production.example - Raw from GitHub:
Do not commit real secrets
Treat any filled-in .env as sensitive. Production deployments should source secrets from a vault and inject them at container start, not store them on disk.
Web UI Standalone¶
For running only the Next.js frontend against a remote API (e.g., during frontend development). Not required when using the compose stack.
- Download:
.env.web.example— copy toskillmeat/web/.env.local. - Raw from GitHub:
Applying a Template¶
- Download the template that matches your scenario.
- Copy it to
.env(or.env.localfor the web template) in the directory where you'll run compose: - Edit the file and fill in any values marked
REQUIREDor# TODO. - For container deployments using Podman (Fedora, RHEL): For Docker:
- For bare-metal/systemd deployments:
All templates include extensive inline comments — open the file in a text editor to see the full reference for each variable.
Build-Time Variables
Environment variables prefixed with NEXT_PUBLIC_ are inlined into the frontend at build time. Changing them requires rebuilding the web container with the --build flag. All other variables can be updated without rebuilding.
Related Guides¶
- Container Deployment — compose files, profiles, and startup sequence
- Authentication Setup — Clerk configuration walkthrough
- Server Setup — non-container installation
- Edition Feature Matrix — local vs enterprise capability differences