POSTGRES_USER=typst POSTGRES_PASSWORD=typst POSTGRES_DB=typst POSTGRES_HOST=postgres POSTGRES_PORT=5432 DATABASE_URL=postgres://typst:typst@postgres:5432/typst MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin S3_ENDPOINT=http://minio:9000 S3_BUCKET=typst-projects S3_REGION=us-east-1 S3_ACCESS_KEY_ID=minioadmin S3_SECRET_ACCESS_KEY=minioadmin S3_KEY_PREFIX= # The source-build Compose stack binds published ports to localhost by default. # Set this explicitly to 0.0.0.0 only when direct network access is intended. TOSS_BIND_ADDRESS=127.0.0.1 POSTGRES_HOST_PORT=5432 MINIO_API_PORT=9000 MINIO_CONSOLE_PORT=9001 CORE_HOST_PORT=8080 CORE_API_PORT=8080 # Graceful-drain deadline after SIGTERM. The platform termination grace period # must leave additional time for endpoint removal and process exit. CORE_DRAIN_TIMEOUT_SECONDS=30 TOSS_DISTRIBUTION=community WEB_STATIC_DIR=/app/web-dist DATA_DIR=/data MAX_REQUEST_BODY_BYTES=67108864 # Directory mounted into Core and optional workers. deployment.toml is # non-secret; worker.token is a mounted secret and must remain untracked. TOSS_DEPLOYMENT_CONFIG_DIR=./config PROCESSING_WORKER_INSTANCE=community-latex-1 PROCESSING_LATEX_SLOTS=1 PROCESSING_APPARMOR_PROFILE=toss-latex-worker # Select a versioned distribution. Secret values remain separate environment # variables and must not be placed in this JSON file. Docker Compose derives # this path from TOSS_DISTRIBUTION to keep build and runtime capabilities aligned. TOSS_CONFIG=/app/distributions/community/toss.json TOSS_DEPLOYMENT_CONFIG=/app/config/deployment.toml SESSION_SECRET=dev-secret COOKIE_SECURE=false AUTH_DEV_HEADER_ENABLED=false OIDC_ISSUER= OIDC_CLIENT_ID= OIDC_CLIENT_SECRET= OIDC_REDIRECT_URI= OIDC_GROUPS_CLAIM=groups # User-facing identity-provider metadata. A GitLab-backed OIDC deployment may # use `gitlab` and `GitLab`; other deployments choose a stable ID and name. IDENTITY_PROVIDER_ID=oidc IDENTITY_PROVIDER_DISPLAY_NAME=OpenID Connect # Optional deployment-managed authentication policy. When present these values # override the database-backed Admin settings at runtime. AUTH_ALLOW_LOCAL_LOGIN= AUTH_ALLOW_LOCAL_REGISTRATION= AUTH_ALLOW_OIDC= AUTH_ANONYMOUS_MODE= # Comma-separated exact email addresses promoted to Site Admins after successful sign-in or registration. BOOTSTRAP_ADMIN_EMAILS= # One deployment-level key encrypts every stored external-provider grant. EXTERNAL_GIT_TOKEN_ENCRYPTION_KEY= # Client-secret names are derived from provider IDs: uppercase and replace '-' with '_'. EXTERNAL_GIT_GITLAB_CLIENT_SECRET= EXTERNAL_GIT_GITHUB_CLIENT_SECRET= EXTERNAL_GIT_GITEA_CLIENT_SECRET= EXTERNAL_GIT_CODEBERG_CLIENT_SECRET= # Manual sync jobs are executed asynchronously after a project owner requests them. EXTERNAL_GIT_CHECKPOINT_WORKER_INTERVAL_SECONDS=2 # Maximum jobs claimed by one worker pass. EXTERNAL_GIT_CHECKPOINT_WORKER_BATCH_SIZE=8 # Timeout for a single authenticated Git command. EXTERNAL_GIT_COMMAND_TIMEOUT_SECONDS=600 # Durable branch-import worker polling and concurrency. EXTERNAL_GIT_INBOUND_WORKER_INTERVAL_SECONDS=2 EXTERNAL_GIT_INBOUND_WORKER_BATCH_SIZE=4 # Validated checkout limits: file count, per-file bytes, and total bytes. EXTERNAL_GIT_IMPORT_MAX_FILES=4096 EXTERNAL_GIT_IMPORT_MAX_FILE_BYTES=67108864 EXTERNAL_GIT_IMPORT_MAX_TOTAL_BYTES=536870912 GIT_STORAGE_PATH=/data/git # Timeout for one direct Git smart-HTTP backend request. GIT_HTTP_BACKEND_TIMEOUT_SECONDS=120 GIT_FLUSH_WORKER_INTERVAL_SECONDS=3 GIT_AUTOSAVE_INTERVAL_SECONDS=600 GIT_FLUSH_WORKER_BATCH_SIZE=64 COLLAB_DOC_UPDATE_RETAIN=4000 TYPST_UNIVERSE_ENABLED=true TYPST_UNIVERSE_BASE_URL=https://packages.typst.org TYPST_PACKAGE_CACHE_DIR=/tmp/typst-packages-cache TYPST_PACKAGE_CACHE_MAX_BYTES=4294967296 # Archive safety limits. Keep these aligned with docs/community/runtimes/typst.md unless # the deployment has a deliberately tighter policy. TYPST_PACKAGE_MAX_ARCHIVE_BYTES=67108864 TYPST_PACKAGE_MAX_EXTRACTED_BYTES=268435456 TYPST_PACKAGE_MAX_FILE_BYTES=67108864 TYPST_PACKAGE_MAX_FILES=4096 # LaTeX-capable distributions only. A Typst-only distribution returns 404 for # the TeX Live proxy and its frontend image contains no BusyTeX runtime. LATEX_TEXLIVE_UPSTREAM_ENABLED=true LATEX_TEXLIVE_BASE_URL=https://texlive2026.texlyre.org LATEX_TEXLIVE_MAX_FILE_BYTES=67108864 LATEX_TEXLIVE_CACHE_MAX_BYTES=4294967296 LATEX_TEXLIVE_MISSING_TTL_SECONDS=300