Files
indee-demo/DEPLOYMENT.md
Dorian 8d56fe392d refactor: update environment configuration and documentation
- Modified `.env.example` to reflect new API URL structure and added CDN configuration for external storage.
- Updated `.gitignore` to include deployment secrets and certificate files, ensuring sensitive information is not committed.
- Revised `BACKEND_INTEGRATION.md` to clarify authentication methods, replacing Cognito references with Nostr NIP-98.
- Deleted outdated documentation files (`CONTENT-INTEGRATION-COMPLETE.md`, `CURSOR-MCP-SETUP.md`, `FINAL-STATUS.md`, `FIXES-APPLIED.md`, `INDEEHHUB-INTEGRATION.md`, `PROJECT-COMPLETE.md`, `PROJECT-SUMMARY.md`) to streamline project documentation.

These changes enhance the clarity of the environment setup and improve the overall documentation structure for better developer onboarding.
2026-02-17 05:12:59 +00:00

3.2 KiB

IndeeHub Deployment

The app requires the full stack: frontend (nginx), backend API, PostgreSQL, Redis, MinIO, FFmpeg worker, Nostr relay.

Docker Compose

# Copy environment template and fill in secrets
cp .env.portainer.example .env.portainer
# Edit .env.portainer with your values

# Deploy
docker compose up -d --build

Portainer

  1. Create a new Stack
  2. Load variables from .env.portainer (use .env.portainer.example as template)
  3. Use docker-compose.yml from the repo
  4. Deploy

Access

  • Application URL: http://your-server:7777
  • Health Check: http://your-server:7777/health

Configuration

Port Configuration

The application runs on port 7777 by default. To change:

# In docker-compose.yml
ports:
  - "YOUR_PORT:7777"

Environment Variables

Add any required environment variables in docker-compose.yml:

environment:
  - NODE_ENV=production
  - VITE_API_URL=https://your-api.com

Build Details

Multi-stage Docker Build

  1. Builder Stage: Compiles Vue/TypeScript application
  2. Production Stage: Serves built files with Nginx

Features

  • Nginx web server (Alpine Linux)
  • Gzip compression
  • Security headers
  • PWA support with proper MIME types
  • Vue Router SPA fallback
  • Service Worker support
  • Health check endpoint
  • Auto-restart enabled

Monitoring

Health Check

curl http://localhost:7777/health

Container Status

docker ps | grep indeedhub

View Logs

docker logs -f indeedhub-app

Updates

Rebuild and Deploy

docker-compose down
docker-compose up -d --build

Using Portainer

  1. Go to your stack
  2. Click "Update"
  3. Enable "Pull latest image"
  4. Click "Update the stack"

Troubleshooting

Container won't start

# Check logs
docker logs indeedhub-app

# Check if port is available
lsof -i :7777

Build fails

# Clear Docker cache
docker builder prune

# Rebuild without cache
docker-compose build --no-cache

Production Checklist

  • Port 7777 exposed
  • Health checks configured
  • Auto-restart enabled
  • Gzip compression enabled
  • Security headers set
  • PWA manifest support
  • Service worker caching
  • SPA routing configured
  • Docker networking isolated

Stack Configuration for Portainer

Copy this into Portainer Stack editor:

version: '3.8'

services:
  indeedhub:
    image: indeedhub-prototype:latest
    build:
      context: .
      dockerfile: Dockerfile
    container_name: indeedhub-app
    restart: unless-stopped
    ports:
      - "7777:7777"
    environment:
      - NODE_ENV=production
    networks:
      - indeedhub-network
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:7777/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  indeedhub-network:
    driver: bridge

Support

For issues, check:

  1. Container logs: docker logs indeedhub-app
  2. Health endpoint: http://localhost:7777/health
  3. Nginx config: /etc/nginx/conf.d/default.conf