From 59f053433c2cedf6176d1ba719cdaaffea8d13f5 Mon Sep 17 00:00:00 2001 From: Jack Kawell Date: Tue, 7 Dec 2021 23:33:34 -0700 Subject: [PATCH] External IP configuration as well as other small improvements --- .env.example | 9 ++++++++- docker-compose.yml | 5 ++++- docker/Dockerfile | 6 ++++-- docker/start_server.sh | 18 ++++++++---------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/.env.example b/.env.example index 5deedba1..22fff590 100644 --- a/.env.example +++ b/.env.example @@ -5,4 +5,11 @@ BUILD_THREADS=1 # Updates NET_VERSION in CMakeVariables.txt BUILD_VERSION=171022 # make sure this is a long random string -ACCOUNT_MANAGER_SECRET= \ No newline at end of file +ACCOUNT_MANAGER_SECRET= +# Should be the externally facing IP of your server host +EXTERNAL_IP=localhost +# Database values +MARIADB_USER=SECRET_VALUE_CHANGE_ME +MARIADB_PASSWORD=SECRET_VALUE_CHANGE_ME +MARIADB_ROOT_PASSWORD=SECRET_VALUE_CHANGE_ME +MARIADB_DATABASE=SECRET_VALUE_CHANGE_ME \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 68fa6302..7edbebbc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,8 @@ services: - ./migrations/dlu:/docker-entrypoint-initdb.d networks: - darkflame + ports: + - 3306:3306 darkflame: container_name: DarkFlameServer @@ -30,6 +32,7 @@ services: - DATABASE_HOST=database - DATABASE_USER=${MARIADB_USER:-darkflame} - DATABASE_PASSWORD=${MARIADB_PASSWORD:-darkflame} + - EXTERNAL_IP=${EXTERNAL_IP:-darkflame} volumes: - ${CLIENT_PATH:?err}:/client depends_on: @@ -82,6 +85,6 @@ services: networks: darkflame: - + volumes: database: diff --git a/docker/Dockerfile b/docker/Dockerfile index 6b2b3712..8f583b4b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -33,7 +33,7 @@ ARG BUILD_VERSION=171022 RUN echo "Build server" && \ mkdir -p build && \ cd build && \ - sed -i -e "s/171022/${BUILD_VERSION}/g" ../CMakeVariables.txt && \ + sed -i -e "s/171022/${BUILD_VERSION}/g" ../CMakeVariables.txt && \ cmake .. && \ make -j $BUILD_THREADS @@ -41,7 +41,7 @@ RUN unzip /build/resources/navmeshes.zip -d /build/build/res/maps FROM gcc:11 as runtime -RUN --mount=type=cache,id=runtime-apt-cache,target=/var/cache/apt \ +RUN --mount=type=cache,id=runtime-apt-cache,target=/var/cache/apt \ apt update && \ apt install mariadb-client python3 sudo sqlite3 -yqq --no-install-recommends && \ apt remove -y libmysqlcppconn7v5 libmysqlcppconn-dev && \ @@ -61,4 +61,6 @@ COPY docker/start_server.sh /start_server.sh RUN chmod +x /start_server.sh +RUN mkdir /app/logs + CMD [ "/start_server.sh" ] \ No newline at end of file diff --git a/docker/start_server.sh b/docker/start_server.sh index 975646b0..85d1509b 100644 --- a/docker/start_server.sh +++ b/docker/start_server.sh @@ -12,6 +12,7 @@ function set_defaults() { CHAT_SERVER_PORT=${CHAT_SERVER_PORT:-2005} MAX_CLIENTS=${MAX_CLIENTS:-999} + EXTERNAL_IP=${EXTERNAL_IP:-localhost} echo "Start server with configuration:" echo "===== Database Config =========" @@ -23,6 +24,7 @@ function set_defaults() { echo "===== Other settings ==========" echo "Chat server port: $CHAT_SERVER_PORT" echo "Max clients: $MAX_CLIENTS" + echo "External IP: $EXTERNAL_IP" } function check_sql_connection() { @@ -46,7 +48,7 @@ function update_database_ini_values_for() { update_ini $INI_FILE mysql_username $DATABASE_USER update_ini $INI_FILE mysql_password $DATABASE_PASSWORD if [[ "$INI_FILE" != "worldconfig.ini" ]]; then - update_ini $INI_FILE external_ip "darkflame" + update_ini $INI_FILE external_ip $EXTERNAL_IP fi } @@ -64,29 +66,25 @@ function symlink_client_files() { ln -s /client/client/res/macros/ /app/res/macros ln -s /client/client/res/BrickModels/ /app/res/BrickModels ln -s /client/client/res/chatplus_en_us.txt /app/res/chatplus_en_us.txt + ln -s /client/client/res/maps/ /app/res/maps ln -s /client/client/res/names/ /app/res/names ln -s /client/client/locale/locale.xml /app/locale/locale.xml - ( - cd /client/client/res/maps - readarray -d '' entries < <(printf '%s\0' * | sort -zV) - for entry in "${entries[@]}"; do - ln -s /client/client/res/maps/$entry /app/res/maps/ - done - ) } function fdb_to_sqlite() { echo "Run fdb_to_sqlite" - python3 /app/utils/fdb_to_sqlite.py /client/client/res/CDClient.fdb --sqlite_path /app/res/CDServer.sqlite + python3 /app/utils/fdb_to_sqlite.py /client/client/res/cdclient.fdb --sqlite_path /client/client/res/CDServer.sqlite ( cd /app/migrations/cdserver readarray -d '' entries < <(printf '%s\0' *.sql | sort -zV) for entry in "${entries[@]}"; do echo "Execute $entry" - sqlite3 /app/res/CDServer.sqlite < $entry + sqlite3 /client/client/res/CDServer.sqlite < $entry done ) + + ln -s /client/client/res/CDServer.sqlite /app/res/CDServer.sqlite } set_defaults