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

170 lines
3.2 KiB
Markdown

# IndeeHub Deployment
## Full Stack (Recommended)
The app requires the full stack: frontend (nginx), backend API, PostgreSQL, Redis, MinIO, FFmpeg worker, Nostr relay.
### Docker Compose
```bash
# 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:
```yaml
# In docker-compose.yml
ports:
- "YOUR_PORT:7777"
```
### Environment Variables
Add any required environment variables in `docker-compose.yml`:
```yaml
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
```bash
curl http://localhost:7777/health
```
### Container Status
```bash
docker ps | grep indeedhub
```
### View Logs
```bash
docker logs -f indeedhub-app
```
## Updates
### Rebuild and Deploy
```bash
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
```bash
# Check logs
docker logs indeedhub-app
# Check if port is available
lsof -i :7777
```
### Build fails
```bash
# 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:
```yaml
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`