Each Sisukas component uses a .env file for configuration. Copy from .env.example when setting up.

Frontend (frontend/course-browser/.env)#

VariablePurposeExample
VITE_GCS_BUCKETGoogle Cloud Storage bucket URL for course datahttps://storage.googleapis.com/sisukas-core
VITE_API_URLBackend API base URL (optional, defaults to same origin)http://localhost:3000

Backend (backend/.env)#

VariablePurposeRequiredExample
ADMIN_USERNAMEUsername for admin dashboardadmin
ADMIN_PASSWORDPassword for admin dashboard(set to secure value)
SUPABASE_URLYour Supabase project URLhttps://abc123.supabase.co
SUPABASE_PUBLISHABLE_KEYSupabase public key (for client-side auth)eyJhbGc...
SUPABASE_SERVICE_ROLE_KEYSupabase service role (for server-side admin tasks)eyJhbGc...
DATABASE_URLDirect database connection (if using Prisma)Optionalpostgresql://...

Filters API (filters-api/.env)#

VariablePurposeRequiredExample
SUPABASE_URLYour Supabase project URLhttps://abc123.supabase.co
SUPABASE_PUBLISHABLE_KEYSupabase public keyeyJhbGc...
DATABASE_URLDirect database connectionOptionalpostgresql://...

SISU Wrapper (sisu-wrapper/.env)#

VariablePurposeRequiredExample
(None required for REST API)SISU Wrapper doesn’t need .env for basic operation

GitHub Actions Secrets (.github/workflows/check_course_updates.yml)#

These are configured as GitHub Secrets (not in .env):

SecretPurpose
AALTO_USER_KEYAPI key for Aalto’s course data API (required for data pipeline)
GCS_SERVICE_ACCOUNT_KEYJSON key for Google Cloud Storage authentication

See Data Pipeline for details.

Getting Started with .env Files#

  1. Copy the example file:
   cp backend/.env.example backend/.env
  1. Edit with your values:
   nano backend/.env
  1. For local development: Most variables have sensible defaults. The minimum you need:

    • ADMIN_USERNAME and ADMIN_PASSWORD (required)
    • Supabase credentials (required for backend to work)
  2. For production: All variables should be explicit and secure. Never commit .env files to git.

Never Commit .env Files#

Add to .gitignore:

.env
.env.local
.env.*.local

.env files contain secrets. Always keep them private.