feat: support MySQL SSL connection (close #185)
This commit is contained in:
@@ -40,6 +40,18 @@ Default: `vaultwarden`
|
||||
|
||||
MySQL(MariaDB) password, **required**.
|
||||
|
||||
#### MYSQL_SSL_CA
|
||||
|
||||
The path to the CA certificate for TLS connection (optional).
|
||||
|
||||
#### MYSQL_SSL_CERT
|
||||
|
||||
The path to the client certificate for TLS connection (optional).
|
||||
|
||||
#### MYSQL_SSL_KEY
|
||||
|
||||
The path to the client key for TLS connection (optional).
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
+12
-1
@@ -52,7 +52,18 @@ function backup_db_postgresql() {
|
||||
function backup_db_mysql() {
|
||||
color blue "backup vaultwarden mysql database"
|
||||
|
||||
mariadb-dump -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" > "${BACKUP_FILE_DB_MYSQL}"
|
||||
local EXTRA_OPTIONS=()
|
||||
if [[ -n "${MYSQL_SSL_CA}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-ca=\"${MYSQL_SSL_CA}\"")
|
||||
fi
|
||||
if [[ -n "${MYSQL_SSL_CERT}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-cert=\"${MYSQL_SSL_CERT}\"")
|
||||
fi
|
||||
if [[ -n "${MYSQL_SSL_KEY}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-key=\"${MYSQL_SSL_KEY}\"")
|
||||
fi
|
||||
|
||||
eval "mariadb-dump -h \"${MYSQL_HOST}\" -P \"${MYSQL_PORT}\" -u \"${MYSQL_USERNAME}\" -p\"${MYSQL_PASSWORD}\" ${EXTRA_OPTIONS[@]} \"${MYSQL_DATABASE}\" > \"${BACKUP_FILE_DB_MYSQL}\""
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "backup vaultwarden mysql database failed"
|
||||
|
||||
|
||||
@@ -492,6 +492,15 @@ function init_env_db() {
|
||||
|
||||
# MYSQL_PASSWORD
|
||||
get_env MYSQL_PASSWORD
|
||||
|
||||
# MYSQL_SSL_CA
|
||||
get_env MYSQL_SSL_CA
|
||||
|
||||
# MYSQL_SSL_CERT
|
||||
get_env MYSQL_SSL_CERT
|
||||
|
||||
# MYSQL_SSL_KEY
|
||||
get_env MYSQL_SSL_KEY
|
||||
else # sqlite
|
||||
DB_TYPE="SQLITE"
|
||||
fi
|
||||
|
||||
+12
-1
@@ -90,7 +90,18 @@ function restore_db_postgresql() {
|
||||
function restore_db_mysql() {
|
||||
color blue "restore vaultwarden mysql database"
|
||||
|
||||
mariadb -h "${MYSQL_HOST}" -P "${MYSQL_PORT}" -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" < "${RESTORE_FILE_DB}"
|
||||
local EXTRA_OPTIONS=()
|
||||
if [[ -n "${MYSQL_SSL_CA}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-ca=\"${MYSQL_SSL_CA}\"")
|
||||
fi
|
||||
if [[ -n "${MYSQL_SSL_CERT}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-cert=\"${MYSQL_SSL_CERT}\"")
|
||||
fi
|
||||
if [[ -n "${MYSQL_SSL_KEY}" ]]; then
|
||||
EXTRA_OPTIONS+=("--ssl-key=\"${MYSQL_SSL_KEY}\"")
|
||||
fi
|
||||
|
||||
eval "mariadb -h \"${MYSQL_HOST}\" -P \"${MYSQL_PORT}\" -u \"${MYSQL_USERNAME}\" -p\"${MYSQL_PASSWORD}\" ${EXTRA_OPTIONS[@]} \"${MYSQL_DATABASE}\" < \"${RESTORE_FILE_DB}\""
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
color green "restore vaultwarden mysql database successful"
|
||||
|
||||
Reference in New Issue
Block a user