- Updated docker-compose.yml to include environment variable support for services, enhancing flexibility in configuration. - Refactored Dockerfile to utilize build arguments for VITE environment variables, allowing for better customization during builds. - Improved Nginx configuration to handle larger video uploads by increasing client_max_body_size to 5GB. - Enhanced backend Dockerfile to include wget for health checks and improved startup logging for database migrations. - Added validation for critical environment variables in the backend to ensure necessary configurations are present before application startup. - Updated content streaming logic to support direct HLS URL construction, improving streaming reliability and user experience. - Refactored various components and services to streamline access checks and improve error handling during content playback.
108 lines
4.7 KiB
Plaintext
108 lines
4.7 KiB
Plaintext
# ═══════════════════════════════════════════════════════════════
|
|
# 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=
|