Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jtapieromalambo-ctrl/Signia/llms.txt

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

Every runtime secret and deployment parameter in Signia is loaded from a .env file placed in the project root (next to manage.py) using python-decouple. No secrets are hard-coded in settings.py — the file ships with safe fallbacks for local development, but production deployments on Railway require all variables listed below to be set explicitly in the Railway environment panel.
The .env file is listed in .gitignore and must never be committed to version control. It contains secrets that grant full access to your database, email provider, and AI APIs.

Complete .env Template

Copy this template into a file named .env at the project root and fill in each value before running the development server.
# ── Django ─────────────────────────────────────────────
SECRET_KEY=tu_clave_secreta_muy_larga_y_aleatoria
DEBUG=True

# ── Base de datos ───────────────────────────────────────
# Omit DATABASE_URL locally to use SQLite automatically.
# Required in production (Neon PostgreSQL):
DATABASE_URL=postgresql://usuario:password@host.neon.tech/signia?sslmode=require

# ── Correo (Brevo) ──────────────────────────────────────
BREVO_API_KEY=xkeysib-...
EMAIL_HOST=smtp-relay.brevo.com
EMAIL_HOST_USER=tu_correo@gmail.com
EMAIL_HOST_PASSWORD=tu_contraseña_de_aplicacion

# ── IA / LSC Grammar (Groq) ────────────────────────────
GROQ_API_KEY=gsk_...

# ── OAuth Social ────────────────────────────────────────
SITE_ID=1

# ── Railway (production only) ───────────────────────────
# RAILWAY_PUBLIC_DOMAIN=tu-app.up.railway.app

Variable Reference

SECRET_KEY
string
required
The Django cryptographic secret key used to sign sessions, CSRF tokens, and password-reset links. Must be a long, random, unique string. Never reuse a key across environments.Generate a fresh key with the following command:
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
settings.py falls back to 'django-insecure-fallback-key-railway' when this variable is absent, which is unsafe for any environment beyond a quick local test.
DEBUG
boolean
default:"False"
Controls Django’s debug mode. Set to True in local development to enable detailed error pages and automatic static file serving. Always set to False in production — leaving debug mode on in production exposes source code, local variables, and settings to anyone who triggers an error.
DEBUG=True   # local development
DEBUG=False  # production (Railway)
DATABASE_URL
string
Full connection string for the application database. When this variable is absent, Signia automatically falls back to a local SQLite file (db.sqlite3) — no configuration is needed for development. For production, provide a Neon PostgreSQL connection string.
DATABASE_URL=postgresql://usuario:password@host.neon.tech/signia?sslmode=require
The ?sslmode=require suffix is mandatory for Neon connections. See the Database page for the complete setup guide.
GROQ_API_KEY
string
required
API key for the Groq platform. Signia uses Groq to power lsc_grammar.py, which converts Spanish text into Colombian Sign Language (LSC) gloss order via a chain of four Llama models with automatic fallback. Without this key the translation module cannot produce LSC-ordered output.Obtain a key by registering at console.groq.com and creating a new API key under your account settings.
BREVO_API_KEY
string
required
API key for Brevo (formerly Sendinblue), used by the custom BrevoEmailBackend in usuarios/email_backend.py. Signia sends OTP verification codes, welcome messages, password-change confirmations, and password-recovery links through Brevo’s REST API.Obtain a key by registering at brevo.com and navigating to Settings → API Keys → Create a new API key.
EMAIL_HOST
string
default:"smtp-relay.brevo.com"
The SMTP relay hostname used for fallback SMTP connections. Defaults to smtp-relay.brevo.com. When using the default BrevoEmailBackend, the custom backend sends mail through Brevo’s REST API and does not open an SMTP connection, so this variable only applies if you switch to a standard SMTP backend.
EMAIL_HOST_USER
string
required
The Gmail address used as the visible sender for all outbound emails (e.g. tu_correo@gmail.com). This address must be verified in the Brevo Senders section before Brevo will accept it as a sender identity.
EMAIL_HOST_PASSWORD
string
The Gmail App Password associated with EMAIL_HOST_USER. This is only used if you switch to a direct SMTP backend. When using the default BrevoEmailBackend, this field can be left empty — Brevo authenticates via BREVO_API_KEY, not SMTP credentials.
If you do need a Gmail App Password (for SMTP fallback), generate one at Google Account → Security → 2-Step Verification → App passwords. It is a 16-character code, not your regular Gmail password.
RAILWAY_PUBLIC_DOMAIN
string
Production only. The public hostname assigned by Railway (e.g. tu-app.up.railway.app). When set, settings.py appends this domain to ALLOWED_HOSTS and adds https://<domain> to CSRF_TRUSTED_ORIGINS. Without it, Django will reject all requests in production with a 400 Bad Request or CSRF error.
RAILWAY_PUBLIC_DOMAIN=tu-app.up.railway.app
Leave this line commented out in your local .env.
SITE_ID
integer
default:"1"
The numeric ID of the Django Sites framework record that django-allauth uses to associate OAuth social applications. The default value of 1 matches the single site record created by the initial migration. Only change this if you are running multiple sites in the same Django project.

Build docs developers (and LLMs) love