- Update docker-compose.yml to include VAPID environment variables - Create DOCKER_PUSH_NOTIFICATIONS_SETUP.md with Docker-specific instructions - Create PUSH_NOTIFICATIONS_DOCKER_CHECKLIST.md for easy setup tracking - Update .env.example with Docker command for generating VAPID keys Setup for Docker: 1. Generate VAPID keys (npx web-push generate-vapid-keys) 2. Add keys to .env file 3. Run: docker-compose exec app npx prisma db push 4. Rebuild: docker-compose up --build The web-push package is automatically installed during docker build. All notification functionality works the same in Docker as locally.
48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "3500:3000"
|
|
environment:
|
|
- NODE_ENV=development
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- AUTH_URL=http://localhost:3500
|
|
- NEXTAUTH_URL=http://localhost:3500
|
|
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
|
|
- AUTH_SECRET=${AUTH_SECRET}
|
|
- AUTH_TRUST_HOST=true
|
|
# Push Notifications (VAPID)
|
|
- VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY}
|
|
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
|
|
- VAPID_SUBJECT=${VAPID_SUBJECT}
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db-check
|
|
networks:
|
|
- app-network
|
|
|
|
# Health check service to ensure MySQL is accessible
|
|
db-check:
|
|
image: mysql:8.0
|
|
command: >
|
|
sh -c "
|
|
until mysqladmin ping -h$${DB_HOST} -P$${DB_PORT} -u$${DB_USER} -p$${DB_PASSWORD} --silent; do
|
|
echo 'Waiting for MySQL...';
|
|
sleep 2;
|
|
done;
|
|
echo 'MySQL is ready!';
|
|
"
|
|
environment:
|
|
- DB_HOST=${DB_HOST:-localhost}
|
|
- DB_PORT=${DB_PORT:-3306}
|
|
- DB_USER=${DB_USER:-root}
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
networks:
|
|
- app-network
|
|
|
|
networks:
|
|
app-network:
|
|
driver: bridge
|