diff --git a/Dockerfile b/Dockerfile index d52d4ef..5eaf71e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,11 @@ ENV DOMAIN_NAME=false ENV USER_EMAIL=false ENV CONFIG=/etc/nginx/conf.d/OpenSpeedTest-Server.conf +ENV CHANGE_CONTAINER_PORTS=false +ENV HTTP_PORT=3000 +ENV HTTPS_PORT=3001 +ENV SET_USER=101 + COPY /files/OpenSpeedTest-Server.conf ${CONFIG} COPY /files/entrypoint.sh /entrypoint.sh COPY /files/renew.sh /renew.sh @@ -62,11 +67,10 @@ RUN chown nginx:nginx /usr/sbin/crond \ RUN touch /etc/crontabs/nginx RUN chown -R nginx:nginx /etc/crontabs/nginx -USER 101 +USER ${SET_USER} -EXPOSE 3000 3001 +EXPOSE ${HTTP_PORT} ${HTTPS_PORT} STOPSIGNAL SIGQUIT -CMD ["/entrypoint.sh"] - +CMD ["/entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md index b2f47c1..f041b18 100644 --- a/README.md +++ b/README.md @@ -118,3 +118,23 @@ services: - '3001:3001' image: openspeedtest/latest ```` +## Advanced Configuration Options + +- Container Port Configuration + +To enable port changes, set the `CHANGE_CONTAINER_PORTS` environment variable to `"True"` and provide appropriate values for the following variables. + +`CHANGE_CONTAINER_PORTS=True` + +`HTTP_PORT=3000` + +`HTTPS_PORT=3001` + +- Set User + +`SET_USER=101` + +- Only Allow `CORS Request` from listed domains. + +`ALLOW_ONLY=domain1.com;domain2.com;domain3.com` + diff --git a/files/OpenSpeedTest-Server.conf b/files/OpenSpeedTest-Server.conf index 678b547..80ed4b4 100644 --- a/files/OpenSpeedTest-Server.conf +++ b/files/OpenSpeedTest-Server.conf @@ -17,10 +17,12 @@ server_name _ localhost YOURDOMAIN; # Nginx Server Windows SSL Performance was very poor! Better use Linux if you need SSL support. ssl_certificate /etc/ssl/nginx.crt; # Use your own certificate & key ssl_certificate_key /etc/ssl/nginx.key; # <-- key - ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH; - ssl_protocols TLSv1.1 TLSv1.2; - ssl_session_cache shared:SSL:10m; - ssl_session_timeout 10m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; + ssl_ciphers "ALL"; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:100m; + ssl_session_timeout 1d; + ssl_session_tickets on; root /usr/share/nginx/html/; index index.html; client_max_body_size 35m; diff --git a/files/entrypoint.sh b/files/entrypoint.sh index 12ea4e4..a5927ea 100644 --- a/files/entrypoint.sh +++ b/files/entrypoint.sh @@ -12,6 +12,30 @@ if [[ $? -ne 0 ]]; then sed -i '/listen 300/d' ${CONFIG} fi + +if [ "$CHANGE_CONTAINER_PORTS" = True ]; then + if [ "$HTTP_PORT" ]; then + sed -i "s/3000/${HTTP_PORT}/g" ${CONFIG} + if [ $? -eq 0 ]; then + echo "Changed HTTP container port to " ${HTTP_PORT} + else + echo "Failed to change HTTP container port to " ${HTTP_PORT} + fi + + fi + + if [ "$HTTPS_PORT" ]; then + sed -i "s/3001/${HTTPS_PORT}/g" ${CONFIG} + if [ $? -eq 0 ]; then + echo "Changed HTTPS container port to " ${HTTPS_PORT} + else + echo "Failed to change HTTPS container port to " ${HTTPS_PORT} + fi + + fi +fi + + Verify_TXT_path="/usr/share/nginx/html/Verify.txt" if [ "$VERIFY_OWNERSHIP" ]; then