Skip to main content
Inventario uses environment variables for configuration. Variables are loaded from a .env file in development or set directly in your hosting platform for production.

Required Variables

These variables must be set for production deployments.

SECRET_KEY

Type: String
Required: Yes
Django’s secret key for cryptographic signing. Used for sessions, CSRF tokens, password reset tokens, etc.
Generate a strong random key for production:
Never commit this to version control or share it publicly.
Default: django-insecure-641xw29uuar#$5&nj!kxjozc+#2#=f6s+4lmziq&_8hnh$#@6$ (insecure, development only)

DATABASE_URL

Type: Database URL
Required: Yes (for production)
PostgreSQL database connection string in URL format.
Default: SQLite database at db.sqlite3 (development only) Parsed by dj-database-url with connection pooling (conn_max_age=600).

ALLOWED_HOSTS

Type: Comma-separated list
Required: Yes (for production)
Domains that Django will serve.
The default * (all hosts) is insecure for production. Always specify exact domains.
Default: *

CSRF_TRUSTED_ORIGINS

Type: Comma-separated URLs
Required: Yes (for production with HTTPS)
Trusted origins for CSRF protection.
Format: Must include full URL with protocol (https://) Default: http://127.0.0.1:8000

Authentication Variables

Google OAuth

Required for Google Sign-In functionality.

GOOGLE_CLIENT_ID

Type: String
Required: If using Google OAuth
Google OAuth 2.0 client ID from Google Cloud Console.
Default: Empty string (Google OAuth disabled)

GOOGLE_CLIENT_SECRET

Type: String
Required: If using Google OAuth
Google OAuth 2.0 client secret.
Keep this secret secure. Never commit to version control.
Default: Empty string Configuration in settings.py:

Email Configuration

RESEND_API_KEY

Type: String
Required: If sending emails
API key for Resend email service.
Default: Empty string (email disabled)

DEFAULT_FROM_EMAIL

Type: Email address
Required: If sending emails
Default sender email address.
Default: None
Inventario previously used SMTP (Gmail) but has migrated to Resend. The SMTP configuration is commented out in settings.py:
  • EMAIL_HOST_USER
  • EMAIL_HOST_PASSWORD

AI Integration

OPENAI_API_KEY

Type: String
Required: If using AI features
OpenAI API key for AI-powered features (likely used in reporting or analytics).
Secure this key carefully. OpenAI API usage incurs costs based on usage.
Default: Empty string (AI features disabled)

SMS Integration (Twilio)

Required for SMS notifications or two-factor authentication.

TWILIO_ACCOUNT_SID

Type: String
Required: If using Twilio SMS
Twilio account identifier.
Default: Empty string (Twilio disabled)

TWILIO_AUTH_TOKEN

Type: String
Required: If using Twilio SMS
Twilio authentication token.
Keep this token secure. It provides full access to your Twilio account.
Default: Empty string

TWILIO_PHONE_NUMBER

Type: Phone number
Required: If using Twilio SMS
Twilio phone number for sending SMS (E.164 format).
Default: Empty string

Application Behavior

DEBUG

Type: Boolean string
Required: No
Enables Django debug mode.
Values:
  • True - Enable debug mode (development)
  • False - Disable debug mode (production)
Always set DEBUG=False in production. Debug mode exposes sensitive information and disables security features.
Default: False Side effects when DEBUG=True:
  • SESSION_COOKIE_SECURE is disabled
  • CSRF_COOKIE_SECURE is disabled
  • Detailed error pages are shown
  • Static files are served by Django (not WhiteNoise)

Development vs Production

Development .env Example

Production Environment Variables

Security Notes

Never commit .env files or expose environment variables containing:
  • SECRET_KEY
  • DATABASE_URL
  • GOOGLE_CLIENT_SECRET
  • RESEND_API_KEY
  • OPENAI_API_KEY
  • TWILIO_AUTH_TOKEN
  • EMAIL_HOST_PASSWORD
Add .env to .gitignore to prevent accidental commits.

Loading Environment Variables

Inventario uses python-dotenv to load variables from .env:
Priority:
  1. System environment variables (highest priority)
  2. Variables from .env file
  3. Default values in code (lowest priority)

Verification

To verify environment variables are loaded correctly: