mirror of
https://github.com/velocitatem/cvfs.git
synced 2026-05-31 08:43:37 +00:00
- dlib/integrations/paperless.py: sync HTTP client wrapping the paperless-ngx
REST API (upload doc, poll task, create/delete share links, delete document)
- config: PAPERLESS_ENABLED, PAPERLESS_BASE_URL, PAPERLESS_TOKEN, PAPERLESS_TAG_IDS
- PublicAsset model: paperless_document_id + paperless_share_slug columns
- publication service: after creating the asset, if paperless is enabled upload
the patched PDF and create a share link; stores doc id + share slug on the asset
- public routes: pass expires_at through to publish_version; new
POST /{slug}/share-links endpoint to (re)create expiring share links on demand
- schemas: PublishRequest.expires_at, PublicAssetResponse.paperless_share_url,
new ShareLinkRequest model
- frontend: paperless_share_url field on PublicAsset type, createShareLink()
and expiresAt param on publishVersion() in api.ts
- .env.example: documented paperless env vars
https://claude.ai/code/session_01YPVs6uBwCvcwVMvrfLBBdu
75 lines
4.4 KiB
Plaintext
75 lines
4.4 KiB
Plaintext
# Resume Branches — environment configuration
|
|
# Copy this file to .env and fill in values before running docker compose.
|
|
# For standalone (no Traefik): docker compose -f docker-compose.standalone.yml up -d
|
|
# For Traefik-based production: docker compose up -d (edit Traefik labels in docker-compose.yml)
|
|
|
|
# ── General ───────────────────────────────────────────────────────────────────
|
|
NAME=cvfs
|
|
COMPOSE_PROJECT_NAME=cvfs
|
|
|
|
# ── Public URLs ───────────────────────────────────────────────────────────────
|
|
# The URL users visit to access the app (no trailing slash).
|
|
# Standalone local: http://localhost:3000
|
|
# Production with a domain: https://cv.example.com
|
|
PUBLIC_BASE_URL=http://localhost:3000
|
|
|
|
# Domain used to construct published CV links (hostname only, no scheme).
|
|
CV_PUBLIC_DOMAIN=localhost
|
|
|
|
# ── Backend ───────────────────────────────────────────────────────────────────
|
|
BACKEND_PORT=8080
|
|
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/resume_branches
|
|
# Comma-separated list of allowed CORS origins
|
|
CORS_ORIGINS=http://localhost:3000
|
|
|
|
# ── PostgreSQL ────────────────────────────────────────────────────────────────
|
|
POSTGRES_PASSWORD=postgres
|
|
|
|
# ── Redis ─────────────────────────────────────────────────────────────────────
|
|
REDIS_URL=redis://localhost:6379/0
|
|
|
|
# ── MinIO object storage ──────────────────────────────────────────────────────
|
|
# Internal URL used by backend/worker (keep as-is for Docker deployments).
|
|
MINIO_ENDPOINT=http://localhost:9000
|
|
MINIO_BUCKET=resume-branches
|
|
MINIO_REGION=us-east-1
|
|
MINIO_ROOT_USER=minioadmin
|
|
MINIO_ROOT_PASSWORD=minioadmin
|
|
# MinIO admin console port (standalone mode only)
|
|
MINIO_CONSOLE_PORT=9001
|
|
|
|
# ── Frontend port (standalone mode only) ─────────────────────────────────────
|
|
WEBAPP_PORT=3000
|
|
|
|
# ── Auth — OIDC (optional) ────────────────────────────────────────────────────
|
|
# Set AUTH_DISABLE_VERIFICATION=false and configure OIDC to require authentication.
|
|
# Any OIDC-compatible provider works (Authentik, Keycloak, Auth0, Zitadel, etc.).
|
|
AUTH_DISABLE_VERIFICATION=true
|
|
AUTH_OIDC_ISSUER=
|
|
AUTH_OIDC_AUDIENCE=
|
|
|
|
# Frontend OIDC config (baked into the Next.js build — requires rebuild on change)
|
|
NEXT_PUBLIC_AUTHENTIK_ISSUER=
|
|
NEXT_PUBLIC_AUTHENTIK_CLIENT_ID=
|
|
AUTHENTIK_CLIENT_SECRET=
|
|
|
|
# ── AI tailoring (optional) ───────────────────────────────────────────────────
|
|
# Leave blank to use the built-in rule-based tailoring instead of Claude.
|
|
ANTHROPIC_API_KEY=
|
|
|
|
# ── Paperless-ngx integration (optional) ─────────────────────────────────────
|
|
# When enabled, published CVs are uploaded to your paperless-ngx instance and
|
|
# shared via paperless share links (with optional expiry). MinIO is still used
|
|
# for DOCX artifact storage; paperless handles the published PDF + sharing.
|
|
PAPERLESS_ENABLED=false
|
|
PAPERLESS_BASE_URL=http://localhost:8000
|
|
# API token — obtain via POST /api/token/ with your paperless credentials.
|
|
PAPERLESS_TOKEN=
|
|
# Comma-separated tag IDs to apply to uploaded CV documents (optional).
|
|
PAPERLESS_TAG_IDS=
|
|
|
|
# ── Demo mode ─────────────────────────────────────────────────────────────────
|
|
# Set to true to enable standalone demo mode in the webapp.
|
|
# Demo mode uses hardcoded dummy data — no backend or DB required.
|
|
NEXT_PUBLIC_DEMO=false
|