diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 7aa0ea1..7db6cd3 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -15,7 +15,7 @@ jobs: - name: Build Docker images env: TAG: dev - run: docker-compose build + run: docker-compose -f docker-compose.build.yml build - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: @@ -25,4 +25,4 @@ jobs: - name: Push images to GitHub Container Registry env: TAG: dev - run: docker-compose push + run: docker-compose -f docker-compose.build.yml push diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index efad59a..4f12254 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,7 +15,7 @@ jobs: - name: Build Docker images env: TAG: latest - run: docker-compose build + run: docker-compose -f docker-compose.build.yml build - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: @@ -25,4 +25,4 @@ jobs: - name: Push images to GitHub Container Registry env: TAG: latest - run: docker-compose push + run: docker-compose -f docker-compose.build.yml push diff --git a/Dockerfile b/Dockerfile index 3e5fb3d..3315392 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,15 @@ FROM nginx:1.20.2 COPY nginx.conf /etc/nginx/nginx.conf.org +COPY health-check.conf netnegar.conf /etc/nginx/ ENV EXPOSED_PORT 443 -ENTRYPOINT sh -c 'envsubst \$EXPOSED_PORT < /etc/nginx/nginx.conf.org | tee /etc/nginx/nginx.conf && nginx -g "daemon off;"' +ENV SERVER_NAME_DASHBOARD dashbrd-demo.opex.dev +ENV SERVER_NAME_ADMIN_PANEL adm-demo.opex.dev +ENV SERVER_NAME_WEB_APP demo.opex.dev +ENV SERVER_NAME_AUTH auth-demo.opex.dev +ENV SERVER_NAME_API api.opex.dev +ENTRYPOINT sh -c 'envsubst \ +\$EXPOSED_PORT,\$SERVER_NAME_DASHBOARD,\$SERVER_NAME_ADMIN_PANEL,\$SERVER_NAME_WEB_APP,\$SERVER_NAME_AUTH,\$SERVER_NAME_API \ +< /etc/nginx/nginx.conf.org \ +| tee /etc/nginx/nginx.conf \ +&& nginx -g "daemon off;"' EXPOSE 443 diff --git a/docker-compose.build.yml b/docker-compose.build.yml new file mode 100644 index 0000000..dbc8956 --- /dev/null +++ b/docker-compose.build.yml @@ -0,0 +1,5 @@ +version: '3.8' +services: + nginx: + image: ghcr.io/opexdev/nginx:$TAG + build: . diff --git a/docker-compose.yml b/docker-compose.yml index 6658dd9..a5db883 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,20 @@ version: '3.8' services: nginx: - image: ghcr.io/opexdev/nginx:$TAG + image: ghcr.io/opexdev/nginx build: . environment: - EXPOSED_PORT=$EXPOSED_PORT + - SERVER_NAME_DASHBOARD=$SERVER_NAME_DASHBOARD + - SERVER_NAME_ADMIN_PANEL=$SERVER_NAME_ADMIN_PANEL + - SERVER_NAME_WEB_APP=$SERVER_NAME_WEB_APP + - SERVER_NAME_AUTH=$SERVER_NAME_AUTH + - SERVER_NAME_API=$SERVER_NAME_API + secrets: + - opex_dev_crt + - private_pem +secrets: + opex_dev_crt: + file: opex.dev.crt + private_pem: + file: private.pem diff --git a/health-check.conf b/health-check.conf new file mode 100644 index 0000000..30c07a3 --- /dev/null +++ b/health-check.conf @@ -0,0 +1,6 @@ +location ~ ^\/(auth|wallet|accountant|bc-gateway|gateway|eventlog|matching-engine|storage|referral|stream|ipg|admin|api|captcha|bitcoin-scanner|ethereum-scanner|bsc-scanner|tron-scanner|scanner-scheduler)\/actuator\/health$ { + rewrite ^\/(.*)\/actuator\/health$ $1; + set $backend http://$uri:8080; + proxy_pass $backend; + rewrite .* /actuator/health break; +} diff --git a/netnegar.conf b/netnegar.conf new file mode 100644 index 0000000..1e5864e --- /dev/null +++ b/netnegar.conf @@ -0,0 +1,11 @@ +server { + listen 443 ssl; + listen [::]:443 ssl; + + server_name status.opex.dev; + + location / { + set $backend http://public.netnegar.io; + proxy_pass $backend; + } +} diff --git a/nginx.conf b/nginx.conf index 9cd9f25..7f48334 100644 --- a/nginx.conf +++ b/nginx.conf @@ -41,7 +41,7 @@ http { listen 443 ssl; listen [::]:443 ssl; - server_name dashbrd-demo.opex.dev; + server_name $SERVER_NAME_DASHBOARD; location / { set $backend http://superset:8088; @@ -53,7 +53,7 @@ http { listen 443 ssl; listen [::]:443 ssl; - server_name adm-demo.opex.dev; + server_name $SERVER_NAME_ADMIN_PANEL; location ~* \.(.*)$ { set $backend http://admin-panel; @@ -71,7 +71,7 @@ http { listen 443 ssl; listen [::]:443 ssl; - server_name demo.opex.dev; + server_name $SERVER_NAME_WEB_APP; location ~* \.(.*)$ { set $backend http://web-app; @@ -89,7 +89,7 @@ http { listen 443 ssl; listen [::]:443 ssl; - server_name auth-demo.opex.dev; + server_name $SERVER_NAME_AUTH; location / { set $backend http://auth:8080; @@ -102,7 +102,7 @@ http { listen 443 ssl; listen [::]:443 ssl; - server_name api.opex.dev; + server_name $SERVER_NAME_API; limit_req zone=default burst=5 nodelay; @@ -110,6 +110,8 @@ http { return 204; } + include /etc/nginx/health-check.conf; + location /wallet/transfer { return 403; } @@ -207,4 +209,6 @@ http { rewrite ^/binance/(.*)$ /$1 break; } } + + include /etc/nginx/netnegar.conf; }