# ═══════════════════════════════════════════════════════════════ # IndeeHub — Portainer Stack Environment Variables # ═══════════════════════════════════════════════════════════════ # # Upload this file in Portainer: Stacks → Add Stack → "Load variables # from .env file" button (bottom of the environment variables section). # # Secrets below were auto-generated. Review and change DOMAIN / # FRONTEND_URL to match your server, then deploy. # # For local dev: docker compose -f docker-compose.dev.yml up # ═══════════════════════════════════════════════════════════════ # ── Networking ──────────────────────────────────────────────── # CHANGE THESE to your actual domain DOMAIN=indee.tx1138.com FRONTEND_URL=https://indee.tx1138.com APP_PORT=7777 # ── PostgreSQL ──────────────────────────────────────────────── POSTGRES_USER=indeedhub POSTGRES_PASSWORD=V1kKEPzvKuFqENfQQQKGMnXSgzS3HCY3 POSTGRES_DB=indeedhub # ── Redis ───────────────────────────────────────────────────── REDIS_PASSWORD=wWNOWmlYPKrFDMSWj1g7aEpX # ── MinIO (self-hosted file storage) ────────────────────────── # MinIO runs as a Docker container in the stack. No AWS needed. # It stores uploaded videos, poster images, and HLS segments. MINIO_ROOT_USER=indeedhub-minio MINIO_ROOT_PASSWORD=jZWDalDHlaJ9JmywL05h8alf MINIO_CONSOLE_PORT=9001 # ── MinIO Connection (backend uses S3 protocol to talk to MinIO) # These MUST match the MinIO credentials above. S3_ENDPOINT=http://minio:9000 AWS_REGION=us-east-1 S3_ACCESS_KEY=indeedhub-minio S3_SECRET_KEY=jZWDalDHlaJ9JmywL05h8alf S3_PRIVATE_BUCKET=indeedhub-private S3_PUBLIC_BUCKET=indeedhub-public # CHANGE to your domain — files are served via the nginx /storage/ proxy S3_PUBLIC_BUCKET_URL=https://indee.tx1138.com/storage/ # ── CloudFront (not needed — MinIO serves files directly) ──── CLOUDFRONT_PRIVATE_KEY= CLOUDFRONT_KEY_PAIR_ID= CLOUDFRONT_DISTRIBUTION_URL= # ── BTCPay Server (Bitcoin/Lightning Payments) ─────────────── BTCPAY_URL=https://shop.tx1138.com BTCPAY_API_KEY=34cf1a41aba967f24f374c247fdb67e81fc303ff BTCPAY_STORE_ID=72jsCiD7m2U8dDJRU5W5STBSrRScLbxfiSaPBhLXukem BTCPAY_WEBHOOK_SECRET=36YdN12LB9vhKAi9bhbWe5wT4oa3 BTCPAY_ROUTE_HINTS=false # ── Security Secrets (auto-generated) ──────────────────────── NOSTR_JWT_SECRET=9ea6d10ae3b74cfe90f5d5dc0494fe20bbc06e0f2cef43649cced6ce8fbaf66d NOSTR_JWT_EXPIRES_IN=7d AES_MASTER_SECRET=639a0a363d9ab6d31407ba4ec874b8ab # ── SMTP / Email (leave empty to disable) ──────────────────── SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= MAIL_FROM=noreply@tx1138.com # ── SendGrid (alternative to SMTP, leave empty if not using) ─ SENDGRID_API_KEY= SENDGRID_SENDER= # ── Cognito (not needed — using Nostr auth) ────────────────── COGNITO_USER_POOL_ID= COGNITO_CLIENT_ID= # ── Flash Subscription Secrets (leave empty if not using) ──── FLASH_JWT_SECRET_ENTHUSIAST= FLASH_JWT_SECRET_FILM_BUFF= FLASH_JWT_SECRET_CINEPHILE= FLASH_JWT_SECRET_RSS_ADDON= FLASH_JWT_SECRET_VERIFICATION_ADDON= # ── Transcoding API (leave empty — uses built-in FFmpeg) ───── TRANSCODING_API_KEY= TRANSCODING_API_URL= # ── Analytics & Monitoring (leave empty to disable) ────────── POSTHOG_API_KEY= SENTRY_ENVIRONMENT=production # ── DRM (not needed — using AES-128 HLS encryption) ───────── DRM_SECRET_NAME= PRIVATE_AUTH_CERTIFICATE_KEY_ID= # ── Podping (leave empty to disable) ───────────────────────── PODPING_URL= PODPING_KEY= PODPING_USER_AGENT= # ── Admin Dashboard ─────────────────────────────────────────── ADMIN_API_KEY=c45fc7deda784dafadf0ce6b98d808e49b84892a # ── Partner Content (leave empty if not using) ──────────────── PARTNER_API_BASE_URL= PARTNER_API_KEY=