managarten/docker/production/.env.template
Claude 22a58eecef
feat(deploy): add production deployment configuration for manacore.ai
Complete production setup with:
- docker-compose.yml with all recommended apps (auth, chat, todo, calendar, clock, dashboard)
- Caddyfile for automatic HTTPS via Let's Encrypt
- PostgreSQL backup/restore scripts with daily retention
- Environment template with secure defaults
- Comprehensive deployment guide

Apps deployed:
- auth.manacore.ai (Authentication)
- app.manacore.ai (Dashboard)
- chat.manacore.ai / chat-api.manacore.ai
- todo.manacore.ai / todo-api.manacore.ai
- calendar.manacore.ai / calendar-api.manacore.ai
- clock.manacore.ai / clock-api.manacore.ai
2026-01-16 20:42:59 +00:00

78 lines
2.7 KiB
Text

# ManaCore Production Environment Variables
# Copy this file to .env and fill in the values:
# cp .env.template .env
# nano .env
#
# IMPORTANT: Never commit the .env file to git!
# ============================================
# Docker Registry
# ============================================
DOCKER_REGISTRY=ghcr.io/memo-2023
# ============================================
# PostgreSQL
# ============================================
POSTGRES_DB=manacore
POSTGRES_USER=postgres
# Generate with: openssl rand -base64 32
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD
# ============================================
# Redis
# ============================================
# Generate with: openssl rand -base64 32
REDIS_PASSWORD=CHANGE_ME_STRONG_PASSWORD
# ============================================
# JWT Configuration
# ============================================
# Generate secret with: openssl rand -base64 64
JWT_SECRET=CHANGE_ME_STRONG_SECRET
# EdDSA Key Pair (Ed25519)
# Generate with: node -e "const { generateKeyPairSync } = require('crypto'); const { publicKey, privateKey } = generateKeyPairSync('ed25519'); console.log('PUBLIC:', publicKey.export({type:'spki',format:'pem'}).toString().replace(/\\n/g,'\\\\n')); console.log('PRIVATE:', privateKey.export({type:'pkcs8',format:'pem'}).toString().replace(/\\n/g,'\\\\n'));"
JWT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nYOUR_PUBLIC_KEY_HERE\n-----END PUBLIC KEY-----"
JWT_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY_HERE\n-----END PRIVATE KEY-----"
JWT_ACCESS_TOKEN_EXPIRY=15m
JWT_REFRESH_TOKEN_EXPIRY=7d
# ============================================
# Service Versions (optional, defaults to latest)
# ============================================
AUTH_VERSION=latest
CHAT_VERSION=latest
CHAT_WEB_VERSION=latest
TODO_VERSION=latest
TODO_WEB_VERSION=latest
CALENDAR_VERSION=latest
CALENDAR_WEB_VERSION=latest
CLOCK_VERSION=latest
CLOCK_WEB_VERSION=latest
MANACORE_WEB_VERSION=latest
# ============================================
# Azure OpenAI (for Chat)
# ============================================
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_API_KEY=your-api-key
AZURE_OPENAI_API_VERSION=2024-12-01-preview
# ============================================
# Credits System
# ============================================
CREDITS_SIGNUP_BONUS=100
CREDITS_DAILY_FREE=5
# ============================================
# OAuth (optional)
# ============================================
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# ============================================
# Stripe (optional)
# ============================================
# STRIPE_SECRET_KEY=sk_live_...
# STRIPE_WEBHOOK_SECRET=whsec_...