Browse Source

refactor: Remove unnecessary configuration options

Owen Diffey 1 month ago
parent
commit
0e85822304

+ 0 - 9
.env.example

@@ -4,27 +4,18 @@ CONTAINER_MODE=production
 
 APP_ENV=production
 
-BACKEND_HOST=127.0.0.1
-BACKEND_PORT=8080
 BACKEND_DEBUG=false
-BACKEND_DEBUG_PORT=9229
 
-FRONTEND_HOST=127.0.0.1
-FRONTEND_PORT=80
 FRONTEND_CLIENT_PORT=80
 FRONTEND_DEV_PORT=81
 FRONTEND_PROD_DEVTOOLS=false
 
-MONGO_HOST=127.0.0.1
-MONGO_PORT=27017
 MONGO_ROOT_PASSWORD=PASSWORD_HERE
 MONGO_USER_USERNAME=musare
 MONGO_USER_PASSWORD=OTHER_PASSWORD_HERE
 MONGO_DATA_LOCATION=.db
 MONGO_VERSION=6
 
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
 REDIS_PASSWORD=PASSWORD
 REDIS_DATA_LOCATION=.redis
 

+ 0 - 8
.github/workflows/automated-tests.yml

@@ -5,19 +5,11 @@ on: [ push, pull_request, workflow_dispatch ]
 env:
     COMPOSE_PROJECT_NAME: musare
     APP_ENV: development
-    BACKEND_HOST: 127.0.0.1
-    BACKEND_PORT: 8080
-    FRONTEND_HOST: 127.0.0.1
-    FRONTEND_PORT: 80
-    MONGO_HOST: 127.0.0.1
-    MONGO_PORT: 27017
     MONGO_ROOT_PASSWORD: PASSWORD_HERE
     MONGO_USER_USERNAME: musare
     MONGO_USER_PASSWORD: OTHER_PASSWORD_HERE
     MONGO_DATA_LOCATION: .db
     MONGO_VERSION: 5.0
-    REDIS_HOST: 127.0.0.1
-    REDIS_PORT: 6379
     REDIS_PASSWORD: PASSWORD
     REDIS_DATA_LOCATION: .redis
 

+ 0 - 8
.github/workflows/build.yml

@@ -5,19 +5,11 @@ on: [ push, pull_request, workflow_dispatch ]
 env:
     COMPOSE_PROJECT_NAME: musare
     APP_ENV: production
-    BACKEND_HOST: 127.0.0.1
-    BACKEND_PORT: 8080
-    FRONTEND_HOST: 127.0.0.1
-    FRONTEND_PORT: 80
-    MONGO_HOST: 127.0.0.1
-    MONGO_PORT: 27017
     MONGO_ROOT_PASSWORD: PASSWORD_HERE
     MONGO_USER_USERNAME: musare
     MONGO_USER_PASSWORD: OTHER_PASSWORD_HERE
     MONGO_DATA_LOCATION: .db
     MONGO_VERSION: 5.0
-    REDIS_HOST: 127.0.0.1
-    REDIS_PORT: 6379
     REDIS_PASSWORD: PASSWORD
     REDIS_DATA_LOCATION: .redis
 

+ 0 - 8
.github/workflows/lint.yml

@@ -5,19 +5,11 @@ on: [ push, pull_request, workflow_dispatch ]
 env:
     COMPOSE_PROJECT_NAME: musare
     APP_ENV: development
-    BACKEND_HOST: 127.0.0.1
-    BACKEND_PORT: 8080
-    FRONTEND_HOST: 127.0.0.1
-    FRONTEND_PORT: 80
-    MONGO_HOST: 127.0.0.1
-    MONGO_PORT: 27017
     MONGO_ROOT_PASSWORD: PASSWORD_HERE
     MONGO_USER_USERNAME: musare
     MONGO_USER_PASSWORD: OTHER_PASSWORD_HERE
     MONGO_DATA_LOCATION: .db
     MONGO_VERSION: 5.0
-    REDIS_HOST: 127.0.0.1
-    REDIS_PORT: 6379
     REDIS_PASSWORD: PASSWORD
     REDIS_DATA_LOCATION: .redis
 

+ 11 - 13
.wiki/Configuration.md

