Skip to content

Configuration ​

Arkyc is configured via environment variables. The API reads apps/api/.env; the dashboard and playground read their own .env files (Vite). Copy each .env.example and adjust.

API (apps/api/.env) ​

Core ​

VariableExamplePurpose
APP_NAMEArkstackApplication name.
APP_URLhttp://localhost:3100Public base URL of the API.
APP_PORT3100Port the API listens on.
APP_HOSTlocalhostBind host.

Database ​

VariableExamplePurpose
DATABASE_URLpostgres://arkyc:arkyc@localhost:5432/arkycPostgreSQL connection.

Match this to your Postgres. The bundled docker-compose.yml provisions arkyc:arkyc@localhost:5432/arkyc.

Auth & crypto ​

VariableExamplePurpose
JWT_SECRETa-long-random-secretSigns dashboard session JWTs.
JWT_EXPIRES_IN1hDashboard token lifetime.
TWO_FACTOR_ENCRYPTION_KEY(32-byte key)Encrypts 2FA secrets.
CLIENT_TOKEN_TTL_SECONDS900Client-token lifetime (15 min).

Providers ​

VariableDefaultNotes
OCR_DRIVERmockmock, tesseract, ai, or external.
LIVENESS_DRIVER / FACE_MATCH_DRIVERmockmock or external.
OCR_FALLBACK_DRIVERmockUsed when OCR_DRIVER=ai but a project isn't granted the ai capability.
OCR_API_KEYnoneAnthropic API key for OCR_DRIVER=ai.
OCR_AI_MODELclaude-haiku-4-5-20251001Vision model for the ai driver.
OCR_AI_MAX_EDGE1568Longest uploaded image edge (px) for the ai driver.
OCR_ENDPOINT / LIVENESS_ENDPOINT / FACE_MATCH_ENDPOINTnoneexternal HTTP endpoint (or API base override for ai).
LIVENESS_API_KEY / FACE_MATCH_API_KEYnoneOptional bearer for the endpoint.
ADDRESS_DRIVERmockmock or live (address stage; opt-in workflows).
ADDRESS_ORS_API_KEYnoneopenrouteservice key for the live driver's geocode_lookup.
ADDRESS_ORS_URL / ADDRESS_NOMINATIM_URLpublic endpointsGeocoder base overrides (forward / reverse).
ADDRESS_USER_AGENTArkyc/1.0 (…)User-Agent sent to Nominatim (per its usage policy).

See Provider drivers and Workflows.

Storage ​

VariableDefaultNotes
FILESYSTEM_DISKlocallocal, s3, gcs, or ftp.
S3 (s3 disk)noneAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, AWS_BUCKET, AWS_ENDPOINT, AWS_URL.
GCS (gcs disk)noneGOOGLE_CLOUD_PROJECT, GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_CLOUD_STORAGE_BUCKET.

Any S3-compatible service works via the s3 disk — point AWS_ENDPOINT at it.

Queue ​

VariableDefaultNotes
QUEUE_CONNECTIONsyncsync (inline), database (durable), or redis.
QUEUE_TABLEjobsTable for the database connection.
QUEUE_RETRY_AFTER90Seconds before a reserved job is reclaimed.
REDIS_HOST / REDIS_PORT / REDIS_PASSWORD / REDIS_QUEUE_DBnoneFor the redis connection.

With database or redis, run workers; see Self-hosting.

Mail ​

MAIL_HOST, MAIL_PORT, MAIL_SECURE, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM_ADDRESS: for invitation and verification emails. In dev, a Mailpit container on 1025 works well.

Dashboard (apps/dashboard/.env) ​

VariableExamplePurpose
VITE_API_ENVdevelopmentSelects which API URL below is used.
VITE_DEV_API_URLhttp://localhost:3100API base in development.
VITE_STAGING_API_URL / VITE_PROD_API_URL / VITE_API_URLnoneAPI base for other environments.

Playground (apps/playground/.env) ​

VariableExamplePurpose
ARKYC_SECRET_KEYsk_…Project secret key (server-side only).
ARKYC_API_URLhttp://localhost:3100API base the playground proxies to.
ARKYC_WEBHOOK_SECRET(signing secret)Verifies received webhooks (optional).
PORT5174Playground dev-server port.

Released under the MIT License.