Using a static password simplifies development environment setup. The previous random password generation caused issues during local testing and debugging.
142 lines
3.2 KiB
Bash
Executable File
142 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script to set environment variables for Docker deployment
|
|
# Usage: ./update-docker-env.sh [hostname] [use_ssl]
|
|
|
|
# Default hostname if not provided
|
|
DEFAULT_HOSTNAME="localhost"
|
|
HOSTNAME=${1:-$DEFAULT_HOSTNAME}
|
|
|
|
# Check if SSL should be used
|
|
USE_SSL=${2:-false}
|
|
|
|
# Set protocol prefixes based on SSL flag
|
|
if [ "$USE_SSL" = "true" ]; then
|
|
HTTP_PREFIX="https://"
|
|
WS_PREFIX="wss://"
|
|
else
|
|
HTTP_PREFIX="http://"
|
|
WS_PREFIX="ws://"
|
|
fi
|
|
|
|
# Frontend URLs
|
|
FRONTEND_URL="${HTTP_PREFIX}${HOSTNAME}:5000"
|
|
MINIO_DASHBOARD_URL="${HTTP_PREFIX}${HOSTNAME}:9001"
|
|
|
|
# Create or overwrite frontend .env.development file
|
|
mkdir -p worklenz-frontend
|
|
cat > worklenz-frontend/.env.development << EOL
|
|
# API Connection
|
|
VITE_API_URL=http://localhost:3000
|
|
VITE_SOCKET_URL=ws://localhost:3000
|
|
|
|
# Application Environment
|
|
VITE_APP_TITLE=Worklenz
|
|
VITE_APP_ENV=development
|
|
|
|
# Mixpanel
|
|
VITE_MIXPANEL_TOKEN=
|
|
|
|
# Recaptcha
|
|
VITE_ENABLE_RECAPTCHA=false
|
|
VITE_RECAPTCHA_SITE_KEY=
|
|
|
|
# Session ID
|
|
VITE_WORKLENZ_SESSION_ID=worklenz-session-id
|
|
EOL
|
|
|
|
# Create frontend .env.production file
|
|
cat > worklenz-frontend/.env.production << EOL
|
|
# API Connection
|
|
VITE_API_URL=${HTTP_PREFIX}${HOSTNAME}:3000
|
|
VITE_SOCKET_URL=${WS_PREFIX}${HOSTNAME}:3000
|
|
|
|
# Application Environment
|
|
VITE_APP_TITLE=Worklenz
|
|
VITE_APP_ENV=production
|
|
|
|
# Mixpanel
|
|
VITE_MIXPANEL_TOKEN=
|
|
|
|
# Recaptcha
|
|
VITE_ENABLE_RECAPTCHA=false
|
|
VITE_RECAPTCHA_SITE_KEY=
|
|
|
|
# Session ID
|
|
VITE_WORKLENZ_SESSION_ID=worklenz-session-id
|
|
EOL
|
|
|
|
# Create backend environment file
|
|
mkdir -p worklenz-backend
|
|
cat > worklenz-backend/.env << EOL
|
|
# Server
|
|
NODE_ENV=production
|
|
PORT=3000
|
|
SESSION_NAME=worklenz.sid
|
|
SESSION_SECRET=$(openssl rand -base64 48)
|
|
COOKIE_SECRET=$(openssl rand -base64 48)
|
|
|
|
# CORS
|
|
SOCKET_IO_CORS=${FRONTEND_URL}
|
|
SERVER_CORS=${FRONTEND_URL}
|
|
|
|
|
|
# Google Login
|
|
GOOGLE_CLIENT_ID="your_google_client_id"
|
|
GOOGLE_CLIENT_SECRET="your_google_client_secret"
|
|
GOOGLE_CALLBACK_URL="${FRONTEND_URL}/secure/google/verify"
|
|
LOGIN_FAILURE_REDIRECT="${FRONTEND_URL}/auth/authenticating"
|
|
LOGIN_SUCCESS_REDIRECT="${FRONTEND_URL}/auth/authenticating"
|
|
|
|
# Database
|
|
DB_HOST=db
|
|
DB_PORT=5432
|
|
DB_USER=postgres
|
|
DB_PASSWORD=password
|
|
DB_NAME=worklenz_db
|
|
DB_MAX_CLIENTS=50
|
|
USE_PG_NATIVE=true
|
|
|
|
# Storage Configuration
|
|
STORAGE_PROVIDER=s3
|
|
AWS_REGION=us-east-1
|
|
AWS_BUCKET=worklenz-bucket
|
|
AWS_ACCESS_KEY_ID=minioadmin
|
|
AWS_SECRET_ACCESS_KEY=minioadmin
|
|
S3_URL=http://minio:9000
|
|
|
|
# Backend Directories
|
|
BACKEND_PUBLIC_DIR=./public
|
|
BACKEND_VIEWS_DIR=./views
|
|
|
|
# Host
|
|
HOSTNAME=${HOSTNAME}
|
|
FRONTEND_URL=${FRONTEND_URL}
|
|
|
|
# Email
|
|
SOURCE_EMAIL=no-reply@example.com
|
|
|
|
# Notifications
|
|
SLACK_WEBHOOK=
|
|
|
|
# Other Settings
|
|
COMMIT_BUILD_IMMEDIATELY=true
|
|
|
|
# JWT Secret
|
|
JWT_SECRET=$(openssl rand -base64 48)
|
|
EOL
|
|
|
|
echo "Environment configuration updated for ${HOSTNAME} with" $([ "$USE_SSL" = "true" ] && echo "HTTPS/WSS" || echo "HTTP/WS")
|
|
echo "Created/updated environment files:"
|
|
echo "- worklenz-frontend/.env.development (development)"
|
|
echo "- worklenz-frontend/.env.production (production build)"
|
|
echo "- worklenz-backend/.env"
|
|
echo
|
|
echo "To run with Docker Compose, use: docker-compose up -d"
|
|
echo
|
|
echo "Frontend URL: ${FRONTEND_URL}"
|
|
echo "API URL: ${HTTP_PREFIX}${HOSTNAME}:3000"
|
|
echo "Socket URL: ${WS_PREFIX}${HOSTNAME}:3000"
|
|
echo "MinIO Dashboard URL: ${MINIO_DASHBOARD_URL}"
|
|
echo "CORS is configured to allow requests from: ${FRONTEND_URL}"
|