diff --git a/apps/casdoor/1.927.0/data.yml b/apps/casdoor/1.927.0/data.yml index a6a74ee94c30..83eb1efccca8 100644 --- a/apps/casdoor/1.927.0/data.yml +++ b/apps/casdoor/1.927.0/data.yml @@ -41,6 +41,8 @@ additionalProperties: value: mysql - label: MariaDB value: mariadb + - label: PostgreSQL + value: postgres - default: casdoor envKey: PANEL_DB_NAME labelEn: Database diff --git a/apps/casdoor/1.927.0/docker-compose.yml b/apps/casdoor/1.927.0/docker-compose.yml index ea9831de1635..5a5aa0325b6c 100644 --- a/apps/casdoor/1.927.0/docker-compose.yml +++ b/apps/casdoor/1.927.0/docker-compose.yml @@ -9,8 +9,8 @@ services: - ${PANEL_APP_PORT_HTTP}:8000 environment: RUNNING_IN_DOCKER: "true" - driverName: "mysql" - dataSourceName: ${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${PANEL_DB_PORT})/ + driverName: ${CASDOOR_DRIVER_NAME} + dataSourceName: ${CASDOOR_DATASOURCE_NAME} dbName: ${PANEL_DB_NAME} volumes: - ./conf:/conf diff --git a/apps/casdoor/1.927.0/scripts/init.sh b/apps/casdoor/1.927.0/scripts/init.sh new file mode 100644 index 000000000000..c40abb0ac7f0 --- /dev/null +++ b/apps/casdoor/1.927.0/scripts/init.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +[ -f ./.env ] && source ./.env + +# Default configuration +CASDOOR_DRIVER_NAME=${PANEL_DB_TYPE} +CASDOOR_DATASOURCE_NAME="${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${PANEL_DB_PORT})/" + +# Reset mariadb driver +if [ "$PANEL_DB_TYPE" = "mariadb" ]; then + CASDOOR_DRIVER_NAME="mysql" +fi + +# Reset postgresql datasource +if [ "$PANEL_DB_TYPE" = "postgres" ]; then + CASDOOR_DATASOURCE_NAME="user=${PANEL_DB_USER} password=${PANEL_DB_USER_PASSWORD} host=${PANEL_DB_HOST} port=${PANEL_DB_PORT} dbname=${PANEL_DB_NAME} sslmode=disable" +fi + +{ + # Retain the original environment variables + grep -vE '^(CASDOOR_DRIVER_NAME|CASDOOR_DATASOURCE_NAME)' ./.env 2>/dev/null + + # Add CASDOOR_xx environment variables + echo "CASDOOR_DRIVER_NAME=${CASDOOR_DRIVER_NAME}" + echo "CASDOOR_DATASOURCE_NAME=\"${CASDOOR_DATASOURCE_NAME}\"" + echo "" +} > ./.env.tmp && mv ./.env.tmp ./.env +