APA-URAAS / render.yaml
Lordkiki's picture
Deploy URAAS β€” African Research Archival & Analytics System
c292134 verified
Raw
History Blame Contribute Delete
3.47 kB
services:
# Web service running the Flask dashboard
- type: web
name: uraas-dashboard
env: python
region: oregon
plan: free
# Build: install deps, download spaCy model, init DB, run any pending migrations
buildCommand: >
pip install --upgrade pip &&
pip install -r requirements.txt &&
python -m spacy download en_core_web_sm &&
playwright install --with-deps chromium &&
python scripts/init_db.py &&
python scripts/migrate_2026_upgrade.py &&
mkdir -p storage/pdfs
# Uses gunicorn_config.py (gthread workers, matching SocketIO async_mode=threading)
startCommand: "gunicorn --config gunicorn_config.py uraas.dashboard.app:app"
healthCheckPath: /health
envVars:
- key: PYTHON_VERSION
value: "3.11"
# ── Database ──────────────────────────────────────────────────────────
- key: DATABASE_URL
fromDatabase:
name: uraas-db
property: connectionString
# ── Secrets (set manually in Render Dashboard β†’ Environment) ─────────
# Generate DASHBOARD_SECRET_KEY:
# python -c "import secrets; print(secrets.token_hex(32))"
- key: DASHBOARD_SECRET_KEY
generateValue: true
# Generate ADMIN_PASSWORD_HASH:
# python -c "from werkzeug.security import generate_password_hash as g; print(g('YOUR_STRONG_PASSWORD'))"
- key: ADMIN_PASSWORD_HASH
sync: false
- key: ADMIN_USERNAME
value: "admin"
# Generate VIEWER_PASSWORD_HASH the same way. Leave empty to disable viewer login.
- key: VIEWER_PASSWORD_HASH
sync: false
- key: VIEWER_USERNAME
value: "viewer"
# ── Production flags ──────────────────────────────────────────────────
- key: URAAS_ENV
value: "production"
- key: RENDER
value: "true"
# ── Storage ───────────────────────────────────────────────────────────
- key: STORAGE_PATH
value: "/opt/render/project/storage"
# ── CORS (set to your actual UNILAG HTTPS domain) ─────────────────────
# Example: https://repository.unilag.edu.ng
- key: DASHBOARD_CORS_ORIGINS
sync: false
# ── AI / external APIs ────────────────────────────────────────────────
- key: HF_HOME
value: "/opt/render/project/storage/hf-cache"
- key: OPENALEX_API_KEY
sync: false
# ── ARK persistent identifiers ────────────────────────────────────────
- key: ARK_NAAN
value: "99999"
disk:
name: uraas-storage
mountPath: /opt/render/project/storage
sizeGB: 10
databases:
# PostgreSQL database for storing research data
- name: uraas-db
databaseName: uraas_production
user: uraas_user
plan: free