Skip to content

Commit

Permalink
Add the ability to configure the amqps protocol (#318)
Browse files Browse the repository at this point in the history
  • Loading branch information
evgeniy-antonyuk authored Aug 26, 2024
1 parent 603a11b commit 8a27349
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 2 deletions.
10 changes: 10 additions & 0 deletions install/OneClickInstall/install-Docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ REDIS_PORT=""
REDIS_USER_NAME=""
REDIS_PASSWORD=""

RABBIT_PROTOCOL=""
RABBIT_HOST=""
RABBIT_PORT=""
RABBIT_USER_NAME=""
Expand Down Expand Up @@ -409,6 +410,13 @@ while [ "$1" != "" ]; do
fi
;;

-rbpr | --rabbitmqprotocol )
if [ "$2" != "" ]; then
RABBIT_PROTOCOL=$2
shift
fi
;;

-rbth | --rabbitmqhost )
if [ "$2" != "" ]; then
RABBIT_HOST=$2
Expand Down Expand Up @@ -536,6 +544,7 @@ while [ "$1" != "" ]; do
echo " -rdsp, --redisport redis server port number (default value 6379)"
echo " -rdsu, --redisusername redis user name"
echo " -rdspass, --redispassword password set for redis account"
echo " -rbpr, --rabbitmqprotocol the protocol for the connection to rabbitmq server (default value amqp)"
echo " -rbth, --rabbitmqhost the IP address or hostname of the rabbitmq server"
echo " -rbtp, --rabbitmqport rabbitmq server port number (default value 5672)"
echo " -rbtu, --rabbitmqusername username for rabbitmq server account"
Expand Down Expand Up @@ -1409,6 +1418,7 @@ services_check_connection () {
}
[[ ! -z "$RABBIT_HOST" ]] && {
establish_conn ${RABBIT_HOST} "${RABBIT_PORT:-5672}" "RabbitMQ"
reconfigure RABBIT_PROTOCOL ${RABBIT_PROTOCOL:-amqp}
reconfigure RABBIT_HOST ${RABBIT_HOST}
reconfigure RABBIT_PORT "${RABBIT_PORT:-5672}"
reconfigure RABBIT_USER_NAME ${RABBIT_USER_NAME}
Expand Down
7 changes: 6 additions & 1 deletion install/common/product-configuration
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ ELK_HOST="localhost"
ELK_PORT="9200"
OPENSEARCH_INDEX="${PACKAGE_SYSNAME}-fluent-bit"

RABBITMQ_PROTOCOL="amqp"
RABBITMQ_HOST="localhost"
RABBITMQ_USER="guest"
RABBITMQ_PASSWORD="guest"
Expand Down Expand Up @@ -216,6 +217,7 @@ while [ "$1" != "" ]; do
echo " -rbp, --rabbitmqport rabbitmq port"
echo " -rbu, --rabbitmquser rabbitmq user"
echo " -rbpw, --rabbitmqpassword rabbitmq password"
echo " -rbpr, --rabbitmqprotocol rabbitmq protocol"
echo " -mysqlh, --mysqlhost mysql server host"
echo " -mysqld, --mysqldatabase ${PRODUCT} database name"
echo " -mysqlu, --mysqluser ${PRODUCT} database user"
Expand Down Expand Up @@ -588,7 +590,7 @@ setup_docs() {
local DOCUMENT_SERVER_JWT_SECRET=${DOCUMENT_SERVER_JWT_SECRET:-$(json -f ${DS_CONF_DIR}/local.json services.CoAuthoring.secret.inbox.string)}
local DOCUMENT_SERVER_JWT_HEADER=${DOCUMENT_SERVER_JWT_HEADER:-$(json -f ${DS_CONF_DIR}/local.json services.CoAuthoring.token.inbox.header)}

$JSON ${DS_CONF_DIR}/local.json -e "this.rabbitmq = { 'url': 'amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@${RABBITMQ_HOST}:${RABBITMQ_PORT}' }" >/dev/null 2>&1
$JSON ${DS_CONF_DIR}/local.json -e "this.rabbitmq = { 'url': '${RABBITMQ_PROTOCOL}://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@${RABBITMQ_HOST}:${RABBITMQ_PORT}' }" >/dev/null 2>&1
$JSON ${DS_CONF_DIR}/local.json -e "this.services.CoAuthoring.redis = { 'host': '$REDIS_HOST' }" >/dev/null 2>&1
sed 's/\(listen .*:\)\([0-9]\{2,5\}\b\)\( default_server\)\?\(;\)/\1'${DOCUMENT_SERVER_PORT}'\3\4/' -i ${DS_CONF_DIR}/nginx/ds.conf

Expand Down Expand Up @@ -796,6 +798,9 @@ setup_rabbitmq() {
save_undefined_param "${APP_DIR}/rabbitmq.${ENVIRONMENT}.json" "RabbitMQ.Password" "${RABBITMQ_PASSWORD}" "$EXTERNAL_RABBITMQ_FLAG"
save_undefined_param "${APP_DIR}/rabbitmq.${ENVIRONMENT}.json" "RabbitMQ.Port" "${RABBITMQ_PORT}" "$EXTERNAL_RABBITMQ_FLAG"
save_undefined_param "${APP_DIR}/rabbitmq.${ENVIRONMENT}.json" "RabbitMQ.VirtualHost" "/"
if [[ ${RABBITMQ_PROTOCOL} = "amqps" ]] && [[ ${RABBITMQ_HOST} != "localhost" ]]; then
save_undefined_param "${APP_DIR}/rabbitmq.${ENVIRONMENT}.json" "RabbitMQ.Uri" "${RABBITMQ_PROTOCOL}://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@${RABBITMQ_HOST}:${RABBITMQ_PORT}/"
fi

if [ $1 == "LOCAL_RABBITMQ_SERVER" ]; then
systemctl enable rabbitmq-server >/dev/null 2>&1
Expand Down
1 change: 1 addition & 0 deletions install/docker/.env
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@

# rabbitmq #
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
RABBIT_PROTOCOL=""
RABBIT_HOST=""
RABBIT_PORT=5672
RABBIT_VIRTUAL_HOST=/
Expand Down
7 changes: 6 additions & 1 deletion install/docker/docker-entrypoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,13 +69,18 @@
REDIS_CONNECTION_HOST = REDIS_HOST if REDIS_HOST else REDIS_CONTAINER_NAME

RABBIT_CONTAINER_NAME = os.environ["RABBIT_CONTAINER_NAME"] if environ.get("RABBIT_CONTAINER_NAME") else "onlyoffice-rabbitmq"
RABBIT_PROTOCOL = os.environ["RABBIT_PROTOCOL"] if environ.get("RABBIT_PROTOCOL") else "amqp"
RABBIT_HOST = os.environ["RABBIT_HOST"] if environ.get("RABBIT_HOST") else None
RABBIT_USER_NAME = os.environ["RABBIT_USER_NAME"] if environ.get("RABBIT_USER_NAME") else "guest"
RABBIT_PASSWORD = os.environ["RABBIT_PASSWORD"] if environ.get("RABBIT_PASSWORD") else "guest"
RABBIT_PORT = os.environ["RABBIT_PORT"] if environ.get("RABBIT_PORT") else "5672"
RABBIT_VIRTUAL_HOST = os.environ["RABBIT_VIRTUAL_HOST"] if environ.get("RABBIT_VIRTUAL_HOST") else "/"
RABBIT_URI = {"Uri": os.environ["RABBIT_URI"]} if environ.get("RABBIT_URI") else None
RABBIT_CONNECTION_HOST = RABBIT_HOST if RABBIT_HOST else RABBIT_CONTAINER_NAME
RABBIT_URI = (
{"Uri": os.environ["RABBIT_URI"]} if os.environ.get("RABBIT_URI")
else {"Uri": f"{RABBIT_PROTOCOL}://{RABBIT_USER_NAME}:{RABBIT_PASSWORD}@{RABBIT_HOST}:{RABBIT_PORT}{RABBIT_VIRTUAL_HOST}"}
if RABBIT_PROTOCOL == "amqps" and RABBIT_HOST else None
)

class RunServices:
def __init__(self, SERVICE_PORT, PATH_TO_CONF):
Expand Down
1 change: 1 addition & 0 deletions install/docker/docspace.profiles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ x-service: &x-service-base
ELK_HOST: ${ELK_HOST}
ELK_PORT: ${ELK_PORT}
REDIS_CONTAINER_NAME: ${REDIS_CONTAINER_NAME}
RABBIT_PROTOCOL: ${RABBIT_PROTOCOL}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_USER_NAME: ${REDIS_USER_NAME}
Expand Down
1 change: 1 addition & 0 deletions install/docker/docspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ x-service: &x-service-base
REDIS_USER_NAME: ${REDIS_USER_NAME}
REDIS_PASSWORD: ${REDIS_PASSWORD}
RABBIT_CONTAINER_NAME: ${RABBIT_CONTAINER_NAME}
RABBIT_PROTOCOL: ${RABBIT_PROTOCOL}
RABBIT_HOST: ${RABBIT_HOST}
RABBIT_PORT: ${RABBIT_PORT}
RABBIT_VIRTUAL_HOST: ${RABBIT_VIRTUAL_HOST}
Expand Down
1 change: 1 addition & 0 deletions install/docker/notify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ x-service:
REDIS_USER_NAME: ${REDIS_USER_NAME}
REDIS_PASSWORD: ${REDIS_PASSWORD}
RABBIT_CONTAINER_NAME: ${RABBIT_CONTAINER_NAME}
RABBIT_PROTOCOL: ${RABBIT_PROTOCOL}
RABBIT_HOST: ${RABBIT_HOST}
RABBIT_PORT: ${RABBIT_PORT}
RABBIT_VIRTUAL_HOST: ${RABBIT_VIRTUAL_HOST}
Expand Down

0 comments on commit 8a27349

Please sign in to comment.