GastroMóvil loads all sensitive configuration from aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/lffiesco-svg/gastromovil/llms.txt
Use this file to discover all available pages before exploring further.
.env file at the project root using two complementary libraries: python-dotenv (via load_dotenv()) and python-decouple (via config()). Neither library is used in isolation — load_dotenv populates os.environ at startup, and config() reads from it with optional casting and default values. This means every secret stays out of version control while still being accessible throughout the Django settings module.
Django Core
These two variables control the fundamental security and debug behaviour of the application.Django’s secret key used for cryptographic signing of sessions, tokens, and
cookies. Generate a unique value for every environment — never reuse between
staging and production.
Enables Django’s verbose debug mode. Set to
True only during local
development. In production this must be False to avoid leaking stack traces
to end users.Database (MySQL)
GastroMóvil requires MySQL. There is no SQLite fallback in the production settings. All five connection variables are read at startup viaconfig().
The name of the MySQL database. Example:
gastromovil.The MySQL username with full privileges on
DB_NAME.Password for the MySQL user above.
Hostname or IP address of the MySQL server. Use
localhost for local
development, or the Railway-provided host for cloud deployments.TCP port that MySQL listens on. The default value of
3306 is correct for
both local installations and Railway MySQL.When set to
True the database connection uses an SSL context built from
the certifi CA bundle with check_hostname disabled. Required on Railway
and other cloud-managed MySQL services.Email (SMTP / Resend)
GastroMóvil sends transactional emails through Resend and uses a legacy SMTP backend for the contact form.API key for the Resend transactional email service. Used
to send verification codes, login alerts, and password recovery emails from
noreply@gastromovil.online.SMTP password for the Gmail account configured as
EMAIL_HOST_USER in
settings.py. This credential powers the legacy SSLEmailBackend that
handles the contact form (contacto app).Password for the contact-form sender account (
CONTATO_EMAIL in settings).
Stored separately from EMAIL_HOST_PASSWORD so the two mail accounts can
rotate credentials independently.Cloudinary (Media Storage)
All restaurant banner images and product photos are uploaded to Cloudinary. The three variables below are passed directly tocloudinary.config() in settings.py.
Your Cloudinary cloud name, visible in the Cloudinary dashboard URL:
https://console.cloudinary.com/console/<cloud_name>.Cloudinary API key. Found under Settings → Access Keys in the Cloudinary
console.
Cloudinary API secret. Treat this with the same care as a database password —
it grants full write access to your media library.
External APIs
Google Maps Geocoding API key. Used by the cart checkout flow to convert a
user-supplied address string into latitude/longitude coordinates via
https://maps.googleapis.com/maps/api/geocode/json.API key for the Groq inference platform. The chatbot uses
the
llama-3.3-70b-versatile model at temperature 0.5 to answer
product-related questions.Optional
Base URL used by the AI chatbot (
chatbot/ai/chatbot.py) to build absolute
product links inside chatbot responses. In production this should be set to
https://gastromovil.online.Sample .env file
Copy the block below into a file named .env at the project root and fill in the real values before starting the server.
Never commit your
.env file to version control. Add .env to your
.gitignore immediately after creating it. If a secret is accidentally
exposed, rotate it in the provider dashboard and update your environment
before redeploying.