diff --git a/devbox/devbox.local/.dev.env b/devbox/devbox.local/.dev.env index 48e541f..2aced0f 100755 --- a/devbox/devbox.local/.dev.env +++ b/devbox/devbox.local/.dev.env @@ -3,8 +3,9 @@ export MONGODB_URI=mongodb://localhost:27017/ export SITE_ACCESS_PORT=80 export FREELEAPS_ENV=dev export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd -export STRIPE_WEBHOOK_SECRET= -export SITE_URL_ROOT=http://localhost/ +export STRIPE_WEBHOOK_SECRET=whsec_S6ZWjSAdR5Cpsn2USH6ZRBqbdBIENjTC +export STRIPE_ACCOUNT_WEBHOOK_SECRET=whsec_PgPnkWGhEUiQfnV8aIb5Wmruz7XETJLm +export SITE_URL_ROOT=http://localhost:5173/ export RABBITMQ_HOST=localhost export RABBITMQ_PORT=5672 export FONTAWESOME_AUTH_TOKEN=58624E90-2685-43C6-BF0F-0BFECCE11CD2 diff --git a/devbox/devbox.local/README_GITEA.md b/devbox/devbox.local/README_GITEA.md index 66e8715..1824699 100644 --- a/devbox/devbox.local/README_GITEA.md +++ b/devbox/devbox.local/README_GITEA.md @@ -22,7 +22,7 @@ else echo "Gitea data copying is done" fi -source ~/devbox/.dev.env +source ~/devbox/devbox.local/.dev.env docker network create devbox_freeleaps2-network docker-compose -f docker-compose.dev.amd64.new.yaml up -d ``` \ No newline at end of file diff --git a/devbox/devbox.local/docker-compose.dev.amd64.new.yaml b/devbox/devbox.local/docker-compose.dev.amd64.new.yaml index 1e44008..7969175 100755 --- a/devbox/devbox.local/docker-compose.dev.amd64.new.yaml +++ b/devbox/devbox.local/docker-compose.dev.amd64.new.yaml @@ -214,6 +214,7 @@ services: - SERVICE_API_ACCESS_PORT=8006 - STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd - STRIPE_WEBHOOK_SECRET=whsec_S6ZWjSAdR5Cpsn2USH6ZRBqbdBIENjTC + - STRIPE_ACCOUNT_WEBHOOK_SECRET=whsec_PgPnkWGhEUiQfnV8aIb5Wmruz7XETJLm - MONGODB_NAME=freeleaps2 - MONGODB_PORT=27017 - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ diff --git a/devbox/devbox.local/docker-compose.dev.arm64.new copy.yaml b/devbox/devbox.local/docker-compose.dev.arm64.new copy.yaml new file mode 100755 index 0000000..d09d05b --- /dev/null +++ b/devbox/devbox.local/docker-compose.dev.arm64.new copy.yaml @@ -0,0 +1,256 @@ +services: + gitea: + # For apple chip, add: platform: linux/amd64 + container_name: freeleaps2-gitea + platform: linux/arm64 + image: gitea/gitea:latest + restart: always + ports: + - "3000:3000" + environment: + - DISABLE_REGISTRATION=true + - REQUIRE_SIGNIN_VIEW=true + volumes: + - devboxlocal_freeleaps2-gitea-data:/data + networks: + - devbox_freeleaps2-network + + mongodb: + # For apple chip, add: platform: linux/amd64 + # For apple chip, you may want to downgrade to public mongo:4.4 for log support + container_name: freeleaps2-mongodb + platform: linux/arm64 + image: mongo:latest + restart: always + ports: + - "27017:27017" + volumes: + - freeleaps2-mongodb-data:/data/db + networks: + - devbox_freeleaps2-network + + rabbitmq: + # For apple chip, add: platform: linux/amd64 + platform: linux/arm64 + container_name: freeleaps2-rabbitmq + image: rabbitmq:latest + restart: always + ports: + - "5672:5672" + - "15672:15672" + volumes: + - freeleaps2-rabbitmq-data:/var/lib/rabbitmq + networks: + - devbox_freeleaps2-network + + devsvc: + container_name: devsvc + image: freeleaps/devsvc:latest-linux-arm64 + restart: always + environment: + - APP_NAME=devsvc + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8007 + - MONGODB_NAME=freeleaps2 + - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ + - GITEA_TOKEN=cc8656724aef0059664b4adec2a2b2b1e583f618 + - GITEA_URL=http://freeleaps2-gitea:3000 + - CODE_DEPOT_HTTP_PORT=3443 + - CODE_DEPOT_SSH_PORT=22 + - CODE_DEPOT_DOMAIN_NAME=localhost + - RABBITMQ_HOST=freeleaps2-rabbitmq + - RABBITMQ_PORT=5672 + - LOG_BASE_PATH=/app/log/devsvc + - BACKEND_LOG_FILE_NAME=devsvc.log + - APPLICATION_ACTIVITY_LOG=devsvc-application.log + ports: + - 8007:8007 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8007 --host=0.0.0.0 + volumes: + - type: bind + source: /var/lib/docker/app/devsvc/log + target: /app/log/devsvc + networks: + - devbox_freeleaps2-network + + central_storage: + container_name: central_storage + image: freeleaps/central_storage:latest-linux-arm64 + # profiles: [ prod, alpha, dev ] + platform: linux/arm64 + restart: always + environment: + - APP_NAME=central_storage + - MONGODB_NAME=freeleaps2 + - MONGODB_PORT=27017 + - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8005 + - AZURE_STORAGE_DOCUMENT_API_KEY=Cg+wtKpHt6Bo6bTUtjic40cRNRZ8NCI3JYBY69BNPgFJARVx/c18iVC7cASbJfzukyu4pksyhUep+AStFdpH7Q== + - AZURE_STORAGE_DOCUMENT_API_ENDPOINT=https://freeleaps1document.blob.core.windows.net/ + - LOG_BASE_PATH=/app/log/central_storage + - BACKEND_LOG_FILE_NAME=central_storage.log + - APPLICATION_ACTIVITY_LOG=central_storage-application.log + ports: + - 8005:8005 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8005 --host=0.0.0.0 + networks: + - devbox_freeleaps2-network + volumes: + - type: bind + source: /var/lib/docker/app/central_storage/log + target: /app/log/central_storage + + authentication: + container_name: authentication + image: freeleaps/authentication:latest-linux-arm64 + # profiles: [ prod, alpha, dev ] + platform: linux/arm64 + restart: always + environment: + - APP_NAME=authentication + - MONGODB_NAME=freeleaps2 + - MONGODB_PORT=27017 + - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8004 + - LOG_BASE_PATH=/app/log/authentication + - BACKEND_LOG_FILE_NAME=authentication.log + - APPLICATION_ACTIVITY_LOG=authentication-application.log + - NOTIFICATION_WEBAPI_URL_BASE=http://notification:8003/api/notification/ + - DEVSVC_WEBAPI_URL_BASE=http://devsvc:8007/api/devsvc + - JWT_SECRET_KEY=8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b + - JWT_ALGORITHM=HS256 + ports: + - 8004:8004 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8004 --host=0.0.0.0 + networks: + - devbox_freeleaps2-network + volumes: + - type: bind + source: /var/lib/docker/app/authentication/log + target: /app/log/authentication + + content: + container_name: content + image: freeleaps/content:latest-linux-arm64 + # profiles: [ prod, alpha, dev ] + platform: linux/arm64 + restart: always + environment: + - APP_NAME=content + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8013 + - MONGODB_NAME=freeleaps2 + - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ + - FREELEAPS_WWW_AS_AZURE_CLIENT_SECRET=jTu8Q~WceiK-5dfZB44Ww-K4fVGi3_5tHNWYYbdX + - CENTRAL_STORAGE_WEBAPI_URL_BASE=http://central_storage:8005/api/central_storage/ + - LOG_BASE_PATH=/app/log/content + - BACKEND_LOG_FILE_NAME=content.log + - APPLICATION_ACTIVITY_LOG=content-application.log + ports: + - 8013:8013 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8013 --host=0.0.0.0 + networks: + - devbox_freeleaps2-network + volumes: + - type: bind + source: /var/lib/docker/app/content/log + target: /app/log/content + + notification: + container_name: notification + image: freeleaps/notification:latest-linux-arm64 + # profiles: [ prod, alpha, dev ] + platform: linux/arm64 + restart: always + environment: + - APP_NAME=notification + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8003 + - RABBITMQ_HOST=freeleaps2-rabbitmq + - RABBITMQ_PORT=5672 + - SYSTEM_USER_ID=117f191e810c19729de860aa + - SMS_FROM=+16898887156 + - EMAIL_FROM=freeleaps@freeleaps.com + - SECRET_KEY=8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b + - SENDGRID_API_KEY=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 + - TWILIO_ACCOUNT_SID=ACf8c9283a6acda060258eadb29be58bc8 + - TWILIO_AUTH_TOKEN=120165c0550111ddfd58efc97dafc2fe + - LOG_BASE_PATH=/app/log/notification + - BACKEND_LOG_FILE_NAME=notification.log + - APPLICATION_ACTIVITY_LOG=notification-application.log + ports: + - 8003:8003 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8003 --host=0.0.0.0 + networks: + - devbox_freeleaps2-network + volumes: + - type: bind + source: /var/lib/docker/app/notification/log + target: /app/log/notification + + payment: + container_name: payment + image: freeleaps/payment:latest-linux-arm64 + restart: always + environment: + - APP_NAME=payment + - JWT_SECRET_KEY="8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b" + - JWT_ALGORITHM="HS256" #site_settings + - SERVICE_API_ACCESS_HOST=localhost + - SERVICE_API_ACCESS_PORT=8006 + - STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd + - STRIPE_WEBHOOK_SECRET=whsec_S6ZWjSAdR5Cpsn2USH6ZRBqbdBIENjTC + - STRIPE_ACCOUNT_WEBHOOK_SECRET=whsec_PgPnkWGhEUiQfnV8aIb5Wmruz7XETJLm + - MONGODB_NAME=freeleaps2 + - MONGODB_PORT=27017 + - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ + - LOG_BASE_PATH=/app/log/payment + - BACKEND_LOG_FILE_NAME=payment.log + - SITE_URL_ROOT=http://localhost/ + - APPLICATION_ACTIVITY_LOG=payment-application.log + ports: + - 8006:8006 + command: + - /bin/sh + - -c + - | + uvicorn webapi.main:app --reload --port=8006 --host=0.0.0.0 + networks: + - devbox_freeleaps2-network + volumes: + - type: bind + source: /var/lib/docker/app/payment/log + target: /app/log/payment + +volumes: + freeleaps2-mongodb-data: + devboxlocal_freeleaps2-gitea-data: + external: true + freeleaps2-rabbitmq-data: + + +networks: + devbox_freeleaps2-network: + external: true diff --git a/devbox/devbox.local/docker-compose.dev.arm64.new.yaml b/devbox/devbox.local/docker-compose.dev.arm64.new.yaml index 9de5afd..d09d05b 100755 --- a/devbox/devbox.local/docker-compose.dev.arm64.new.yaml +++ b/devbox/devbox.local/docker-compose.dev.arm64.new.yaml @@ -222,6 +222,7 @@ services: - SERVICE_API_ACCESS_PORT=8006 - STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd - STRIPE_WEBHOOK_SECRET=whsec_S6ZWjSAdR5Cpsn2USH6ZRBqbdBIENjTC + - STRIPE_ACCOUNT_WEBHOOK_SECRET=whsec_PgPnkWGhEUiQfnV8aIb5Wmruz7XETJLm - MONGODB_NAME=freeleaps2 - MONGODB_PORT=27017 - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ diff --git a/devbox/devbox.local/example/docker-compose.yaml b/devbox/devbox.local/example/docker-compose.yaml new file mode 100644 index 0000000..721fc22 --- /dev/null +++ b/devbox/devbox.local/example/docker-compose.yaml @@ -0,0 +1,106 @@ +services: + mongodb: + container_name: freeleaps2-mongodb-alpha + image: mongo:latest + profiles: [ alpha ] + restart: always + ports: + - ${MONGODB_PORT}:${MONGODB_PORT} + volumes: + - freeleaps2-mongodb-data:/data/db + networks: + - freeleaps2-network + + rabbitmq: + container_name: freeleaps2-rabbitmq + image: rabbitmq:3.13 + profiles: [ alpha, rabbitmq ] + restart: always + ports: + - ${RABBITMQ_PORT}:${RABBITMQ_PORT} + - ${RABBITMQ_PORT_1}:${RABBITMQ_PORT_1} + volumes: + - freeleaps2-rabbitmq-data:/var/lib/rabbitmq + networks: + - freeleaps2-network + + frontend: + container_name: freeleaps2-frontend + build: + context: ${FRONTEND_HOME} + args: + CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT} + FRONTEND_PORT: ${FRONTEND_PORT} + profiles: [ prod, alpha ] + restart: always + ports: + - ${FRONTEND_PORT}:${FRONTEND_PORT} + depends_on: + - backend + networks: + - freeleaps2-network + + backend: + container_name: freeleaps2-backend + build: + context: ${BACKEND_HOME} + args: + CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT} + profiles: [ prod, alpha ] + restart: always + environment: + - CERT_PATH=/app/certs + - EMAIL_FROM=${EMAIL_FROM} + - MONGODB_URI=${MONGODB_URI} + - MONGODB_NAME=freeleaps2 + - STRIPE_API_KEY=${STRIPE_API_KEY} + - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET} + - STRIPE_ACCOUNT_WEBHOOK_SECRET=${STRIPE_ACCOUNT_WEBHOOK_SECRET} + - SITE_URL_ROOT=${SITE_URL_ROOT} + - JWT_SECRET_KEY=${JWT_SECRET_KEY} + - RABBITMQ_HOST=${RABBITMQ_HOSTNAME} + - RABBITMQ_PORT=${RABBITMQ_PORT} + - LOG_BASE_PATH=${LOG_BASE_PATH} + - BACKEND_LOG_FILE_NAME=${BACKEND_LOG_FILE_NAME} + - APPLICATION_ACTIVITY_LOG=${APPLICATION_ACTIVITY_LOG} + - USER_ACTIVITY_LOG=${USER_ACTIVITY_LOG} + - BACKEND_PORT=${BACKEND_PORT} + - FREELEAPS_ENV=${FREELEAPS_ENV} + - FREELEAPS_DEVSVC_ENDPOINT=${FREELEAPS_DEVSVC_ENDPOINT} + - FREELEAPS_CONTENT_ENDPOINT=${FREELEAPS_CONTENT_ENDPOINT} + - FREELEAPS_PAYMENT_ENDPOINT=${FREELEAPS_PAYMENT_ENDPOINT} + - FREELEAPS_CENTRAL_STORAGE_ENDPOINT=${FREELEAPS_CENTRAL_STORAGE_ENDPOINT} + - FREELEAPS_AUTHENTICATION_ENDPOINT=${FREELEAPS_AUTHENTICATION_ENDPOINT} + - CERT_PATH=${CERT_PATH} + - KAFKA_SERVER_URL=${KAFKA_SERVER_URL} + ports: + - ${BACKEND_PORT}:${BACKEND_PORT} + command: + # Use a conditional check for RabbitMQ in alpha profile + - /bin/sh + - -c + - | + if [[ \"${RABBITMQ_HOST}\" == 'freeleaps2-rabbitmq' ]]; then + while ! nc -z freeleaps2-rabbitmq ${RABBITMQ_PORT}; do + echo "Waiting for RabbitMQ to start..." + sleep 1 + done + echo "RabbitMQ started" + fi + uvicorn freeleaps.webapi.main:app --host=0.0.0.0 --port=${BACKEND_PORT} --workers 4 --timeout-keep-alive 120 --log-level info + networks: + - freeleaps2-network + volumes: + - /secure/certs:/app/certs + - type: bind + source: $DOCKER_BACKEND_LOG_HOME + target: $LOG_BASE_PATH + +volumes: + freeleaps2-mongodb-data: + freeleaps2-rabbitmq-data: + + +networks: + freeleaps2-network: + driver: bridge diff --git a/devbox/devbox.remote/.dev.env b/devbox/devbox.remote/.dev.env index 4fde4cf..7a0dea8 100755 --- a/devbox/devbox.remote/.dev.env +++ b/devbox/devbox.remote/.dev.env @@ -9,6 +9,7 @@ export SITE_ACCESS_PORT=80 export FREELEAPS_ENV=dev export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd export STRIPE_WEBHOOK_SECRET= +export STRIPE_ACCOUNT_WEBHOOK_SECRET= export SITE_URL_ROOT=http://localhost/ export AZURE_TRANSLATION_API_KEY=eaf4c14eb06b4cd790e90111dc6e9f57 export AZURE_TRANSLATION_API_LOCATION=global