diff --git a/devbox/devbox.local/.acr_token b/devbox/devbox.local/.acr_token old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/.dev.env b/devbox/devbox.local/.dev.env old mode 100644 new mode 100755 index db814fd..4babe02 --- 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 @@ -12,8 +13,10 @@ export FREELEAPS_FREEDEV_ACR_PULL_TOKEN='MG/kAjmmUoVi3EUPruatrqh104pq3d6gtgwMI/F export FREELEAPS_DEVSVC_ENDPOINT=http://localhost:8007/api/devsvc export FREELEAPS_CONTENT_ENDPOINT=http://localhost:8013/api/content/ export FREELEAPS_CENTRAL_STORAGE_ENDPOINT=http://localhost:8005/api/central_storage/ -export FREELEAPS_AUTHENTICATION_ENDPOINT=https://localhost:8004/api/auth/ -export JWT_SECRET_KEY=ea84edf152976b2fcec12b78aa8e45bc26a5cf0ef61bf16f5c317ae33b3fd8b0 +export FREELEAPS_AUTHENTICATION_ENDPOINT=http://localhost:8004/api/auth/ +export FREELEAPS_PAYMENT_ENDPOINT=http://localhost:8006/api/payment/ +export FREELEAPS_CHAT_ENDPOINT=http://localhost:8012/api/chat/ +export JWT_SECRET_KEY=8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b export FREELEAPS_AUTHENTICATION_ENDPOINT=http://localhost:8004/api/auth/ export EMAIL_FROM=freeleaps@freeleaps.com diff --git a/devbox/devbox.local/Dockerfile b/devbox/devbox.local/Dockerfile old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/README.md b/devbox/devbox.local/README.md old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/README_GITEA.md b/devbox/devbox.local/README_GITEA.md new file mode 100644 index 0000000..1824699 --- /dev/null +++ b/devbox/devbox.local/README_GITEA.md @@ -0,0 +1,28 @@ +```bash +sudo tar -xzvf devbox_gitea_data_backup.tar.gz +``` + +```bash +docker volume create devboxlocal_freeleaps2-gitea-data +GITEA_DATA=$(docker volume inspect devboxlocal_freeleaps2-gitea-data | jq -r '.[0].Mountpoint') +``` + +```bash +if [[ -d "${GITEA_DATA}/gitea" ]]; then + echo "Gitea data exist, skipping..." +else + echo "Gitea data not exist, copying..." + sudo rm -rf ${GITEA_DATA}/git + sudo rm -rf ${GITEA_DATA}/gitea + sudo rm -rf ${GITEA_DATA}/ssh + sudo mv git ${GITEA_DATA}/ + sudo mv gitea ${GITEA_DATA}/ + sudo mv ssh ${GITEA_DATA}/ + sudo chown -R freedev:freedev ${GITEA_DATA} + echo "Gitea data copying is done" +fi + +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/acr_login.sh b/devbox/devbox.local/acr_login.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/authorized_keys b/devbox/devbox.local/authorized_keys old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/build-devbox.jenkinsfile b/devbox/devbox.local/build-devbox.jenkinsfile old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/destroy.sh b/devbox/devbox.local/destroy.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/devbox_gitea_data_backup.tar.gz b/devbox/devbox.local/devbox_gitea_data_backup.tar.gz new file mode 100755 index 0000000..5c0949a Binary files /dev/null and b/devbox/devbox.local/devbox_gitea_data_backup.tar.gz differ diff --git a/devbox/devbox.local/docker-compose.dev.amd64.new.yaml b/devbox/devbox.local/docker-compose.dev.amd64.new.yaml new file mode 100755 index 0000000..7969175 --- /dev/null +++ b/devbox/devbox.local/docker-compose.dev.amd64.new.yaml @@ -0,0 +1,248 @@ +services: + gitea: + container_name: freeleaps2-gitea + platform: linux/amd64 + 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: + container_name: freeleaps2-mongodb + platform: linux/amd64 + image: mongo:latest + restart: always + ports: + - "27017:27017" + volumes: + - freeleaps2-mongodb-data:/data/db + networks: + - devbox_freeleaps2-network + + rabbitmq: + platform: linux/amd64 + 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-amd64 + 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-amd64 + platform: linux/amd64 + 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-amd64 + platform: linux/amd64 + 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-amd64 + platform: linux/amd64 + 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-amd64 + platform: linux/amd64 + 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-amd64 + restart: always + environment: + - APP_NAME=payment + - JWT_SECRET_KEY="8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b" + - JWT_ALGORITHM="HS256" + - 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 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 7c2861e..25b6571 100644 --- a/devbox/devbox.local/docker-compose.dev.arm64.new.yaml +++ b/devbox/devbox.local/docker-compose.dev.arm64.new.yaml @@ -2,7 +2,7 @@ services: gitea: # For apple chip, add: platform: linux/amd64 container_name: freeleaps2-gitea - platform: linux/${ARCH:-arm64} + platform: linux/arm64 image: gitea/gitea:latest restart: always ports: @@ -10,53 +10,8 @@ services: environment: - DISABLE_REGISTRATION=true - REQUIRE_SIGNIN_VIEW=true - volumes: - - ${WORKING_HOME}/freeleaps2-gitea:/data:Z - networks: - - devbox_freeleaps2-network - - chat: - container_name: freeleaps-chat - build: - context: ${WORKING_HOME}/freeleaps/apps - dockerfile: ${WORKING_HOME}/freeleaps/dockers/dev.chat.Dockerfile - args: - CONTAINER_APP_ROOT: app - restart: always - ports: - - 8012:8012 - environment: - - CERT_PATH=/app/certs - - EMAIL_FROM=freeleaps@freeleaps.com - - MONGODB_NAME=freeleaps2 - - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ - - SITE_URL_ROOT=http://localhost - - JWT_SECRET_KEY=8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b - - JWT_ALGORITHM=HS256 - - RABBITMQ_HOST=freeleaps2-rabbitmq - - RABBITMQ_PORT=5672 - - LOG_BASE_PATH=/app/log/freeleaps-chat - - BACKEND_LOG_FILE_NAME=freeleaps-chat.log - - APPLICATION_ACTIVITY_LOG=freeleaps-chat.application.log - - FREELEAPS_ENV=dev - - FREELEAPS_CHAT_ENDPOINT=http://freeleaps-alpha.com/api/chat/ - - FREELEAPS_DEVSVC_ENDPOINT=http://devsvc:8007/api/devsvc/ - - FREELEAPS_CONTENT_ENDPOINT=http://content:8013/api/content/ - - FREELEAPS_NOTIFICATION_ENDPOINT=http://notification:8003/api/notification/ - - FREELEAPS_CENTRAL_STORAGE_ENDPOINT=http://central_storage:8005/api/central_storage/ - - FREELEAPS_AUTHENTICATION_ENDPOINT=http://authentication:8004/api/auth/ - - CERT_PATH=/app/certs - - TZ=Asia/Shanghai - command: - # Use a conditional check for RabbitMQ in alpha profile - - /bin/sh - - -c - - | - uvicorn chat.main:app --reload --host=0.0.0.0 --port=8012 --workers 4 --timeout-keep-alive 120 --log-level info volumes: - - type: bind - source: ${WORKING_HOME}/freeleaps/apps - target: /app/log/freeleaps-chat + - devboxlocal_freeleaps2-gitea-data:/data networks: - devbox_freeleaps2-network @@ -64,19 +19,20 @@ services: # 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/${ARCH:-arm64} + platform: linux/arm64 image: mongo:latest restart: always ports: - "27017:27017" volumes: - - ${WORKING_HOME}/freeleaps2-mongodb-data:/data/db + - freeleaps2-mongodb-data:/data/db networks: - devbox_freeleaps2-network + command: ["mongod", "--bind_ip_all"] rabbitmq: # For apple chip, add: platform: linux/amd64 - platform: linux/${ARCH:-arm64} + platform: linux/arm64 container_name: freeleaps2-rabbitmq image: rabbitmq:latest restart: always @@ -84,13 +40,13 @@ services: - "5672:5672" - "15672:15672" volumes: - - ${WORKING_HOME}/freeleaps2-rabbitmq-data:/var/lib/rabbitmq + - freeleaps2-rabbitmq-data:/var/lib/rabbitmq networks: - devbox_freeleaps2-network devsvc: container_name: devsvc - image: freeleaps/devsvc:${DEVSVC_IMAGE_TAG:-latest-linux-arm64} + image: freeleaps/devsvc:latest-linux-arm64 restart: always environment: - APP_NAME=devsvc @@ -98,7 +54,7 @@ services: - SERVICE_API_ACCESS_PORT=8007 - MONGODB_NAME=freeleaps2 - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ - - GITEA_TOKEN=6786dc398b77d2a9c454b1943019425049deb667 + - GITEA_TOKEN=cc8656724aef0059664b4adec2a2b2b1e583f618 - GITEA_URL=http://freeleaps2-gitea:3000 - CODE_DEPOT_HTTP_PORT=3443 - CODE_DEPOT_SSH_PORT=22 @@ -117,16 +73,16 @@ services: uvicorn webapi.main:app --reload --port=8007 --host=0.0.0.0 volumes: - type: bind - source: ${WORKING_HOME}/logs/devsvc + 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:${CENTRAL_STORAGE_IMAGE_TAG:-latest-linux-arm64} + image: freeleaps/central_storage:latest-linux-arm64 # profiles: [ prod, alpha, dev ] - platform: linux/${ARCH:-arm64} + platform: linux/arm64 restart: always environment: - APP_NAME=central_storage @@ -151,14 +107,14 @@ services: - devbox_freeleaps2-network volumes: - type: bind - source: ${WORKING_HOME}/logs/central_storage + source: /var/lib/docker/app/central_storage/log target: /app/log/central_storage authentication: container_name: authentication - image: freeleaps/authentication:${AUTHENTICATION_IMAGE_TAG:-latest-linux-arm64} + image: freeleaps/authentication:latest-linux-arm64 # profiles: [ prod, alpha, dev ] - platform: linux/${ARCH:-arm64} + platform: linux/arm64 restart: always environment: - APP_NAME=authentication @@ -185,14 +141,14 @@ services: - devbox_freeleaps2-network volumes: - type: bind - source: ${WORKING_HOME}/logs/authentication + source: /var/lib/docker/app/authentication/log target: /app/log/authentication content: container_name: content - image: freeleaps/content:${CONTENT_IMAGE_TAG:-latest-linux-arm64} + image: freeleaps/content:latest-linux-arm64 # profiles: [ prod, alpha, dev ] - platform: linux/${ARCH:-arm64} + platform: linux/arm64 restart: always environment: - APP_NAME=content @@ -216,14 +172,14 @@ services: - devbox_freeleaps2-network volumes: - type: bind - source: ${WORKING_HOME}/logs/content + source: /var/lib/docker/app/content/log target: /app/log/content notification: container_name: notification - image: freeleaps/notification:${NOTIFICATION_IMAGE_TAG:-latest-linux-arm64} + image: freeleaps/notification:latest-linux-arm64 # profiles: [ prod, alpha, dev ] - platform: linux/${ARCH:-arm64} + platform: linux/arm64 restart: always environment: - APP_NAME=notification @@ -252,12 +208,47 @@ services: - devbox_freeleaps2-network volumes: - type: bind - source: ${WORKING_HOME}/logs/notification + 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: - freeleaps2-gitea-data: + devboxlocal_freeleaps2-gitea-data: + external: true freeleaps2-rabbitmq-data: diff --git a/devbox/devbox.local/docker-compose.dev.arm64.yaml b/devbox/devbox.local/docker-compose.dev.arm64.yaml old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/docker-compose.dev.yaml b/devbox/devbox.local/docker-compose.dev.yaml old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/entrypoint.sh b/devbox/devbox.local/entrypoint.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/entrypoint_restore.sh b/devbox/devbox.local/entrypoint_restore.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/example/docker-compose.yaml b/devbox/devbox.local/example/docker-compose.yaml new file mode 100644 index 0000000..0b0c442 --- /dev/null +++ b/devbox/devbox.local/example/docker-compose.yaml @@ -0,0 +1,137 @@ +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 + chat: + container_name: freeleaps-chat + build: + context: ${CHAT_HOME} + args: + CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT} + profiles: [ prod, alpha ] + restart: always + ports: + - ${CHAT_PORT}:${CHAT_PORT} + environment: + - MONGODB_URI=${MONGODB_URI} + - MONGODB_NAME=freeleaps2 + - RABBITMQ_HOST=${RABBITMQ_HOSTNAME} + - RABBITMQ_PORT=${RABBITMQ_PORT} + - TZ=Asia/Shanghai + 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 main:app --host=0.0.0.0 --port=${CHAT_PORT} --workers 4 --timeout-keep-alive 120 --log-level info + 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} + - FREELEAPS_CHAT_ENDPOINT=${FREELEAPS_CHAT_ENDPOINT} + - 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.local/gitea_data_backup.tar.gz b/devbox/devbox.local/gitea_data_backup.tar.gz old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/image-1.png b/devbox/devbox.local/image-1.png old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/image.png b/devbox/devbox.local/image.png old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/init_devbox.sh b/devbox/devbox.local/init_devbox.sh old mode 100644 new mode 100755 index 7a794f3..0592600 --- a/devbox/devbox.local/init_devbox.sh +++ b/devbox/devbox.local/init_devbox.sh @@ -1,5 +1,5 @@ #!/bin/bash -sudo tar -xzvf gitea_data_backup.tar.gz +sudo tar -xzvf devbox_gitea_data_backup.tar.gz # Get the architecture using the `arch` command ARCH=$(arch 2>/dev/null) @@ -58,8 +58,8 @@ pushd ~/freeleaps/freeleaps2-backend/tools ./initialize_collections_devbox.sh popd -docker volume create devbox_freeleaps2-gitea-data -GITEA_DATA=$(docker volume inspect devbox_freeleaps2-gitea-data | jq -r '.[0].Mountpoint') +docker volume create devboxlocal_freeleaps2-gitea-data +GITEA_DATA=$(docker volume inspect devboxlocal_freeleaps2-gitea-data | jq -r '.[0].Mountpoint') if [[ -d "${GITEA_DATA}/gitea" ]]; then echo "Gitea data exist, skipping..." @@ -68,9 +68,9 @@ else sudo rm -rf ${GITEA_DATA}/git sudo rm -rf ${GITEA_DATA}/gitea sudo rm -rf ${GITEA_DATA}/ssh - sudo mv data/git ${GITEA_DATA}/ - sudo mv data/gitea ${GITEA_DATA}/ - sudo mv data/ssh ${GITEA_DATA}/ + sudo mv git ${GITEA_DATA}/ + sudo mv gitea ${GITEA_DATA}/ + sudo mv ssh ${GITEA_DATA}/ sudo chown -R freedev:freedev ${GITEA_DATA} echo "Gitea data copying is done" fi diff --git a/devbox/devbox.local/launch.sh b/devbox/devbox.local/launch.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/requirements.txt b/devbox/devbox.local/requirements.txt old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/restore.sh b/devbox/devbox.local/restore.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/start_all_svc.sh b/devbox/devbox.local/start_all_svc.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/start_backend.sh b/devbox/devbox.local/start_backend.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/start_frontend.sh b/devbox/devbox.local/start_frontend.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/start_frontend_cn.sh b/devbox/devbox.local/start_frontend_cn.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/stop.sh b/devbox/devbox.local/stop.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.local/stop_all_svc.sh b/devbox/devbox.local/stop_all_svc.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/.dev.env b/devbox/devbox.remote/.dev.env old mode 100644 new mode 100755 index 4fde4cf..7a0dea8 --- 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 diff --git a/devbox/devbox.remote/Dockerfile b/devbox/devbox.remote/Dockerfile old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/gitea_data_backup.tar.gz b/devbox/devbox.remote/gitea_data_backup.tar.gz old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/init_devbox.sh b/devbox/devbox.remote/init_devbox.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/init_open_box.sh b/devbox/devbox.remote/init_open_box.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/requirements.txt b/devbox/devbox.remote/requirements.txt old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/start.sh b/devbox/devbox.remote/start.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/start_backend_for_dev.sh b/devbox/devbox.remote/start_backend_for_dev.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/start_frontend_for_dev.sh b/devbox/devbox.remote/start_frontend_for_dev.sh old mode 100644 new mode 100755 diff --git a/devbox/devbox.remote/stop_backend.sh b/devbox/devbox.remote/stop_backend.sh old mode 100644 new mode 100755