From dffce2709eec746e04f5a6f59d9451a5e08b8fc8 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 9 Jul 2026 10:19:38 -0700 Subject: [PATCH] clean up docker files --- docker/coolify/build_images.bat | 33 ----- docker/coolify/build_images.sh | 24 ---- docker/coolify/client.Dockerfile | 22 ---- docker/coolify/mongoDB.Dockerfile | 3 - docker/coolify/nginx/conf.d/default.conf | 35 ------ docker/coolify/server.Dockerfile | 20 --- docker/dev/build_images.bat | 33 ----- docker/dev/build_images.sh | 29 ----- docker/dev/client.Dockerfile | 20 --- .../dev/docker-compose.custom-ca-example.yaml | 21 +--- docker/dev/docker-compose.yaml | 30 ++--- docker/dev/mongoDB.Dockerfile | 3 - docker/dev/nginx/conf.d/default.conf | 35 ------ docker/dev/server.Dockerfile | 20 --- docker/dist-arm/build_images.sh | 44 ------- docker/dist-arm/docker-compose.yaml | 28 ----- docker/dist-arm/server.Dockerfile | 50 -------- docker/dist-mono/build_images.bat | 30 ----- docker/dist-mono/build_images.sh | 28 ----- docker/dist-mono/docker-compose-local.yaml | 27 ----- docker/dist-mono/docker-compose.yaml | 28 ----- docker/dist-mono/mongoDB.Dockerfile | 3 - docker/dist-mono/server.Dockerfile | 37 ------ docker/dist/build_images.bat | 33 ----- docker/dist/build_images.sh | 25 ---- docker/dist/client.Dockerfile | 22 ---- docker/dist/docker-compose.yaml | 38 ------ docker/dist/mongoDB.Dockerfile | 3 - docker/dist/nginx/conf.d/default.conf | 35 ------ docker/dist/server.Dockerfile | 20 --- docker/prod/build_images.bat | 33 ----- docker/prod/build_images.sh | 25 ---- docker/prod/certbot-compose.yaml | 19 --- docker/prod/client.Dockerfile | 20 --- docker/prod/docker-compose.yaml | 53 -------- docker/prod/mongo/init/init.js | 41 ------- docker/prod/mongoDB.Dockerfile | 3 - docker/prod/nginx/conf.d/cerbot | 15 --- docker/prod/nginx/conf.d/default.conf | 69 ----------- docker/prod/server.Dockerfile | 24 ---- docker/staging/build_images.bat | 33 ----- docker/staging/build_images.sh | 25 ---- docker/staging/cerbot-compose.yaml | 19 --- docker/staging/client.Dockerfile | 20 --- docker/staging/docker-compose.yaml | 62 ---------- .../staging/mongo/init/01_init_replica_set.js | 15 --- docker/staging/mongo/init/02_create_users.js | 16 --- docker/staging/mongoDB.Dockerfile | 3 - docker/staging/nginx/conf.d/certbot | 15 --- docker/staging/nginx/conf.d/default.conf | 77 ------------ docker/staging/server.Dockerfile | 24 ---- docker/unified/build_images.bat | 33 ----- docker/unified/build_images.sh | 25 ---- docker/unified/certbot-compose.yaml | 19 --- docker/unified/client.Dockerfile | 20 --- docker/unified/docker-compose.yaml | 114 ------------------ docker/unified/gateway/nginx.conf | 55 --------- docker/unified/mongoDB.Dockerfile | 3 - docker/unified/nginx/conf.d/prod.conf | 31 ----- docker/unified/nginx/conf.d/staging.conf | 31 ----- docker/unified/server.Dockerfile | 22 ---- 61 files changed, 15 insertions(+), 1728 deletions(-) delete mode 100644 docker/coolify/build_images.bat delete mode 100755 docker/coolify/build_images.sh delete mode 100755 docker/coolify/client.Dockerfile delete mode 100755 docker/coolify/mongoDB.Dockerfile delete mode 100755 docker/coolify/nginx/conf.d/default.conf delete mode 100755 docker/coolify/server.Dockerfile delete mode 100644 docker/dev/build_images.bat delete mode 100755 docker/dev/build_images.sh delete mode 100755 docker/dev/client.Dockerfile delete mode 100755 docker/dev/mongoDB.Dockerfile delete mode 100755 docker/dev/nginx/conf.d/default.conf delete mode 100755 docker/dev/server.Dockerfile delete mode 100755 docker/dist-arm/build_images.sh delete mode 100644 docker/dist-arm/docker-compose.yaml delete mode 100644 docker/dist-arm/server.Dockerfile delete mode 100644 docker/dist-mono/build_images.bat delete mode 100755 docker/dist-mono/build_images.sh delete mode 100755 docker/dist-mono/docker-compose-local.yaml delete mode 100755 docker/dist-mono/docker-compose.yaml delete mode 100755 docker/dist-mono/mongoDB.Dockerfile delete mode 100644 docker/dist-mono/server.Dockerfile delete mode 100644 docker/dist/build_images.bat delete mode 100755 docker/dist/build_images.sh delete mode 100755 docker/dist/client.Dockerfile delete mode 100755 docker/dist/docker-compose.yaml delete mode 100755 docker/dist/mongoDB.Dockerfile delete mode 100755 docker/dist/nginx/conf.d/default.conf delete mode 100755 docker/dist/server.Dockerfile delete mode 100644 docker/prod/build_images.bat delete mode 100755 docker/prod/build_images.sh delete mode 100755 docker/prod/certbot-compose.yaml delete mode 100755 docker/prod/client.Dockerfile delete mode 100755 docker/prod/docker-compose.yaml delete mode 100644 docker/prod/mongo/init/init.js delete mode 100755 docker/prod/mongoDB.Dockerfile delete mode 100755 docker/prod/nginx/conf.d/cerbot delete mode 100755 docker/prod/nginx/conf.d/default.conf delete mode 100755 docker/prod/server.Dockerfile delete mode 100644 docker/staging/build_images.bat delete mode 100755 docker/staging/build_images.sh delete mode 100755 docker/staging/cerbot-compose.yaml delete mode 100644 docker/staging/client.Dockerfile delete mode 100755 docker/staging/docker-compose.yaml delete mode 100644 docker/staging/mongo/init/01_init_replica_set.js delete mode 100755 docker/staging/mongo/init/02_create_users.js delete mode 100755 docker/staging/mongoDB.Dockerfile delete mode 100755 docker/staging/nginx/conf.d/certbot delete mode 100755 docker/staging/nginx/conf.d/default.conf delete mode 100755 docker/staging/server.Dockerfile delete mode 100644 docker/unified/build_images.bat delete mode 100755 docker/unified/build_images.sh delete mode 100755 docker/unified/certbot-compose.yaml delete mode 100755 docker/unified/client.Dockerfile delete mode 100755 docker/unified/docker-compose.yaml delete mode 100644 docker/unified/gateway/nginx.conf delete mode 100755 docker/unified/mongoDB.Dockerfile delete mode 100755 docker/unified/nginx/conf.d/prod.conf delete mode 100755 docker/unified/nginx/conf.d/staging.conf delete mode 100755 docker/unified/server.Dockerfile diff --git a/docker/coolify/build_images.bat b/docker/coolify/build_images.bat deleted file mode 100644 index b940039b6..000000000 --- a/docker/coolify/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=bluewaveuptime/uptime_client -set dockerfiles[0]=.\docker\coolify\client.Dockerfile - -set services[1]=bluewaveuptime/uptime_database_mongo -set dockerfiles[1]=.\docker\coolify\mongoDB.Dockerfile - -set services[2]=bluewaveuptime/uptime_server -set dockerfiles[2]=.\docker\coolify\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/coolify/build_images.sh b/docker/coolify/build_images.sh deleted file mode 100755 index 1d29ae5b1..000000000 --- a/docker/coolify/build_images.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# Change directory to root Server directory for correct Docker Context -cd "$(dirname "$0")" -cd ../../ - -# Define an array of services and their Dockerfiles -declare -A services=( - ["bluewaveuptime/uptime_client"]="./docker/coolify/client.Dockerfile" - ["bluewaveuptime/uptime_database_mongo"]="./docker/coolify/mongoDB.Dockerfile" - ["bluewaveuptime/uptime_server"]="./docker/coolify/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for service in "${!services[@]}"; do - docker build -f "${services[$service]}" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" diff --git a/docker/coolify/client.Dockerfile b/docker/coolify/client.Dockerfile deleted file mode 100755 index 8c3853b99..000000000 --- a/docker/coolify/client.Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client . - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY ./server/docker/dist/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh - -CMD ["nginx", "-g", "daemon off;"] diff --git a/docker/coolify/mongoDB.Dockerfile b/docker/coolify/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/coolify/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/coolify/nginx/conf.d/default.conf b/docker/coolify/nginx/conf.d/default.conf deleted file mode 100755 index 0592dcd06..000000000 --- a/docker/coolify/nginx/conf.d/default.conf +++ /dev/null @@ -1,35 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-demo.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server:5000/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api-docs/ { - proxy_pass http://server:5000/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} \ No newline at end of file diff --git a/docker/coolify/server.Dockerfile b/docker/coolify/server.Dockerfile deleted file mode 100755 index e786a0cbf..000000000 --- a/docker/coolify/server.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /app - -COPY ../../package*.json ./ - -RUN npm install - -COPY ../../ ./ - -RUN npm run build - -EXPOSE 5000 - -CMD ["node", "dist/index.js"] diff --git a/docker/dev/build_images.bat b/docker/dev/build_images.bat deleted file mode 100644 index ec3889418..000000000 --- a/docker/dev/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=uptime_client -set dockerfiles[0]=.\docker\dev\client.Dockerfile - -set services[1]=uptime_mongo -set dockerfiles[1]=.\docker\dev\mongoDB.Dockerfile - -set services[2]=uptime_server -set dockerfiles[2]=.\docker\dev\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 \ No newline at end of file diff --git a/docker/dev/build_images.sh b/docker/dev/build_images.sh deleted file mode 100755 index eb43e31d8..000000000 --- a/docker/dev/build_images.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Change directory to root Server directory for correct Docker Context -cd "$(dirname "$0")" -cd ../.. - -# Define service names and their corresponding Dockerfiles in parallel arrays -services=("uptime_client" "uptime_mongo" "uptime_server") -dockerfiles=( - "./docker/dev/client.Dockerfile" - "./docker/dev/mongoDB.Dockerfile" - "./docker/dev/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for i in "${!services[@]}"; do - service="${services[$i]}" - dockerfile="${dockerfiles[$i]}" - - docker build -f "$dockerfile" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" \ No newline at end of file diff --git a/docker/dev/client.Dockerfile b/docker/dev/client.Dockerfile deleted file mode 100755 index df3ac7439..000000000 --- a/docker/dev/client.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client ./ - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/dev/docker-compose.custom-ca-example.yaml b/docker/dev/docker-compose.custom-ca-example.yaml index e1f185ae9..e086d6feb 100644 --- a/docker/dev/docker-compose.custom-ca-example.yaml +++ b/docker/dev/docker-compose.custom-ca-example.yaml @@ -1,29 +1,14 @@ # Dev/Test only: Not required in production # Example Docker Compose configuration for custom CA trust # This file demonstrates how to configure Checkmate to trust custom CAs -# -# Usage: docker-compose -f docker-compose.yaml -f docker-compose.custom-ca-example.yaml up +# +# Usage: docker compose -f docker-compose.yaml -f docker-compose.custom-ca-example.yaml up services: - server: - image: uptime_server:latest - restart: always - ports: - - "52345:52345" - env_file: - - server.env + checkmate: environment: # Mount your custom CA certificate NODE_EXTRA_CA_CERTS: /certs/custom-ca.pem volumes: # Mount the certs directory (read-only for security) - ./certs:/certs:ro - depends_on: - - mongodb - # Optional: Add healthcheck to ensure the server starts properly - healthcheck: - test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:52345/api/v1/health"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 40s diff --git a/docker/dev/docker-compose.yaml b/docker/dev/docker-compose.yaml index 09c12fe18..1dba10fae 100755 --- a/docker/dev/docker-compose.yaml +++ b/docker/dev/docker-compose.yaml @@ -1,27 +1,20 @@ services: - client: - image: uptime_client:latest - restart: always - ports: - - "80:80" - environment: - UPTIME_APP_API_BASE_URL: "http://localhost:52345/api/v1" - UPTIME_APP_CLIENT_HOST: "http://localhost" - volumes: - - ./nginx/conf.d:/etc/nginx/conf.d/ - depends_on: - - server - server: - image: uptime_server:latest + checkmate: + build: + context: ../.. + dockerfile: docker/Dockerfile restart: always ports: - "52345:52345" env_file: - server.env depends_on: - - mongodb + mongodb: + condition: service_healthy worker: - image: uptime_server:latest + build: + context: ../.. + dockerfile: docker/Dockerfile restart: always ports: - "52346:52346" @@ -43,9 +36,10 @@ services: timeout: 3s retries: 3 depends_on: - - mongodb + mongodb: + condition: service_healthy mongodb: - image: uptime_mongo:latest + image: mongo:8.0 restart: always ports: - "27017:27017" diff --git a/docker/dev/mongoDB.Dockerfile b/docker/dev/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/dev/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/dev/nginx/conf.d/default.conf b/docker/dev/nginx/conf.d/default.conf deleted file mode 100755 index e2c2a7268..000000000 --- a/docker/dev/nginx/conf.d/default.conf +++ /dev/null @@ -1,35 +0,0 @@ -server { - listen 80 default_server; - listen [::]:80 default_server; - - server_name localhost; # Set server name to localhost - server_tokens off; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - # location /api/ { - # proxy_pass http://server:52345/api/; - # proxy_http_version 1.1; - # proxy_set_header Host $host; - # proxy_set_header X-Real-IP $remote_addr; - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Forwarded-Proto $scheme; - # proxy_set_header Connection ''; - # chunked_transfer_encoding off; - # proxy_buffering off; - # proxy_cache off; - # } - - # location /api-docs/ { - # proxy_pass http://server:52345/api-docs/; - # proxy_http_version 1.1; - # proxy_set_header Host $host; - # proxy_set_header X-Real-IP $remote_addr; - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Forwarded-Proto $scheme; - # } -} \ No newline at end of file diff --git a/docker/dev/server.Dockerfile b/docker/dev/server.Dockerfile deleted file mode 100755 index 8a9af51d1..000000000 --- a/docker/dev/server.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /app - -COPY ./server/package*.json ./ - -RUN npm install - -COPY ./server/ ./ - -RUN npm run build - -EXPOSE 52345 - -CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/docker/dist-arm/build_images.sh b/docker/dist-arm/build_images.sh deleted file mode 100755 index 2780e5359..000000000 --- a/docker/dist-arm/build_images.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -set -e # Exit on error - -# Change directory to root Server directory for correct Docker Context -cd "$(dirname "$0")" -cd ../.. - -# Ensure buildx builder exists and is used -if ! docker buildx inspect mybuilder &>/dev/null; then - docker buildx create --name mybuilder --use -else - docker buildx use mybuilder -fi - -# Define service names and Dockerfiles -services=("mono_server_arm") -dockerfiles=( - "./docker/dist-arm/server.Dockerfile" -) - -# Static image name for GitHub Container Registry (GHCR) -image="ghcr.io/bluewave-labs/checkmate:backend-dist-multi-arch" -platforms="linux/amd64,linux/arm64" -repo_url="https://github.com/bluewave-labs/checkmate" - -# Loop through each service and build -for i in "${!services[@]}"; do - service="${services[$i]}" - dockerfile="${dockerfiles[$i]}" - - echo "🚀 Building multi-arch image for $service..." - docker buildx build \ - --platform "$platforms" \ - -f "$dockerfile" \ - -t "$image" \ - --label "org.opencontainers.image.source=$repo_url" \ - --push \ - . - - echo "✅ $image pushed for platforms: $platforms" -done - -echo "🎉 All multi-arch images built and pushed successfully" diff --git a/docker/dist-arm/docker-compose.yaml b/docker/dist-arm/docker-compose.yaml deleted file mode 100644 index 49f81fe9a..000000000 --- a/docker/dist-arm/docker-compose.yaml +++ /dev/null @@ -1,28 +0,0 @@ -services: - server: - image: ghcr.io/bluewave-labs/checkmate-backend-mono-multiarch:latest - restart: always - pull_policy: always - ports: - - "52345:52345" - environment: - - UPTIME_APP_API_BASE_URL=http://localhost:52345/api/v1 - - UPTIME_APP_CLIENT_HOST=http://localhost - - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db - - CLIENT_HOST=http://localhost - - JWT_SECRET=my_secret - depends_on: - - mongodb - mongodb: - image: mongo:6.0 - restart: always - command: ["mongod", "--quiet", "--bind_ip_all"] - volumes: - - ./mongo/data:/data/db - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.runCommand({ ping: 1 })", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 diff --git a/docker/dist-arm/server.Dockerfile b/docker/dist-arm/server.Dockerfile deleted file mode 100644 index 5bdefd5bf..000000000 --- a/docker/dist-arm/server.Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -# --------------------- -# Frontend build stage -# --------------------- -# Build on the host arch (BUILDPLATFORM) rather than under QEMU — the output is -# pure JS so it's arch-independent, and this avoids the esbuild host/native -# binary version mismatch under emulation. -FROM --platform=$BUILDPLATFORM node:20-slim AS frontend-build - -WORKDIR /app/client - -COPY client/package*.json ./ - -RUN npm ci - -COPY client ./ - -RUN npm run build - -# --------------------- -# Backend stage -# --------------------- -FROM node:22-slim AS backend - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /app/server - -COPY server/package.json ./ - -RUN npm install - -COPY server ./ - -RUN chmod +x ./scripts/inject-vars.sh - -RUN npm run build - -COPY --from=frontend-build /app/client/dist ./public - -RUN chown -R node:node ./public \ - && chown -R node:node ./dist \ - && chown -R node:node ./scripts - - -EXPOSE 52345 - -CMD ["sh", "-c", "./scripts/inject-vars.sh && node ./dist/index.js"] diff --git a/docker/dist-mono/build_images.bat b/docker/dist-mono/build_images.bat deleted file mode 100644 index 3e1d39fe1..000000000 --- a/docker/dist-mono/build_images.bat +++ /dev/null @@ -1,30 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=uptime_database_mongo -set dockerfiles[0]=.\docker\dist-mono\mongoDB.Dockerfile - -set services[1]=uptime_server -set dockerfiles[1]=.\docker\dist-mono\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/dist-mono/build_images.sh b/docker/dist-mono/build_images.sh deleted file mode 100755 index e3a0233d4..000000000 --- a/docker/dist-mono/build_images.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Change directory to root Server directory for correct Docker Context -cd "$(dirname "$0")" -cd ../.. - -# Define service names and their corresponding Dockerfiles in parallel arrays -services=("mono_mongo" "mono_server") -dockerfiles=( - "./docker/dist-mono/mongoDB.Dockerfile" - "./docker/dist-mono/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for i in "${!services[@]}"; do - service="${services[$i]}" - dockerfile="${dockerfiles[$i]}" - - docker build -f "$dockerfile" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" \ No newline at end of file diff --git a/docker/dist-mono/docker-compose-local.yaml b/docker/dist-mono/docker-compose-local.yaml deleted file mode 100755 index a5616695b..000000000 --- a/docker/dist-mono/docker-compose-local.yaml +++ /dev/null @@ -1,27 +0,0 @@ -services: - server: - image: mono_server - restart: always - ports: - - "52345:52345" - environment: - - UPTIME_APP_API_BASE_URL=http://localhost:52345/api/v1 - - UPTIME_APP_CLIENT_HOST=http://localhost - - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db - - CLIENT_HOST=http://localhost - - JWT_SECRET=my_secret - depends_on: - - mongodb - mongodb: - image: mono_mongo - restart: always - command: ["mongod", "--quiet", "--bind_ip_all"] - volumes: - - ./mongo/data:/data/db - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 diff --git a/docker/dist-mono/docker-compose.yaml b/docker/dist-mono/docker-compose.yaml deleted file mode 100755 index 9553757b9..000000000 --- a/docker/dist-mono/docker-compose.yaml +++ /dev/null @@ -1,28 +0,0 @@ -services: - server: - image: ghcr.io/bluewave-labs/checkmate-backend-mono:latest - pull_policy: always - restart: always - ports: - - "52345:52345" - environment: - - UPTIME_APP_API_BASE_URL=http://localhost:52345/api/v1 - - UPTIME_APP_CLIENT_HOST=http://localhost - - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db - - CLIENT_HOST=http://localhost - - JWT_SECRET=my_secret - depends_on: - - mongodb - mongodb: - image: ghcr.io/bluewave-labs/checkmate-mongo:latest - restart: always - command: ["mongod", "--quiet", "--bind_ip_all"] - volumes: - - ./mongo/data:/data/db - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 diff --git a/docker/dist-mono/mongoDB.Dockerfile b/docker/dist-mono/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/dist-mono/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/dist-mono/server.Dockerfile b/docker/dist-mono/server.Dockerfile deleted file mode 100644 index 1e0eb303a..000000000 --- a/docker/dist-mono/server.Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM node:22-slim AS frontend-build - -WORKDIR /app/client - -COPY client/package*.json ./ -RUN npm install - -COPY client ./ -RUN npm run build - -FROM node:22-slim AS app - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /app/server - -COPY server ./ - -RUN npm install - -RUN npm run build -RUN cp -r src/templates dist/templates - -COPY --from=frontend-build /app/client/dist ./public - -RUN chmod +x ./scripts/inject-vars.sh \ - && chown -R node:node ./public \ - && chown -R node:node ./dist \ - && chown -R node:node ./scripts - - -EXPOSE 52345 - -CMD ["sh", "-c", "./scripts/inject-vars.sh && node ./dist/index.js"] diff --git a/docker/dist/build_images.bat b/docker/dist/build_images.bat deleted file mode 100644 index 92b5c4a9d..000000000 --- a/docker/dist/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=bluewaveuptime/uptime_client -set dockerfiles[0]=.\docker\dist\client.Dockerfile - -set services[1]=bluewaveuptime/uptime_database_mongo -set dockerfiles[1]=.\docker\dist\mongoDB.Dockerfile - -set services[2]=bluewaveuptime/uptime_server -set dockerfiles[2]=.\docker\dist\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/dist/build_images.sh b/docker/dist/build_images.sh deleted file mode 100755 index 84fbb7d5a..000000000 --- a/docker/dist/build_images.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# Change directory to root Server directory for correct Docker Context -cd "$(dirname "$0")" -cd ../../ - -# Define an array of services and their Dockerfiles -declare -A services=( - ["bluewaveuptime/uptime_client"]="./docker/dist/client.Dockerfile" - ["bluewaveuptime/uptime_database_mongo"]="./docker/dist/mongoDB.Dockerfile" - ["bluewaveuptime/uptime_server"]="./docker/dist/server.Dockerfile" -) - -for service in "${!services[@]}"; do - docker build \ - -f "${services[$service]}" \ - -t "$service" \ - . - - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" diff --git a/docker/dist/client.Dockerfile b/docker/dist/client.Dockerfile deleted file mode 100755 index 9b42654b0..000000000 --- a/docker/dist/client.Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client . - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY ./docker/dist/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh - -CMD ["nginx", "-g", "daemon off;"] diff --git a/docker/dist/docker-compose.yaml b/docker/dist/docker-compose.yaml deleted file mode 100755 index 2e845daab..000000000 --- a/docker/dist/docker-compose.yaml +++ /dev/null @@ -1,38 +0,0 @@ -services: - client: - image: ghcr.io/bluewave-labs/checkmate-client:latest - restart: always - environment: - UPTIME_APP_API_BASE_URL: "http://localhost:52345/api/v1" - UPTIME_APP_CLIENT_HOST: "http://localhost" - ports: - - "80:80" - - "443:443" - depends_on: - - server - server: - image: ghcr.io/bluewave-labs/checkmate-backend:latest - restart: always - ports: - - "52345:52345" - depends_on: - - mongodb - environment: - - DB_CONNECTION_STRING=mongodb://mongodb:27017/uptime_db - - CLIENT_HOST=http://localhost - - JWT_SECRET=my_secret - # volumes: - # - /var/run/docker.sock:/var/run/docker.sock:ro - mongodb: - image: ghcr.io/bluewave-labs/checkmate-mongo:latest - restart: always - volumes: - - ./mongo/data:/data/db - command: ["mongod", "--quiet", "--bind_ip_all"] - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 diff --git a/docker/dist/mongoDB.Dockerfile b/docker/dist/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/dist/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/dist/nginx/conf.d/default.conf b/docker/dist/nginx/conf.d/default.conf deleted file mode 100755 index 30e51c71c..000000000 --- a/docker/dist/nginx/conf.d/default.conf +++ /dev/null @@ -1,35 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-demo.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - # location /api/ { - # proxy_pass http://server:5000/api/; - # proxy_http_version 1.1; - # proxy_set_header Host $host; - # proxy_set_header X-Real-IP $remote_addr; - # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # proxy_set_header X-Forwarded-Proto $scheme; - # } - - location /api-docs/ { - proxy_pass http://server:5000/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} \ No newline at end of file diff --git a/docker/dist/server.Dockerfile b/docker/dist/server.Dockerfile deleted file mode 100755 index 8a9af51d1..000000000 --- a/docker/dist/server.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /app - -COPY ./server/package*.json ./ - -RUN npm install - -COPY ./server/ ./ - -RUN npm run build - -EXPOSE 52345 - -CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/docker/prod/build_images.bat b/docker/prod/build_images.bat deleted file mode 100644 index 79403db3f..000000000 --- a/docker/prod/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=uptime_client -set dockerfiles[0]=.\docker\prod\client.Dockerfile - -set services[1]=uptime_database_mongo -set dockerfiles[1]=.\docker\prod\mongoDB.Dockerfile - -set services[2]=uptime_server -set dockerfiles[2]=.\docker\prod\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/prod/build_images.sh b/docker/prod/build_images.sh deleted file mode 100755 index 49f8c7841..000000000 --- a/docker/prod/build_images.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Change directory to root directory for correct Docker Context -cd "$(dirname "$0")" -cd ../../ - -# Define an array of services and their Dockerfiles -declare -A services=( - ["uptime_client"]="./docker/prod/client.Dockerfile" - ["uptime_database_mongo"]="./docker/prod/mongoDB.Dockerfile" - ["uptime_server"]="./docker/prod/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for service in "${!services[@]}"; do - docker build -f "${services[$service]}" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" \ No newline at end of file diff --git a/docker/prod/certbot-compose.yaml b/docker/prod/certbot-compose.yaml deleted file mode 100755 index 9220d07a1..000000000 --- a/docker/prod/certbot-compose.yaml +++ /dev/null @@ -1,19 +0,0 @@ -version: "3" - -services: - webserver: - image: nginx:latest - ports: - - 80:80 - - 443:443 - restart: always - volumes: - - ./nginx/conf.d/:/etc/nginx/conf.d/:ro - - ./certbot/www/:/var/www/certbot/:ro - certbot: - image: certbot/certbot:latest - volumes: - - ./certbot/www/:/var/www/certbot/:rw - - ./certbot/conf/:/etc/letsencrypt/:rw - depends_on: - - webserver diff --git a/docker/prod/client.Dockerfile b/docker/prod/client.Dockerfile deleted file mode 100755 index b4c685e3e..000000000 --- a/docker/prod/client.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client . - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/prod/docker-compose.yaml b/docker/prod/docker-compose.yaml deleted file mode 100755 index 02a9fd919..000000000 --- a/docker/prod/docker-compose.yaml +++ /dev/null @@ -1,53 +0,0 @@ -services: - client: - image: ghcr.io/bluewave-labs/checkmate:frontend-demo - restart: always - environment: - UPTIME_APP_API_BASE_URL: "https://demo.checkmate.so/api/v1" - UPTIME_APP_CLIENT_HOST: "https://demo.checkmate.so" - ports: - - "80:80" - - "443:443" - depends_on: - - server - volumes: - - ./nginx/conf.d:/etc/nginx/conf.d/:ro - - /etc/letsencrypt:/etc/nginx/ssl:ro - - server: - image: ghcr.io/bluewave-labs/checkmate:backend-demo - restart: always - ports: - - "52345:52345" - env_file: - - server.env - depends_on: - - mongodb - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - mongodb: - image: ghcr.io/bluewave-labs/checkmate:mongo-demo - restart: always - command: ["mongod", "--quiet", "--bind_ip_all"] - volumes: - - ./mongo/data:/data/db - env_file: - - mongo.env - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 - capture: - image: ghcr.io/bluewave-labs/capture:latest - container_name: capture - restart: unless-stopped - ports: - - "59232:59232" - environment: - - API_SECRET=my_secret - - GIN_MODE=release - volumes: - - /etc/os-release:/etc/os-release:ro diff --git a/docker/prod/mongo/init/init.js b/docker/prod/mongo/init/init.js deleted file mode 100644 index 34b90ced3..000000000 --- a/docker/prod/mongo/init/init.js +++ /dev/null @@ -1,41 +0,0 @@ -function initiateReplicaSet() { - try { - rs.initiate({ - _id: "rs0", - members: [{ _id: 0, host: "localhost:27017" }], - }); - } catch (e) { - print("Replica set already initiated or error occurred: " + e); - } -} - -function waitForPrimary() { - while (true) { - const isMaster = db.isMaster(); - if (isMaster.ismaster) { - print("This node is now PRIMARY."); - break; - } - print("Waiting to become PRIMARY..."); - sleep(2000); - } -} - -function createUser() { - db = db.getSiblingDB("uptime_db"); - - var username = process.env.USERNAME_ENV_VAR; - var password = process.env.PASSWORD_ENV_VAR; - - db.createUser({ - user: username, - pwd: password, - roles: [{ role: "readWrite", db: "uptime_db" }], - }); - - print("User '" + username + "' created successfully"); -} - -initiateReplicaSet(); -waitForPrimary(); -createUser(); diff --git a/docker/prod/mongoDB.Dockerfile b/docker/prod/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/prod/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/prod/nginx/conf.d/cerbot b/docker/prod/nginx/conf.d/cerbot deleted file mode 100755 index f26cfeb23..000000000 --- a/docker/prod/nginx/conf.d/cerbot +++ /dev/null @@ -1,15 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-demo.bluewavelabs.ca www.checkmate-demo.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - return 301 https://[domain-name]$request_uri; - } -} diff --git a/docker/prod/nginx/conf.d/default.conf b/docker/prod/nginx/conf.d/default.conf deleted file mode 100755 index 0e0e55a2b..000000000 --- a/docker/prod/nginx/conf.d/default.conf +++ /dev/null @@ -1,69 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-demo.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api-docs/ { - proxy_pass http://server:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} - -server { - listen 443 default_server ssl http2; - listen [::]:443 ssl http2; - - server_name checkmate-demo.bluewavelabs.ca; - - ssl_certificate /etc/nginx/ssl/live/demo.checkmate.so/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/live/demo.checkmate.so/privkey.pem; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api-docs/ { - proxy_pass http://server:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} diff --git a/docker/prod/server.Dockerfile b/docker/prod/server.Dockerfile deleted file mode 100755 index b093638f4..000000000 --- a/docker/prod/server.Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -ENV NODE_OPTIONS="--max-old-space-size=2048" - -WORKDIR /app - -COPY ./server/package*.json ./ - -RUN npm install - -COPY ./server ./ - -RUN npm run build - -RUN cp -r src/templates dist/templates - -EXPOSE 52345 - -CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/docker/staging/build_images.bat b/docker/staging/build_images.bat deleted file mode 100644 index c8be0378a..000000000 --- a/docker/staging/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=uptime_client -set dockerfiles[0]=.\docker\staging\client.Dockerfile - -set services[1]=uptime_database_mongo -set dockerfiles[1]=.\docker\staging\mongoDB.Dockerfile - -set services[2]=uptime_server -set dockerfiles[2]=.\docker\staging\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/staging/build_images.sh b/docker/staging/build_images.sh deleted file mode 100755 index a11aebf7c..000000000 --- a/docker/staging/build_images.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Change directory to root directory for correct Docker Context -cd "$(dirname "$0")" -cd ../../ - -# Define an array of services and their Dockerfiles -declare -A services=( - ["uptime_client"]="./docker/staging/client.Dockerfile" - ["uptime_database_mongo"]="./docker/staging/mongoDB.Dockerfile" - ["uptime_server"]="./docker/staging/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for service in "${!services[@]}"; do - docker build -f "${services[$service]}" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" \ No newline at end of file diff --git a/docker/staging/cerbot-compose.yaml b/docker/staging/cerbot-compose.yaml deleted file mode 100755 index 9220d07a1..000000000 --- a/docker/staging/cerbot-compose.yaml +++ /dev/null @@ -1,19 +0,0 @@ -version: "3" - -services: - webserver: - image: nginx:latest - ports: - - 80:80 - - 443:443 - restart: always - volumes: - - ./nginx/conf.d/:/etc/nginx/conf.d/:ro - - ./certbot/www/:/var/www/certbot/:ro - certbot: - image: certbot/certbot:latest - volumes: - - ./certbot/www/:/var/www/certbot/:rw - - ./certbot/conf/:/etc/letsencrypt/:rw - depends_on: - - webserver diff --git a/docker/staging/client.Dockerfile b/docker/staging/client.Dockerfile deleted file mode 100644 index df3ac7439..000000000 --- a/docker/staging/client.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client ./ - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/staging/docker-compose.yaml b/docker/staging/docker-compose.yaml deleted file mode 100755 index f4ed5ce6f..000000000 --- a/docker/staging/docker-compose.yaml +++ /dev/null @@ -1,62 +0,0 @@ -services: - client: - image: ghcr.io/bluewave-labs/checkmate:frontend-staging - restart: always - environment: - UPTIME_APP_API_BASE_URL: "https://checkmate-test.bluewavelabs.ca/api/v1" - UPTIME_APP_CLIENT_HOST: "https://checkmate-test.bluewavelabs.ca" - ports: - - "80:80" - - "443:443" - depends_on: - - server - volumes: - - ./nginx/conf.d:/etc/nginx/conf.d/:ro - - ./certbot/www:/var/www/certbot/:ro - - ./certbot/conf/:/etc/nginx/ssl/:ro - - certbot: - image: certbot/certbot:latest - restart: always - volumes: - - ./certbot/www/:/var/www/certbot/:rw - - ./certbot/conf/:/etc/letsencrypt/:rw - entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; sleep 12h & wait $${!}; done;'" - - server: - image: ghcr.io/bluewave-labs/checkmate:backend-staging - restart: always - ports: - - "52345:52345" - env_file: - - server.env - depends_on: - - mongodb - mongodb: - image: ghcr.io/bluewave-labs/checkmate:mongo-staging - restart: always - command: ["mongod", "--quiet", "--bind_ip_all"] - ports: - - "27017:27017" - volumes: - - ./mongo/data:/data/db - env_file: - - mongo.env - healthcheck: - test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 - capture: - image: ghcr.io/bluewave-labs/capture:latest - container_name: capture - restart: unless-stopped - ports: - - "59232:59232" - environment: - - API_SECRET=my_secret - - GIN_MODE=release - volumes: - - /etc/os-release:/etc/os-release:ro diff --git a/docker/staging/mongo/init/01_init_replica_set.js b/docker/staging/mongo/init/01_init_replica_set.js deleted file mode 100644 index 878ce68a6..000000000 --- a/docker/staging/mongo/init/01_init_replica_set.js +++ /dev/null @@ -1,15 +0,0 @@ -try { - const status = rs.status(); - printjson(status); -} catch (e) { - if (e.codeName === "NotYetInitialized") { - print("Replica set not initialized. Initiating..."); - rs.initiate({ - _id: "rs0", - members: [{ _id: 0, host: "mongodb:27017" }], - }); - } else { - print("Unexpected error during rs.status():"); - printjson(e); - } -} diff --git a/docker/staging/mongo/init/02_create_users.js b/docker/staging/mongo/init/02_create_users.js deleted file mode 100755 index adb2bf078..000000000 --- a/docker/staging/mongo/init/02_create_users.js +++ /dev/null @@ -1,16 +0,0 @@ -var username = process.env.USERNAME_ENV_VAR; -var password = process.env.PASSWORD_ENV_VAR; - -db = db.getSiblingDB("uptime_db"); - -db.createUser({ - user: username, - pwd: password, - roles: [ - { - role: "readWrite", - db: "uptime_db", - }, - ], -}); -print("User uptime_user created successfully"); diff --git a/docker/staging/mongoDB.Dockerfile b/docker/staging/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/staging/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/staging/nginx/conf.d/certbot b/docker/staging/nginx/conf.d/certbot deleted file mode 100755 index eba24638c..000000000 --- a/docker/staging/nginx/conf.d/certbot +++ /dev/null @@ -1,15 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-test.bluewavelabs.ca www.checkmate-test.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - return 301 https://[domain-name]$request_uri; - } -} diff --git a/docker/staging/nginx/conf.d/default.conf b/docker/staging/nginx/conf.d/default.conf deleted file mode 100755 index c755ddef1..000000000 --- a/docker/staging/nginx/conf.d/default.conf +++ /dev/null @@ -1,77 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name checkmate-test.bluewavelabs.ca; - server_tokens off; - - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Connection ''; - chunked_transfer_encoding off; - proxy_buffering off; - proxy_cache off; - } - - location /api-docs/ { - proxy_pass http://server:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} - -server { - listen 443 default_server ssl http2; - listen [::]:443 ssl http2; - - server_name checkmate-test.bluewavelabs.ca; - - ssl_certificate /etc/nginx/ssl/live/checkmate-test.bluewavelabs.ca/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/live/checkmate-test.bluewavelabs.ca/privkey.pem; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Connection ''; - chunked_transfer_encoding off; - proxy_buffering off; - proxy_cache off; - } - - location /api-docs/ { - proxy_pass http://server:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} diff --git a/docker/staging/server.Dockerfile b/docker/staging/server.Dockerfile deleted file mode 100755 index b093638f4..000000000 --- a/docker/staging/server.Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -ENV NODE_OPTIONS="--max-old-space-size=2048" - -WORKDIR /app - -COPY ./server/package*.json ./ - -RUN npm install - -COPY ./server ./ - -RUN npm run build - -RUN cp -r src/templates dist/templates - -EXPOSE 52345 - -CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/docker/unified/build_images.bat b/docker/unified/build_images.bat deleted file mode 100644 index a3d54e60d..000000000 --- a/docker/unified/build_images.bat +++ /dev/null @@ -1,33 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -REM Change directory to root Server directory for correct Docker Context -cd /d "%~dp0" -cd ../.. - -REM Define service names and their corresponding Dockerfiles -set services[0]=uptime_client -set dockerfiles[0]=.\docker\unified\client.Dockerfile - -set services[1]=uptime_database_mongo -set dockerfiles[1]=.\docker\unified\mongoDB.Dockerfile - -set services[2]=uptime_server -set dockerfiles[2]=.\docker\unified\server.Dockerfile - -REM Loop through each service and build the corresponding image -for /L %%i in (0,1,2) do ( - set service=!services[%%i]! - set dockerfile=!dockerfiles[%%i]! - - docker build -f "!dockerfile!" -t "!service!" . - - REM Check if the build succeeded - if errorlevel 1 ( - echo Error building !service! image. Exiting... - exit /b 1 - ) -) - -echo All images built successfully -exit /b 0 diff --git a/docker/unified/build_images.sh b/docker/unified/build_images.sh deleted file mode 100755 index 21b866bbe..000000000 --- a/docker/unified/build_images.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Change directory to root directory for correct Docker Context -cd "$(dirname "$0")" -cd ../../ - -# Define an array of services and their Dockerfiles -declare -A services=( - ["uptime_client"]="./docker/unified/client.Dockerfile" - ["uptime_database_mongo"]="./docker/unified/mongoDB.Dockerfile" - ["uptime_server"]="./docker/unified/server.Dockerfile" -) - -# Loop through each service and build the corresponding image -for service in "${!services[@]}"; do - docker build -f "${services[$service]}" -t "$service" . - - # Check if the build succeeded - if [ $? -ne 0 ]; then - echo "Error building $service image. Exiting..." - exit 1 - fi -done - -echo "All images built successfully" diff --git a/docker/unified/certbot-compose.yaml b/docker/unified/certbot-compose.yaml deleted file mode 100755 index 9220d07a1..000000000 --- a/docker/unified/certbot-compose.yaml +++ /dev/null @@ -1,19 +0,0 @@ -version: "3" - -services: - webserver: - image: nginx:latest - ports: - - 80:80 - - 443:443 - restart: always - volumes: - - ./nginx/conf.d/:/etc/nginx/conf.d/:ro - - ./certbot/www/:/var/www/certbot/:ro - certbot: - image: certbot/certbot:latest - volumes: - - ./certbot/www/:/var/www/certbot/:rw - - ./certbot/conf/:/etc/letsencrypt/:rw - depends_on: - - webserver diff --git a/docker/unified/client.Dockerfile b/docker/unified/client.Dockerfile deleted file mode 100755 index b4c685e3e..000000000 --- a/docker/unified/client.Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM node:20-slim AS build - -ENV NODE_OPTIONS="--max-old-space-size=4096" - -WORKDIR /app - -COPY ./client/package*.json ./ - -RUN npm install - -COPY ./client . - -RUN npm run build - -FROM nginx:1.27.1-alpine - -COPY --from=build /app/dist /usr/share/nginx/html -COPY --from=build /app/env.sh /docker-entrypoint.d/env.sh -RUN chmod +x /docker-entrypoint.d/env.sh -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/unified/docker-compose.yaml b/docker/unified/docker-compose.yaml deleted file mode 100755 index 199d0da21..000000000 --- a/docker/unified/docker-compose.yaml +++ /dev/null @@ -1,114 +0,0 @@ -# sudo certbot certonly --standalone --http-01-port 8080 -# cerbot needs to run on 8080 since port 80 is used by the gateway - -services: - # Gateway (Single Entry Point) - gateway: - image: nginx:1.27.1-alpine - container_name: checkmate-gateway - restart: always - ports: - - "80:80" - - "443:443" - volumes: - - /etc/letsencrypt:/etc/nginx/ssl:ro - - ./gateway/nginx.conf:/etc/nginx/conf.d/default.conf:ro - - # Production Stack ----- - client-prod: - image: ghcr.io/bluewave-labs/checkmate:frontend-demo - container_name: client-prod - restart: always - environment: - UPTIME_APP_API_BASE_URL: "https://demo.checkmate.so/api/v1" - UPTIME_APP_CLIENT_HOST: "https://demo.checkmate.so" - expose: - - "80" - depends_on: - - server-prod - volumes: - - ./nginx/conf.d/prod.conf:/etc/nginx/conf.d/default.conf:ro - - server-prod: - image: ghcr.io/bluewave-labs/checkmate:backend-demo - container_name: server-prod - restart: always - env_file: - - server-prod.env - depends_on: - - mongodb-prod - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - mongodb-prod: - image: ghcr.io/bluewave-labs/checkmate:mongo-demo - container_name: mongodb-prod - restart: always - command: [ "mongod", "--quiet", "--bind_ip_all" ] - volumes: - - ./mongo/data-prod:/data/db - env_file: - - mongo-prod.env - healthcheck: - test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet" ] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 - - # Staging Stack ----- - client-staging: - image: ghcr.io/bluewave-labs/checkmate:frontend-staging - container_name: client-staging - restart: always - environment: - UPTIME_APP_API_BASE_URL: "https://staging.checkmate.so/api/v1" - UPTIME_APP_CLIENT_HOST: "https://staging.checkmate.so" - expose: - - "80" - depends_on: - - server-staging - volumes: - - ./nginx/conf.d/staging.conf:/etc/nginx/conf.d/default.conf:ro - - server-staging: - image: ghcr.io/bluewave-labs/checkmate:backend-staging - container_name: server-staging - restart: always - env_file: - - server-staging.env - depends_on: - - mongodb-staging - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - mongodb-staging: - image: ghcr.io/bluewave-labs/checkmate:mongo-staging - container_name: mongodb-staging - restart: always - command: [ "mongod", "--quiet", "--bind_ip_all" ] - volumes: - - ./mongo/data-staging:/data/db - env_file: - - mongo-staging.env - healthcheck: - test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet" ] - interval: 5s - timeout: 30s - start_period: 0s - start_interval: 1s - retries: 30 - - # Shared Utils - capture: - image: ghcr.io/bluewave-labs/capture:latest - container_name: capture - restart: unless-stopped - ports: - - "59232:59232" - environment: - - API_SECRET=my_secret - - GIN_MODE=release - volumes: - - /etc/os-release:/etc/os-release:ro diff --git a/docker/unified/gateway/nginx.conf b/docker/unified/gateway/nginx.conf deleted file mode 100644 index 47ad4695e..000000000 --- a/docker/unified/gateway/nginx.conf +++ /dev/null @@ -1,55 +0,0 @@ -proxy_set_header Host $host; -proxy_set_header X-Real-IP $remote_addr; -proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; -proxy_set_header X-Forwarded-Proto $scheme; - - -server { - listen 80; - server_name demo.checkmate.so staging.checkmate.so; - - location /.well-known/acme-challenge/ { - # Forward the challenge to Certbot listening on 8080 - proxy_pass http://172.17.0.1:8080; - } - - location / { - return 301 https://$host$request_uri; - } -} - - -# --- PRODUCTION: demo.checkmate.so --- -server { - listen 443 ssl; - server_name demo.checkmate.so; - - ssl_certificate /etc/nginx/ssl/live/demo.checkmate.so/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/live/demo.checkmate.so/privkey.pem; - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - - location / { - # Passes traffic to the prod client on port 80 - proxy_pass http://client-prod:80; - } -} - -# --- STAGING: staging.checkmate.so --- - - server { - listen 443 ssl; - server_name staging.checkmate.so; - - ssl_certificate /etc/nginx/ssl/live/staging.checkmate.so/fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/live/staging.checkmate.so/privkey.pem; - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - - location / { - # Passes traffic to the staging client on port 80 - proxy_pass http://client-staging:80; - } - } diff --git a/docker/unified/mongoDB.Dockerfile b/docker/unified/mongoDB.Dockerfile deleted file mode 100755 index 969a320c2..000000000 --- a/docker/unified/mongoDB.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo -EXPOSE 27017 -CMD ["mongod"] diff --git a/docker/unified/nginx/conf.d/prod.conf b/docker/unified/nginx/conf.d/prod.conf deleted file mode 100755 index 63a42a401..000000000 --- a/docker/unified/nginx/conf.d/prod.conf +++ /dev/null @@ -1,31 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name _; - server_tokens off; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server-prod:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api-docs/ { - proxy_pass http://server-prod:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} \ No newline at end of file diff --git a/docker/unified/nginx/conf.d/staging.conf b/docker/unified/nginx/conf.d/staging.conf deleted file mode 100755 index 6b640a06b..000000000 --- a/docker/unified/nginx/conf.d/staging.conf +++ /dev/null @@ -1,31 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name _; - server_tokens off; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location /api/ { - proxy_pass http://server-staging:52345/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api-docs/ { - proxy_pass http://server-staging:52345/api-docs/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -} \ No newline at end of file diff --git a/docker/unified/server.Dockerfile b/docker/unified/server.Dockerfile deleted file mode 100755 index 86a8c1f48..000000000 --- a/docker/unified/server.Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM node:22-slim - -# Install ping -RUN apt-get update \ - && apt-get install -y iputils-ping \ - && rm -rf /var/lib/apt/lists/* - -ENV NODE_OPTIONS="--max-old-space-size=2048" - -WORKDIR /app - -COPY ./server/package*.json ./ - -RUN npm install - -COPY ./server ./ - -RUN npm run build - -EXPOSE 52345 - -CMD ["node", "dist/index.js"] \ No newline at end of file