merge new change from master

This commit is contained in:
Tianyong Qiu 2025-02-24 10:04:54 +08:00
commit 2261627e74
41 changed files with 741 additions and 77 deletions

0
devbox/devbox.local/.acr_token Normal file → Executable file
View File

11
devbox/devbox.local/.dev.env Normal file → Executable file
View File

@ -3,8 +3,9 @@ export MONGODB_URI=mongodb://localhost:27017/
export SITE_ACCESS_PORT=80 export SITE_ACCESS_PORT=80
export FREELEAPS_ENV=dev export FREELEAPS_ENV=dev
export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd
export STRIPE_WEBHOOK_SECRET= export STRIPE_WEBHOOK_SECRET=whsec_S6ZWjSAdR5Cpsn2USH6ZRBqbdBIENjTC
export SITE_URL_ROOT=http://localhost/ export STRIPE_ACCOUNT_WEBHOOK_SECRET=whsec_PgPnkWGhEUiQfnV8aIb5Wmruz7XETJLm
export SITE_URL_ROOT=http://localhost:5173/
export RABBITMQ_HOST=localhost export RABBITMQ_HOST=localhost
export RABBITMQ_PORT=5672 export RABBITMQ_PORT=5672
export FONTAWESOME_AUTH_TOKEN=58624E90-2685-43C6-BF0F-0BFECCE11CD2 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_DEVSVC_ENDPOINT=http://localhost:8007/api/devsvc
export FREELEAPS_CONTENT_ENDPOINT=http://localhost:8013/api/content/ export FREELEAPS_CONTENT_ENDPOINT=http://localhost:8013/api/content/
export FREELEAPS_CENTRAL_STORAGE_ENDPOINT=http://localhost:8005/api/central_storage/ export FREELEAPS_CENTRAL_STORAGE_ENDPOINT=http://localhost:8005/api/central_storage/
export FREELEAPS_AUTHENTICATION_ENDPOINT=https://localhost:8004/api/auth/ export FREELEAPS_AUTHENTICATION_ENDPOINT=http://localhost:8004/api/auth/
export JWT_SECRET_KEY=ea84edf152976b2fcec12b78aa8e45bc26a5cf0ef61bf16f5c317ae33b3fd8b0 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 FREELEAPS_AUTHENTICATION_ENDPOINT=http://localhost:8004/api/auth/
export EMAIL_FROM=freeleaps@freeleaps.com export EMAIL_FROM=freeleaps@freeleaps.com

0
devbox/devbox.local/Dockerfile Normal file → Executable file
View File

0
devbox/devbox.local/README.md Normal file → Executable file
View File

View File

@ -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
```

0
devbox/devbox.local/acr_login.sh Normal file → Executable file
View File

0
devbox/devbox.local/authorized_keys Normal file → Executable file
View File

0
devbox/devbox.local/build-devbox.jenkinsfile Normal file → Executable file
View File

0
devbox/devbox.local/destroy.sh Normal file → Executable file
View File

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -2,7 +2,7 @@ services:
gitea: gitea:
# For apple chip, add: platform: linux/amd64 # For apple chip, add: platform: linux/amd64
container_name: freeleaps2-gitea container_name: freeleaps2-gitea
platform: linux/${ARCH:-arm64} platform: linux/arm64
image: gitea/gitea:latest image: gitea/gitea:latest
restart: always restart: always
ports: ports:
@ -10,53 +10,8 @@ services:
environment: environment:
- DISABLE_REGISTRATION=true - DISABLE_REGISTRATION=true
- REQUIRE_SIGNIN_VIEW=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: volumes:
- type: bind - devboxlocal_freeleaps2-gitea-data:/data
source: ${WORKING_HOME}/freeleaps/apps
target: /app/log/freeleaps-chat
networks: networks:
- devbox_freeleaps2-network - devbox_freeleaps2-network
@ -64,19 +19,20 @@ services:
# For apple chip, add: platform: linux/amd64 # For apple chip, add: platform: linux/amd64
# For apple chip, you may want to downgrade to public mongo:4.4 for log support # For apple chip, you may want to downgrade to public mongo:4.4 for log support
container_name: freeleaps2-mongodb container_name: freeleaps2-mongodb
platform: linux/${ARCH:-arm64} platform: linux/arm64
image: mongo:latest image: mongo:latest
restart: always restart: always
ports: ports:
- "27017:27017" - "27017:27017"
volumes: volumes:
- ${WORKING_HOME}/freeleaps2-mongodb-data:/data/db - freeleaps2-mongodb-data:/data/db
networks: networks:
- devbox_freeleaps2-network - devbox_freeleaps2-network
command: ["mongod", "--bind_ip_all"]
rabbitmq: rabbitmq:
# For apple chip, add: platform: linux/amd64 # For apple chip, add: platform: linux/amd64
platform: linux/${ARCH:-arm64} platform: linux/arm64
container_name: freeleaps2-rabbitmq container_name: freeleaps2-rabbitmq
image: rabbitmq:latest image: rabbitmq:latest
restart: always restart: always
@ -84,13 +40,13 @@ services:
- "5672:5672" - "5672:5672"
- "15672:15672" - "15672:15672"
volumes: volumes:
- ${WORKING_HOME}/freeleaps2-rabbitmq-data:/var/lib/rabbitmq - freeleaps2-rabbitmq-data:/var/lib/rabbitmq
networks: networks:
- devbox_freeleaps2-network - devbox_freeleaps2-network
devsvc: devsvc:
container_name: devsvc container_name: devsvc
image: freeleaps/devsvc:${DEVSVC_IMAGE_TAG:-latest-linux-arm64} image: freeleaps/devsvc:latest-linux-arm64
restart: always restart: always
environment: environment:
- APP_NAME=devsvc - APP_NAME=devsvc
@ -98,7 +54,7 @@ services:
- SERVICE_API_ACCESS_PORT=8007 - SERVICE_API_ACCESS_PORT=8007
- MONGODB_NAME=freeleaps2 - MONGODB_NAME=freeleaps2
- MONGODB_URI=mongodb://freeleaps2-mongodb:27017/ - MONGODB_URI=mongodb://freeleaps2-mongodb:27017/
- GITEA_TOKEN=6786dc398b77d2a9c454b1943019425049deb667 - GITEA_TOKEN=cc8656724aef0059664b4adec2a2b2b1e583f618
- GITEA_URL=http://freeleaps2-gitea:3000 - GITEA_URL=http://freeleaps2-gitea:3000
- CODE_DEPOT_HTTP_PORT=3443 - CODE_DEPOT_HTTP_PORT=3443
- CODE_DEPOT_SSH_PORT=22 - CODE_DEPOT_SSH_PORT=22
@ -117,16 +73,16 @@ services:
uvicorn webapi.main:app --reload --port=8007 --host=0.0.0.0 uvicorn webapi.main:app --reload --port=8007 --host=0.0.0.0
volumes: volumes:
- type: bind - type: bind
source: ${WORKING_HOME}/logs/devsvc source: /var/lib/docker/app/devsvc/log
target: /app/log/devsvc target: /app/log/devsvc
networks: networks:
- devbox_freeleaps2-network - devbox_freeleaps2-network
central_storage: central_storage:
container_name: 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 ] # profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-arm64} platform: linux/arm64
restart: always restart: always
environment: environment:
- APP_NAME=central_storage - APP_NAME=central_storage
@ -151,14 +107,14 @@ services:
- devbox_freeleaps2-network - devbox_freeleaps2-network
volumes: volumes:
- type: bind - type: bind
source: ${WORKING_HOME}/logs/central_storage source: /var/lib/docker/app/central_storage/log
target: /app/log/central_storage target: /app/log/central_storage
authentication: authentication:
container_name: authentication container_name: authentication
image: freeleaps/authentication:${AUTHENTICATION_IMAGE_TAG:-latest-linux-arm64} image: freeleaps/authentication:latest-linux-arm64
# profiles: [ prod, alpha, dev ] # profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-arm64} platform: linux/arm64
restart: always restart: always
environment: environment:
- APP_NAME=authentication - APP_NAME=authentication
@ -185,14 +141,14 @@ services:
- devbox_freeleaps2-network - devbox_freeleaps2-network
volumes: volumes:
- type: bind - type: bind
source: ${WORKING_HOME}/logs/authentication source: /var/lib/docker/app/authentication/log
target: /app/log/authentication target: /app/log/authentication
content: content:
container_name: content container_name: content
image: freeleaps/content:${CONTENT_IMAGE_TAG:-latest-linux-arm64} image: freeleaps/content:latest-linux-arm64
# profiles: [ prod, alpha, dev ] # profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-arm64} platform: linux/arm64
restart: always restart: always
environment: environment:
- APP_NAME=content - APP_NAME=content
@ -216,14 +172,14 @@ services:
- devbox_freeleaps2-network - devbox_freeleaps2-network
volumes: volumes:
- type: bind - type: bind
source: ${WORKING_HOME}/logs/content source: /var/lib/docker/app/content/log
target: /app/log/content target: /app/log/content
notification: notification:
container_name: notification container_name: notification
image: freeleaps/notification:${NOTIFICATION_IMAGE_TAG:-latest-linux-arm64} image: freeleaps/notification:latest-linux-arm64
# profiles: [ prod, alpha, dev ] # profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-arm64} platform: linux/arm64
restart: always restart: always
environment: environment:
- APP_NAME=notification - APP_NAME=notification
@ -252,12 +208,47 @@ services:
- devbox_freeleaps2-network - devbox_freeleaps2-network
volumes: volumes:
- type: bind - type: bind
source: ${WORKING_HOME}/logs/notification source: /var/lib/docker/app/notification/log
target: /app/log/notification 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: volumes:
freeleaps2-mongodb-data: freeleaps2-mongodb-data:
freeleaps2-gitea-data: devboxlocal_freeleaps2-gitea-data:
external: true
freeleaps2-rabbitmq-data: freeleaps2-rabbitmq-data:

0
devbox/devbox.local/docker-compose.dev.arm64.yaml Normal file → Executable file
View File

0
devbox/devbox.local/docker-compose.dev.yaml Normal file → Executable file
View File

0
devbox/devbox.local/entrypoint.sh Normal file → Executable file
View File

0
devbox/devbox.local/entrypoint_restore.sh Normal file → Executable file
View File

View File

@ -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

0
devbox/devbox.local/gitea_data_backup.tar.gz Normal file → Executable file
View File

0
devbox/devbox.local/image-1.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

0
devbox/devbox.local/image.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

12
devbox/devbox.local/init_devbox.sh Normal file → Executable file
View File

@ -1,5 +1,5 @@
#!/bin/bash #!/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 # Get the architecture using the `arch` command
ARCH=$(arch 2>/dev/null) ARCH=$(arch 2>/dev/null)
@ -58,8 +58,8 @@ pushd ~/freeleaps/freeleaps2-backend/tools
./initialize_collections_devbox.sh ./initialize_collections_devbox.sh
popd popd
docker volume create devbox_freeleaps2-gitea-data docker volume create devboxlocal_freeleaps2-gitea-data
GITEA_DATA=$(docker volume inspect devbox_freeleaps2-gitea-data | jq -r '.[0].Mountpoint') GITEA_DATA=$(docker volume inspect devboxlocal_freeleaps2-gitea-data | jq -r '.[0].Mountpoint')
if [[ -d "${GITEA_DATA}/gitea" ]]; then if [[ -d "${GITEA_DATA}/gitea" ]]; then
echo "Gitea data exist, skipping..." echo "Gitea data exist, skipping..."
@ -68,9 +68,9 @@ else
sudo rm -rf ${GITEA_DATA}/git sudo rm -rf ${GITEA_DATA}/git
sudo rm -rf ${GITEA_DATA}/gitea sudo rm -rf ${GITEA_DATA}/gitea
sudo rm -rf ${GITEA_DATA}/ssh sudo rm -rf ${GITEA_DATA}/ssh
sudo mv data/git ${GITEA_DATA}/ sudo mv git ${GITEA_DATA}/
sudo mv data/gitea ${GITEA_DATA}/ sudo mv gitea ${GITEA_DATA}/
sudo mv data/ssh ${GITEA_DATA}/ sudo mv ssh ${GITEA_DATA}/
sudo chown -R freedev:freedev ${GITEA_DATA} sudo chown -R freedev:freedev ${GITEA_DATA}
echo "Gitea data copying is done" echo "Gitea data copying is done"
fi fi

0
devbox/devbox.local/launch.sh Normal file → Executable file
View File

0
devbox/devbox.local/requirements.txt Normal file → Executable file
View File

0
devbox/devbox.local/restore.sh Normal file → Executable file
View File

0
devbox/devbox.local/start_all_svc.sh Normal file → Executable file
View File

0
devbox/devbox.local/start_backend.sh Normal file → Executable file
View File

0
devbox/devbox.local/start_frontend.sh Normal file → Executable file
View File

0
devbox/devbox.local/start_frontend_cn.sh Normal file → Executable file
View File

0
devbox/devbox.local/stop.sh Normal file → Executable file
View File

0
devbox/devbox.local/stop_all_svc.sh Normal file → Executable file
View File

1
devbox/devbox.remote/.dev.env Normal file → Executable file
View File

@ -9,6 +9,7 @@ export SITE_ACCESS_PORT=80
export FREELEAPS_ENV=dev export FREELEAPS_ENV=dev
export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd export STRIPE_API_KEY=sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd
export STRIPE_WEBHOOK_SECRET= export STRIPE_WEBHOOK_SECRET=
export STRIPE_ACCOUNT_WEBHOOK_SECRET=
export SITE_URL_ROOT=http://localhost/ export SITE_URL_ROOT=http://localhost/
export AZURE_TRANSLATION_API_KEY=eaf4c14eb06b4cd790e90111dc6e9f57 export AZURE_TRANSLATION_API_KEY=eaf4c14eb06b4cd790e90111dc6e9f57
export AZURE_TRANSLATION_API_LOCATION=global export AZURE_TRANSLATION_API_LOCATION=global

0
devbox/devbox.remote/Dockerfile Normal file → Executable file
View File

0
devbox/devbox.remote/gitea_data_backup.tar.gz Normal file → Executable file
View File

0
devbox/devbox.remote/init_devbox.sh Normal file → Executable file
View File

0
devbox/devbox.remote/init_open_box.sh Normal file → Executable file
View File

0
devbox/devbox.remote/requirements.txt Normal file → Executable file
View File

0
devbox/devbox.remote/start.sh Normal file → Executable file
View File

0
devbox/devbox.remote/start_backend_for_dev.sh Normal file → Executable file
View File

0
devbox/devbox.remote/start_frontend_for_dev.sh Normal file → Executable file
View File

0
devbox/devbox.remote/stop_backend.sh Normal file → Executable file
View File