freeleaps-pub/devbox/devbox.local/cli/docker-compose.dev.arm64.new.yaml
2025-02-27 14:21:05 +08:00

306 lines
10 KiB
YAML

services:
gitea:
# For apple chip, add: platform: linux/amd64
container_name: freeleaps2-gitea
platform: linux/${ARCH:-arm64}
image: gitea/gitea:latest
restart: always
ports:
- "3000:3000"
environment:
- DISABLE_REGISTRATION=true
- REQUIRE_SIGNIN_VIEW=true
volumes:
- ${WORKING_HOME}/freeleaps2-gitea:/data:Z
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/${ARCH:-arm64}
image: mongo:latest
restart: always
ports:
- "27017:27017"
volumes:
- ${WORKING_HOME}/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}
container_name: freeleaps2-rabbitmq
image: rabbitmq:latest
restart: always
ports:
- "5672:5672"
- "15672:15672"
volumes:
- ${WORKING_HOME}/freeleaps2-rabbitmq-data:/var/lib/rabbitmq
networks:
- devbox_freeleaps2-network
devsvc:
container_name: devsvc
image: freeleaps/devsvc:${DEVSVC_IMAGE_TAG:-latest-linux-arm64}
restart: always
depends_on:
- gitea
- mongodb
- rabbitmq
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=6786dc398b77d2a9c454b1943019425049deb667
- 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: ${WORKING_HOME}/logs/devsvc
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}
# profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-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: ${WORKING_HOME}/logs/central_storage
target: /app/log/central_storage
authentication:
container_name: authentication
image: freeleaps/authentication:${AUTHENTICATION_IMAGE_TAG:-latest-linux-arm64}
# profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-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: ${WORKING_HOME}/logs/authentication
target: /app/log/authentication
content:
container_name: content
image: freeleaps/content:${CONTENT_IMAGE_TAG:-latest-linux-arm64}
# profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-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: ${WORKING_HOME}/logs/content
target: /app/log/content
notification:
container_name: notification
image: freeleaps/notification:${NOTIFICATION_IMAGE_TAG:-latest-linux-arm64}
# profiles: [ prod, alpha, dev ]
platform: linux/${ARCH:-arm64}
restart: always
depends_on:
- rabbitmq
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: ${WORKING_HOME}/logs/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
chat:
container_name: chat
image: freeleaps/chat:${CHAT_IMAGE_TAG:-latest-linux-arm64}
platform: linux/${ARCH:-arm64}
restart: always
depends_on:
- mongodb
- rabbitmq
ports:
- 8012:8012
environment:
- APP_NAME=chat
- 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
- SERVICE_API_ACCESS_PORT=8012
- 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/
- 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}/logs/freeleaps-chat
target: /app/log/freeleaps-chat
networks:
- devbox_freeleaps2-network
volumes:
freeleaps2-mongodb-data:
freeleaps2-gitea-data:
freeleaps2-rabbitmq-data:
networks:
devbox_freeleaps2-network:
external: true