@@ -28,24 +28,15 @@ machine, even though the application within the container is listening on `21017
 | `DOCKER_COMMAND` | Should be either `docker` or `podman`.  |
 | `CONTAINER_MODE` | Should be either `production` or `local`.  |
 | `APP_ENV` | Should be either `production` or `development`.  |
-| `BACKEND_HOST` | Backend container host. Only used for development mode. |
-| `BACKEND_PORT` | Backend container port. Only used for development mode. |
 | `BACKEND_DEBUG` | Should be either `true` or `false`. If enabled backend will await debugger connection and trigger to start. |
-| `BACKEND_DEBUG_PORT` | Backend container debug port, if enabled. |
-| `FRONTEND_HOST` | Frontend container host. |
-| `FRONTEND_PORT` | Frontend container port. |
 | `FRONTEND_CLIENT_PORT` | Should be the port on which the frontend will be accessible from, usually port `80`, or `443` if using SSL. Only used when running in development mode. |
 | `FRONTEND_DEV_PORT` | Should be the port where Vite's dev server will be accessible from, should always be port `81` for Docker since nginx listens on port 80, and is recommended to be port `80` for non-Docker. Only used when running in development mode. |
 | `FRONTEND_PROD_DEVTOOLS` | Whether to enable Vue dev tools in production builds. [^1] |
-| `MONGO_HOST` | Mongo container host. |
-| `MONGO_PORT` | Mongo container port. |
 | `MONGO_ROOT_PASSWORD` | Password of the root/admin user for MongoDB. |
 | `MONGO_USER_USERNAME` | Application username for MongoDB. |
 | `MONGO_USER_PASSWORD` | Application password for MongoDB. |
 | `MONGO_DATA_LOCATION` | The location where MongoDB stores its data. Usually the `.db` folder inside the `Musare` folder. |
 | `MONGO_VERSION` | The MongoDB version to use for scripts and docker compose. Must be numerical. Currently supported MongoDB versions are 4.0+. Always make a backup before changing this value. |
-| `REDIS_HOST` | Redis container host. |
-| `REDIS_PORT` | Redis container port. |
 | `REDIS_PASSWORD` | Redis password. |
 | `REDIS_DATA_LOCATION` | The location where Redis stores its data. Usually the `.redis` folder inside the `Musare` folder. |
 | `BACKUP_LOCATION` | Directory to store musare.sh backups. Defaults to `/backups` in script location. |
@@ -174,13 +165,20 @@ For more information on configuration files please refer to the
 You may want to override the docker-compose files in some specific cases.
 For this, you can create a `docker-compose.override.yml` file.
 
-For example, to expose the backend port:
+For example, to expose the frontend port:
 
 ```yml
 services:
-  backend:
+  frontend:
     ports:
-      - "${BACKEND_HOST}:${BACKEND_PORT}:8080"
+      - "127.0.0.1:1234:80"
 ```
 
-This assumes that you have also set `BACKEND_PORT` inside your `.env` file.
+...and to expose the backend debug port:
+
+```yml
+services:
+  backend:
+    ports:
+      - "127.0.0.1:9229:9229"
+```

+ 4 - 0
Dockerfile

@@ -45,6 +45,8 @@ COPY --from=backend_node_modules --link /opt/app/package.json /opt/app/package-l
 
 ENTRYPOINT npm run prod
 
+EXPOSE 8080
+
 # Frontend node modules
 FROM common_base AS frontend_node_modules
 
@@ -89,3 +91,5 @@ FROM nginx AS frontend
 
 COPY --chown=root:root --link frontend/nginx.prod.conf /etc/nginx/conf.d/default.conf
 COPY --from=frontend_build --chown=nginx:nginx --link /opt/app/build /usr/share/nginx/html
+
+EXPOSE 80

+ 4 - 0
Dockerfile.dev

@@ -36,6 +36,8 @@ COPY --chown=musare:musare --link --from=backend_node_modules /opt/app/node_modu
 
 ENTRYPOINT sh /opt/app/entrypoint.dev.sh
 
+EXPOSE 8080
+
 # Frontend node modules
 FROM common_base AS frontend_node_modules
 
@@ -79,3 +81,5 @@ COPY --chown=musare:musare --link frontend /opt/app
 COPY --chown=musare:musare --from=frontend_node_modules --link /opt/app/node_modules node_modules
 
 ENTRYPOINT sh /opt/app/entrypoint.dev.sh
+
+EXPOSE 80

+ 1 - 1
backend/entrypoint.dev.sh

@@ -7,7 +7,7 @@ if [ ! -d node_modules ]; then
 fi
 
 if [ "${BACKEND_DEBUG}" = "true" ]; then
-    export INSPECT_BRK="--inspect-brk=0.0.0.0:${BACKEND_DEBUG_PORT:-9229}"
+    export INSPECT_BRK="--inspect-brk=0.0.0.0:9229"
 else
     export INSPECT_BRK=""
 fi

+ 11 - 11
docker-compose.dev.yml

@@ -2,9 +2,6 @@ services:
   backend:
     build:
       dockerfile: ./Dockerfile.dev
-    ports:
-      - "${BACKEND_HOST:-0.0.0.0}:${BACKEND_PORT:-8080}:8080"
-      - "${BACKEND_HOST:-0.0.0.0}:${BACKEND_DEBUG_PORT:-9229}:9229"
     environment:
       - APP_ENV=${APP_ENV:-development}
       - BACKEND_DEBUG=${BACKEND_DEBUG:-false}
@@ -14,11 +11,14 @@ services:
       dockerfile: ./Dockerfile.dev
     environment:
       - APP_ENV=${APP_ENV:-development}
-
-  mongo:
-    ports:
-      - "${MONGO_HOST:-0.0.0.0}:${MONGO_PORT:-27017}:${MONGO_PORT:-27017}"
-
-  redis:
-    ports:
-      - "${REDIS_HOST:-0.0.0.0}:${REDIS_PORT:-6379}:6379"
+      - FRONTEND_CLIENT_PORT=${FRONTEND_CLIENT_PORT:-80}
+      - FRONTEND_DEV_PORT=${FRONTEND_DEV_PORT:-81}
+      - FRONTEND_PROD_DEVTOOLS=${FRONTEND_PROD_DEVTOOLS:-false}
+      - MUSARE_SITENAME=${MUSARE_SITENAME:-Musare}
+      - MUSARE_PRIMARY_COLOR=${MUSARE_PRIMARY_COLOR:-#03a9f4}
+      - MUSARE_DEBUG_VERSION=${MUSARE_DEBUG_VERSION:-true}
+      - MUSARE_DEBUG_GIT_REMOTE=${MUSARE_DEBUG_GIT_REMOTE:-false}
+      - MUSARE_DEBUG_GIT_REMOTE_URL=${MUSARE_DEBUG_GIT_REMOTE_URL:-false}
+      - MUSARE_DEBUG_GIT_BRANCH=${MUSARE_DEBUG_GIT_BRANCH:-true}
+      - MUSARE_DEBUG_GIT_LATEST_COMMIT=${MUSARE_DEBUG_GIT_LATEST_COMMIT:-true}
+      - MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT=${MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT:-true}

+ 0 - 4
docker-compose.local.yml

@@ -12,7 +12,3 @@ services:
       - ./common:/opt/common
       - ./types:/opt/types
       - ./frontend:/opt/app
-
-  redis:
-    volumes:
-      - ${REDIS_DATA_LOCATION:-./redis}:/data

+ 7 - 38
docker-compose.yml

@@ -26,11 +26,6 @@ services:
       - redis
     stdin_open: true
     tty: true
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "1m"
-        max-file: "3"
 
   frontend:
     build:
@@ -48,28 +43,8 @@ services:
         MUSARE_DEBUG_GIT_LATEST_COMMIT: "${MUSARE_DEBUG_GIT_LATEST_COMMIT:-true}"
         MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT: "${MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT:-true}"
     restart: unless-stopped
-    ports:
-      - "${FRONTEND_HOST:-0.0.0.0}:${FRONTEND_PORT:-80}:80"
-    environment:
-      - FRONTEND_PORT=${FRONTEND_PORT:-80}
-      - FRONTEND_CLIENT_PORT=${FRONTEND_CLIENT_PORT:-80}
-      - FRONTEND_DEV_PORT=${FRONTEND_DEV_PORT:-81}
-      - FRONTEND_PROD_DEVTOOLS=${FRONTEND_PROD_DEVTOOLS:-false}
-      - MUSARE_SITENAME=${MUSARE_SITENAME:-Musare}
-      - MUSARE_PRIMARY_COLOR=${MUSARE_PRIMARY_COLOR:-#03a9f4}
-      - MUSARE_DEBUG_VERSION=${MUSARE_DEBUG_VERSION:-true}
-      - MUSARE_DEBUG_GIT_REMOTE=${MUSARE_DEBUG_GIT_REMOTE:-false}
-      - MUSARE_DEBUG_GIT_REMOTE_URL=${MUSARE_DEBUG_GIT_REMOTE_URL:-false}
-      - MUSARE_DEBUG_GIT_BRANCH=${MUSARE_DEBUG_GIT_BRANCH:-true}
-      - MUSARE_DEBUG_GIT_LATEST_COMMIT=${MUSARE_DEBUG_GIT_LATEST_COMMIT:-true}
-      - MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT=${MUSARE_DEBUG_GIT_LATEST_COMMIT_SHORT:-true}
     links:
       - backend
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "1m"
-        max-file: "3"
 
   mongo:
     image: docker.io/mongo:${MONGO_VERSION}
@@ -78,27 +53,21 @@ services:
       - MONGO_INITDB_ROOT_USERNAME=admin
       - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
       - MONGO_INITDB_DATABASE=musare
-      - MONGO_PORT=${MONGO_PORT:-27017}
       - MONGO_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
       - MONGO_USER_USERNAME=${MONGO_USER_USERNAME}
       - MONGO_USER_PASSWORD=${MONGO_USER_PASSWORD}
     volumes:
       - ./tools/docker/setup-mongo.sh:/docker-entrypoint-initdb.d/setup-mongo.sh
-      - ${MONGO_DATA_LOCATION:-./db}:/data/db
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "1m"
-        max-file: "3"
+      - database:/data/db
 
   redis:
     image: docker.io/redis:7
     restart: unless-stopped
     command: "--notify-keyspace-events Ex --requirepass ${REDIS_PASSWORD} --appendonly yes"
     volumes:
-      - /data
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "1m"
-        max-file: "3"
+      - cache:/data
+
+volumes:
+  database:
+
+  cache: