Add Django site, Docker packaging, and beta/prod Gitea deploys.
Deploy Beta / unit-tests (push) Successful in 9s
Deploy Beta / docker (push) Successful in 17s
Deploy Beta / deploy-beta (push) Successful in 2m31s

Unignore site/ (was blocked by mkdocs /site rule), add compose/Docker/uv tooling, and split deploys so push to main goes to beta while prod stays manual.
This commit is contained in:
2026-08-08 07:32:55 -05:00
parent 7dca98bbf6
commit 1f7d78de64
204 changed files with 21662 additions and 70 deletions
+81
View File
@@ -0,0 +1,81 @@
# Local development defaults. Copy to `.env` (gitignored) — never commit secrets.
# docker compose auto-loads `.env` for ${VAR} substitution into the web container.
DJANGO_ENV=dev
DJANGO_DEBUG=true
DJANGO_SECRET_KEY=dev-only-change-me
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
# Leave empty for SQLite, or point at local compose Postgres:
# DATABASE_URL=postgres://monica_site:monica_site@127.0.0.1:5432/monica_site
SITE_UNDER_CONSTRUCTION=false
SITE_NAME=Monica Dhillon
SITE_TAGLINE=MKDRealtor.com · EXIT Realty
PUBLIC_SITE_URL=http://127.0.0.1:8000
CONTACT_PHONE=(630) 452-4443
CONTACT_EMAIL=moni.dhill@gmail.com
CONTACT_SERVICE_AREA=Serving Chicagoland
CREDIT_NAME=AI ML Operations, LLC
CREDIT_URL=https://aimloperations.com
# reCAPTCHA (optional locally — form skips captcha when empty)
RECAPTCHA_PUBLIC_KEY=
RECAPTCHA_PRIVATE_KEY=
# SMTP2GO — fill in `.env` (not this file). Dev defaults to console backend
# until you set EMAIL_BACKEND to the SMTP backend below.
EMAIL_HOST=mail.smtp2go.com
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
EMAIL_PORT=2525
EMAIL_USE_TLS=true
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
# Console (default in DJANGO_ENV=dev) prints mail to container logs.
# For real SMTP2GO delivery locally, uncomment:
# EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
SMTP2GO_SMS_API_KEY=
# Shared secret for email + SMS webhooks.
# In SMTP2GO: Authorization header = Bearer, value = this secret.
SMTP2GO_WEBHOOK_SECRET=
# Postcards — PCM Integrations (DirectMail API v3)
POSTCARD_PROVIDER=pcm
PCM_API_KEY=
# Inbound webhook auth (Bearer / ?token=) — set a long random string
PCM_WEBHOOK_SECRET=
# Return address on every postcard order (JSON). Example:
# PCM_RETURN_ADDRESS={"firstName":"Monica","lastName":"Dhillon","address":"123 Main St","city":"Naperville","state":"IL","zipCode":"60540"}
PCM_RETURN_ADDRESS=
# Or set fields individually if JSON is empty:
# PCM_RETURN_LINE1=
# PCM_RETURN_CITY=
# PCM_RETURN_STATE=
# PCM_RETURN_ZIP=
# Social
META_APP_ID=
META_APP_SECRET=
LINKEDIN_CLIENT_ID=
LINKEDIN_CLIENT_SECRET=
# Generate: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
SOCIAL_TOKEN_ENCRYPTION_KEY=
# Ollama (LAN) — standard Ollama HTTP port
OLLAMA_BASE_URL=http://10.0.0.128:11434
OLLAMA_MODEL=llama3.2
# Nominatim (LAN) — address autocomplete via Django /api/address-suggest/
# Nominatim has no built-in API keys; optional NOMINATIM_API_KEY only if you
# put a gateway in front that checks X-API-Key.
NOMINATIM_BASE_URL=http://10.0.0.128:8089
NOMINATIM_TIMEOUT_SECONDS=8
NOMINATIM_COUNTRY_CODES=us
# NOMINATIM_API_KEY=
# Tianji analytics (off in local/dev by default)
TIANJI_ENABLED=false
TIANJI_TRACKER_URL=https://tianji.aimloperations.com/tracker.js
TIANJI_WEBSITE_ID=cmshzhxdf6gee10qzkzrfn9iw
GUNICORN_WORKERS=2