Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/CristianParadaLopez/cv-builder/llms.txt

Use this file to discover all available pages before exploring further.

Skillara AI uses environment variables to configure AI API keys, database connections, Firebase credentials, and CORS origins. The backend reads from a backend/.env file loaded by dotenv at startup, and the frontend reads VITE_-prefixed variables from frontend/.env.local at Vite build time. Neither file should ever be committed to version control.

Backend environment variables

Create a file at backend/.env with the following variables.
VariableRequiredDescription
DATABASE_URLOptionalPostgreSQL connection string. Required only if you want server-side CV storage. Example: postgresql://user:password@host:5432/skillara
PORTNoPort the Express server listens on. Defaults to 3001 if not set.
FRONTEND_URLYes (prod)Allowed CORS origin for your deployed frontend. Added to the list of permitted origins alongside localhost:5173 and localhost:3000.
OPENROUTER_API_KEY_1Yes (at least one)First OpenRouter API key. The backend cycles through all non-empty keys when generating CVs.
OPENROUTER_API_KEY_2NoSecond OpenRouter API key.
OPENROUTER_API_KEY_3NoThird OpenRouter API key.
OPENROUTER_API_KEY_4NoFourth OpenRouter API key.
OPENROUTER_API_KEY_5NoFifth OpenRouter API key.
DEV1_NAMENoDisplay name associated with OPENROUTER_API_KEY_1. Appears in server logs to identify which key was used.
DEV2_NAMENoDisplay name for OPENROUTER_API_KEY_2.
DEV3_NAMENoDisplay name for OPENROUTER_API_KEY_3.
DEV4_NAMENoDisplay name for OPENROUTER_API_KEY_4.
DEV5_NAMENoDisplay name for OPENROUTER_API_KEY_5.
AI_MODELSNoComma-separated list of OpenRouter model IDs to use for CV generation. Defaults to meta-llama/llama-3.1-8b-instruct:free,deepseek/deepseek-r1-0528:free,google/gemini-2.0-flash-exp:free.

Example backend/.env

DATABASE_URL="postgresql://postgres:password@localhost:5432/skillara"
PORT=3001
FRONTEND_URL="https://your-frontend.vercel.app"

OPENROUTER_API_KEY_1="sk-or-v1-..."
DEV1_NAME="Alice"

OPENROUTER_API_KEY_2="sk-or-v1-..."
DEV2_NAME="Bob"

AI_MODELS="meta-llama/llama-3.1-8b-instruct:free,deepseek/deepseek-r1-0528:free"

Frontend environment variables

Create a file at frontend/.env.local with the following variables. All frontend variables must be prefixed with VITE_ to be exposed to the Vite build.
VariableRequiredDescription
VITE_API_URLYesBase URL of the Express backend. Use http://localhost:3001 for local development.
VITE_FIREBASE_API_KEYYesFirebase project API key. Found in the Firebase console under Project Settings → General → Your apps.
VITE_FIREBASE_AUTH_DOMAINYesFirebase Authentication domain. Format: your-project.firebaseapp.com.
VITE_FIREBASE_PROJECT_IDYesFirebase project ID.
VITE_FIREBASE_STORAGE_BUCKETYesFirebase Storage bucket. Format: your-project.appspot.com.
VITE_FIREBASE_MESSAGING_SENDER_IDYesFirebase Cloud Messaging sender ID.
VITE_FIREBASE_APP_IDYesFirebase app ID.

Example frontend/.env.local

VITE_API_URL="https://your-backend.render.com"

VITE_FIREBASE_API_KEY="AIza..."
VITE_FIREBASE_AUTH_DOMAIN="your-project.firebaseapp.com"
VITE_FIREBASE_PROJECT_ID="your-project"
VITE_FIREBASE_STORAGE_BUCKET="your-project.appspot.com"
VITE_FIREBASE_MESSAGING_SENDER_ID="123456789"
VITE_FIREBASE_APP_ID="1:123456789:web:abc123"
Never commit .env or .env.local files to version control. Add both paths to your .gitignore to prevent accidentally exposing API keys, database credentials, or Firebase configuration.

Build docs developers (and LLMs) love