From 49f81d38b306d9406b3aeeb85335f82118a1c077 Mon Sep 17 00:00:00 2001 From: sergio-riesco Date: Tue, 25 Feb 2025 13:03:20 +0100 Subject: [PATCH 1/4] #59 - Initial commit --- .github/workflows/release.yml | 19 ++++++++--------- docker-compose.yml | 38 +++++++++++++++++----------------- llmservice/.dockerignore | 3 ++- llmservice/Dockerfile | 2 +- llmservice/llm-service.js | 12 ++++++++--- llmservice/llm-service.test.js | 5 ++++- llmservice/package-lock.json | 15 +++++++++++++- llmservice/package.json | 21 ++++++++++--------- webapp/Dockerfile | 4 +--- webapp/src/App.js | 4 ++-- webapp/src/components/Login.js | 14 ++++--------- 11 files changed, 76 insertions(+), 61 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f3689965..6533c154 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: CI for wichat_en2b +name: CI for wichat_0 on: release: @@ -54,14 +54,13 @@ jobs: uses: elgohr/Publish-Docker-Github-Action@v5 env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 - LLM_API_KEY: ${{ secrets.LLM_API_KEY }} with: - name: arquisoft/wichat_en2b/webapp + name: arquisoft/wichat_0/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io workdir: webapp - buildargs: API_URI,LLM_API_KEY + buildargs: API_URI docker-push-authservice: name: Push auth service Docker Image to GitHub Packages runs-on: ubuntu-latest @@ -76,7 +75,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_en2b/authservice + name: arquisoft/wichat_0/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -95,7 +94,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_en2b/userservice + name: arquisoft/wichat_0/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -113,7 +112,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_en2b/llmservice + name: arquisoft/wichat_0/llmservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -135,7 +134,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_en2b/gatewayservice + name: arquisoft/wichat_0/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -152,6 +151,6 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wichat_en2b/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wichat_0/master/docker-compose.yml -O docker-compose.yml docker compose --profile prod down - docker compose --profile prod up -d --pull always + docker compose --profile prod up -d --pull always \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 8a0e7693..499f45eb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: mongodb: - container_name: mongodb-wichat_en2b + container_name: mongodb-wichat_0 image: mongo profiles: ["dev", "prod"] volumes: @@ -11,8 +11,8 @@ services: - mynetwork authservice: - container_name: authservice-wichat_en2b - image: ghcr.io/arquisoft/wichat_en2b/authservice:latest + container_name: authservice-wichat_0 + image: ghcr.io/arquisoft/wichat_0/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -25,8 +25,8 @@ services: MONGODB_URI: mongodb://mongodb:27017/userdb userservice: - container_name: userservice-wichat_en2b - image: ghcr.io/arquisoft/wichat_en2b/userservice:latest + container_name: userservice-wichat_0 + image: ghcr.io/arquisoft/wichat_0/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -39,18 +39,21 @@ services: MONGODB_URI: mongodb://mongodb:27017/userdb llmservice: - container_name: llmservice-wichat_en2b - image: ghcr.io/arquisoft/wichat_en2b/llmservice:latest + container_name: llmservice-wichat_0 + image: ghcr.io/arquisoft/wichat_0/llmservice:latest profiles: ["dev", "prod"] - build: ./llmservice + build: + context: ./llmservice + args: + LLM_API_KEY: ${LLM_API_KEY} ports: - "8003:8003" networks: - mynetwork gatewayservice: - container_name: gatewayservice-wichat_en2b - image: ghcr.io/arquisoft/wichat_en2b/gatewayservice:latest + container_name: gatewayservice-wichat_0 + image: ghcr.io/arquisoft/wichat_0/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -68,13 +71,10 @@ services: LLM_SERVICE_URL: http://llmservice:8003 webapp: - container_name: webapp-wichat_en2b - image: ghcr.io/arquisoft/wichat_en2b/webapp:latest + container_name: webapp-wichat_0 + image: ghcr.io/arquisoft/wichat_0/webapp:latest profiles: ["dev", "prod"] - build: - context: ./webapp - args: - LLM_API_KEY: ${LLM_API_KEY} + build: ./webapp depends_on: - gatewayservice ports: @@ -82,7 +82,7 @@ services: prometheus: image: prom/prometheus - container_name: prometheus-wichat_en2b + container_name: prometheus-wichat_0 profiles: ["dev"] networks: - mynetwork @@ -96,7 +96,7 @@ services: grafana: image: grafana/grafana - container_name: grafana-wichat_en2b + container_name: grafana-wichat_0 profiles: ["dev"] networks: - mynetwork @@ -121,4 +121,4 @@ volumes: networks: mynetwork: - driver: bridge + driver: bridge \ No newline at end of file diff --git a/llmservice/.dockerignore b/llmservice/.dockerignore index 3091757a..c92776b4 100644 --- a/llmservice/.dockerignore +++ b/llmservice/.dockerignore @@ -1,2 +1,3 @@ node_modules -coverage \ No newline at end of file +coverage +.env \ No newline at end of file diff --git a/llmservice/Dockerfile b/llmservice/Dockerfile index 01739abd..d8a59a35 100644 --- a/llmservice/Dockerfile +++ b/llmservice/Dockerfile @@ -17,4 +17,4 @@ COPY . . EXPOSE 8003 # Define the command to run your app -CMD ["node", "llm-service.js"] +CMD ["node", "llm-service.js"] \ No newline at end of file diff --git a/llmservice/llm-service.js b/llmservice/llm-service.js index 4788a50d..3ea15444 100644 --- a/llmservice/llm-service.js +++ b/llmservice/llm-service.js @@ -6,6 +6,8 @@ const port = 8003; // Middleware to parse JSON in request body app.use(express.json()); +// Load enviornment variables +require('dotenv').config(); // Define configurations for different LLM APIs const llmConfigs = { @@ -71,9 +73,14 @@ async function sendQuestionToLLM(question, apiKey, model = 'gemini') { app.post('/ask', async (req, res) => { try { // Check if required fields are present in the request body - validateRequiredFields(req, ['question', 'model', 'apiKey']); + validateRequiredFields(req, ['question', 'model']); - const { question, model, apiKey } = req.body; + const { question, model } = req.body; + //load the api key from an environment variable + const apiKey = process.env.LLM_API_KEY; + if (!apiKey) { + return res.status(400).json({ error: 'API key is missing.' }); + } const answer = await sendQuestionToLLM(question, apiKey, model); res.json({ answer }); @@ -88,4 +95,3 @@ const server = app.listen(port, () => { module.exports = server - diff --git a/llmservice/llm-service.test.js b/llmservice/llm-service.test.js index e8b0b7cf..b64a81de 100644 --- a/llmservice/llm-service.test.js +++ b/llmservice/llm-service.test.js @@ -1,3 +1,6 @@ +//set a fake api key +process.env.LLM_API_KEY = 'test-api-key'; + const request = require('supertest'); const axios = require('axios'); const app = require('./llm-service'); @@ -22,7 +25,7 @@ describe('LLM Service', () => { it('the llm should reply', async () => { const response = await request(app) .post('/ask') - .send({ question: 'a question', apiKey: 'apiKey', model: 'gemini' }); + .send({ question: 'a question', model: 'gemini' }); expect(response.statusCode).toBe(200); expect(response.body.answer).toBe('llmanswer'); diff --git a/llmservice/package-lock.json b/llmservice/package-lock.json index c801c4a7..982c4978 100644 --- a/llmservice/package-lock.json +++ b/llmservice/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "axios": "^1.7.9", + "dotenv": "^16.4.7", "express": "^4.21.2" }, "devDependencies": { @@ -1803,6 +1804,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -4712,4 +4725,4 @@ } } } -} +} \ No newline at end of file diff --git a/llmservice/package.json b/llmservice/package.json index eb062388..6f5bc31e 100644 --- a/llmservice/package.json +++ b/llmservice/package.json @@ -8,13 +8,14 @@ "author": "", "license": "ISC", "description": "", - "homepage": "https://github.com/arquisoft/wichat_en2b#readme", - "dependencies": { - "axios": "^1.7.9", - "express": "^4.21.2" - }, - "devDependencies": { - "jest": "^29.7.0", - "supertest": "^7.0.0" - } -} + "homepage": "https://github.com/arquisoft/wichat_0#readme", + "dependencies": { + "axios": "^1.7.9", + "dotenv": "^16.4.7", + "express": "^4.21.2" + }, + "devDependencies": { + "jest": "^29.7.0", + "supertest": "^7.0.0" + } +} \ No newline at end of file diff --git a/webapp/Dockerfile b/webapp/Dockerfile index e3b39ecf..a7ef241a 100644 --- a/webapp/Dockerfile +++ b/webapp/Dockerfile @@ -7,9 +7,7 @@ WORKDIR /app RUN npm install --omit=dev ARG API_URI="http://localhost:8000" -ARG LLM_API_KEY ENV REACT_APP_API_ENDPOINT=$API_URI -ENV REACT_APP_LLM_API_KEY=$LLM_API_KEY #Create an optimized version of the webapp RUN npm run build @@ -17,4 +15,4 @@ RUN npm install -g serve --production #Execute npm run prod to run the server CMD [ "npm", "run", "prod" ] -#CMD ["npm", "start"] +#CMD ["npm", "start"] \ No newline at end of file diff --git a/webapp/src/App.js b/webapp/src/App.js index 1f6f1b29..bc665c5f 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -17,7 +17,7 @@ function App() { - Welcome to the 2025 edition of the Software Architecture course + Welcome to the 2025 edition of the Software Architecture course! {showLogin ? : } @@ -35,4 +35,4 @@ function App() { ); } -export default App; +export default App; \ No newline at end of file diff --git a/webapp/src/components/Login.js b/webapp/src/components/Login.js index c9b4097b..78eaf324 100644 --- a/webapp/src/components/Login.js +++ b/webapp/src/components/Login.js @@ -14,7 +14,7 @@ const Login = () => { const [openSnackbar, setOpenSnackbar] = useState(false); const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; - const apiKey = process.env.REACT_APP_LLM_API_KEY || 'None'; + const loginUser = async () => { try { @@ -22,14 +22,8 @@ const Login = () => { const question = "Please, generate a greeting message for a student called " + username + " that is a student of the Software Architecture course in the University of Oviedo. Be nice and polite. Two to three sentences max."; const model = "empathy" - - if (apiKey==='None'){ - setMessage("LLM API key is not set. Cannot contact the LLM."); - } - else{ - const message = await axios.post(`${apiEndpoint}/askllm`, { question, model, apiKey }) - setMessage(message.data.answer); - } + const message = await axios.post(`${apiEndpoint}/askllm`, { question, model }) + setMessage(message.data.answer); // Extract data from the response const { createdAt: userCreatedAt } = response.data; @@ -93,4 +87,4 @@ const Login = () => { ); }; -export default Login; +export default Login; \ No newline at end of file From d4b116cc56fb08e355d4e0da6999a5571ff950e2 Mon Sep 17 00:00:00 2001 From: sergio-riesco Date: Tue, 25 Feb 2025 18:56:03 +0100 Subject: [PATCH 2/4] #59 - Fixed all vulnerabilities --- README.md | 21 ++++++++++----------- docker-compose.yml | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index ed28994c..0148cdc5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# wichat_en2b +# wichat_0 -[![Actions Status](https://github.com/arquisoft/wichat_en2b/workflows/CI%20for%20wichat_en2b/badge.svg)](https://github.com/arquisoft/wichat_en2b/actions) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_en2b&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_en2b) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_en2b&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_en2b) +[![Actions Status](https://github.com/arquisoft/wichat_0/workflows/CI%20for%20wichat_0/badge.svg)](https://github.com/arquisoft/wichat_0/actions) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_0) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_0)

@@ -23,16 +23,16 @@ Both the user and auth service share a Mongo database that is accessed with mong First, clone the project: -```git clone git@github.com:arquisoft/wichat_en2b.git``` +```git clone git@github.com:arquisoft/wichat_0.git``` ### LLM API key configuration In order to communicate with the LLM integrated in this project, we need to setup an API key. Two integrations are available in this propotipe: gemini and empaphy. The API key provided must match the LLM provider used. We need to create two .env files. -- The first one in the webapp directory (for executing the webapp using ```npm start```). The content of this .env file should be as follows: +- The first one in the llmservice directory (for executing the llmservice using ```npm start```). The content of this .env file should be as follows: ``` -REACT_APP_LLM_API_KEY="YOUR-API-KEY" +LLM_API_KEY="YOUR-API-KEY" ``` - The second one located in the root of the project (along the docker-compose.yml). This .env file is used for the docker-compose when launching the app with docker. The content of this .env file should be as follows: ``` @@ -41,8 +41,7 @@ LLM_API_KEY="YOUR-API-KEY" Note that these files must NOT be uploaded to the github repository (they are excluded in the .gitignore). -An extra configuration for the LLM to work in the deployed version of the app is to include it as a repository secret (LLM_API_KEY). This secret will be used by GitHub Action when building and deploying the application. - +An extra configuration for the LLM to work in the deployed version of the app is to create the same .env file (with the LLM_API_KEY variable) in the virtual machine (in the home of the azureuser directory). ### Launching Using docker For launching the propotipe using docker compose, just type: @@ -106,7 +105,7 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wichat_en2b/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wichat_0/master/docker-compose.yml -O docker-compose.yml docker compose --profile prod down docker compose --profile prod up -d --pull always ``` @@ -116,4 +115,4 @@ This action uses three secrets that must be configured in the repository: - DEPLOY_USER: user with permission to execute the commands in the remote machine. - DEPLOY_KEY: key to authenticate the user in the remote machine. -Note that this action logs in the remote machine and downloads the docker-compose file from the repository and launches it. Obviously, previous actions have been executed which have uploaded the docker images to the GitHub Packages repository. +Note that this action logs in the remote machine and downloads the docker-compose file from the repository and launches it. Obviously, previous actions have been executed which have uploaded the docker images to the GitHub Packages repository. \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 499f45eb..cda7fa00 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,10 +42,10 @@ services: container_name: llmservice-wichat_0 image: ghcr.io/arquisoft/wichat_0/llmservice:latest profiles: ["dev", "prod"] + env_file: + - .env build: context: ./llmservice - args: - LLM_API_KEY: ${LLM_API_KEY} ports: - "8003:8003" networks: From 9d72b1c9caf91589ce9e12e539dbfae2e87bb4e7 Mon Sep 17 00:00:00 2001 From: sergio-riesco Date: Tue, 25 Feb 2025 19:07:53 +0100 Subject: [PATCH 3/4] #59 - Changed incorrect name for project --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6533c154..dfeb82e2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: CI for wichat_0 +name: CI for wichat_en2b on: release: From b148839e4006bfa60ffc9726c3e679f0d9cf9e05 Mon Sep 17 00:00:00 2001 From: sergio-riesco Date: Tue, 25 Feb 2025 19:07:53 +0100 Subject: [PATCH 4/4] #59 - Changed incorrect name for project --- .github/workflows/release.yml | 14 +++++++------- README.md | 12 ++++++------ docker-compose.yml | 26 +++++++++++++------------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6533c154..4696dd58 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: CI for wichat_0 +name: CI for wichat_en2b on: release: @@ -55,7 +55,7 @@ jobs: env: API_URI: http://${{ secrets.DEPLOY_HOST }}:8000 with: - name: arquisoft/wichat_0/webapp + name: arquisoft/wichat_en2b/webapp username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -75,7 +75,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_0/authservice + name: arquisoft/wichat_en2b/authservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -94,7 +94,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_0/userservice + name: arquisoft/wichat_en2b/userservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -112,7 +112,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_0/llmservice + name: arquisoft/wichat_en2b/llmservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -134,7 +134,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@v5 with: - name: arquisoft/wichat_0/gatewayservice + name: arquisoft/wichat_en2b/gatewayservice username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io @@ -151,6 +151,6 @@ jobs: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wichat_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wichat_en2b/master/docker-compose.yml -O docker-compose.yml docker compose --profile prod down docker compose --profile prod up -d --pull always \ No newline at end of file diff --git a/README.md b/README.md index 0148cdc5..fb562ba1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# wichat_0 +# wichat_en2b -[![Actions Status](https://github.com/arquisoft/wichat_0/workflows/CI%20for%20wichat_0/badge.svg)](https://github.com/arquisoft/wichat_0/actions) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_0&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_0) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_0&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_0) +[![Actions Status](https://github.com/arquisoft/wichat_en2b/workflows/CI%20for%20wichat_en2b/badge.svg)](https://github.com/arquisoft/wichat_en2b/actions) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_en2b&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_en2b) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Arquisoft_wichat_en2b&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Arquisoft_wichat_en2b)

@@ -23,7 +23,7 @@ Both the user and auth service share a Mongo database that is accessed with mong First, clone the project: -```git clone git@github.com:arquisoft/wichat_0.git``` +```git clone git@github.com:arquisoft/wichat_en2b.git``` ### LLM API key configuration @@ -105,7 +105,7 @@ deploy: user: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} command: | - wget https://raw.githubusercontent.com/arquisoft/wichat_0/master/docker-compose.yml -O docker-compose.yml + wget https://raw.githubusercontent.com/arquisoft/wichat_en2b/master/docker-compose.yml -O docker-compose.yml docker compose --profile prod down docker compose --profile prod up -d --pull always ``` diff --git a/docker-compose.yml b/docker-compose.yml index cda7fa00..ac8cd759 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: mongodb: - container_name: mongodb-wichat_0 + container_name: mongodb-wichat_en2b image: mongo profiles: ["dev", "prod"] volumes: @@ -11,8 +11,8 @@ services: - mynetwork authservice: - container_name: authservice-wichat_0 - image: ghcr.io/arquisoft/wichat_0/authservice:latest + container_name: authservice-wichat_en2b + image: ghcr.io/arquisoft/wichat_en2b/authservice:latest profiles: ["dev", "prod"] build: ./users/authservice depends_on: @@ -25,8 +25,8 @@ services: MONGODB_URI: mongodb://mongodb:27017/userdb userservice: - container_name: userservice-wichat_0 - image: ghcr.io/arquisoft/wichat_0/userservice:latest + container_name: userservice-wichat_en2b + image: ghcr.io/arquisoft/wichat_en2b/userservice:latest profiles: ["dev", "prod"] build: ./users/userservice depends_on: @@ -39,8 +39,8 @@ services: MONGODB_URI: mongodb://mongodb:27017/userdb llmservice: - container_name: llmservice-wichat_0 - image: ghcr.io/arquisoft/wichat_0/llmservice:latest + container_name: llmservice-wichat_en2b + image: ghcr.io/arquisoft/wichat_en2b/llmservice:latest profiles: ["dev", "prod"] env_file: - .env @@ -52,8 +52,8 @@ services: - mynetwork gatewayservice: - container_name: gatewayservice-wichat_0 - image: ghcr.io/arquisoft/wichat_0/gatewayservice:latest + container_name: gatewayservice-wichat_en2b + image: ghcr.io/arquisoft/wichat_en2b/gatewayservice:latest profiles: ["dev", "prod"] build: ./gatewayservice depends_on: @@ -71,8 +71,8 @@ services: LLM_SERVICE_URL: http://llmservice:8003 webapp: - container_name: webapp-wichat_0 - image: ghcr.io/arquisoft/wichat_0/webapp:latest + container_name: webapp-wichat_en2b + image: ghcr.io/arquisoft/wichat_en2b/webapp:latest profiles: ["dev", "prod"] build: ./webapp depends_on: @@ -82,7 +82,7 @@ services: prometheus: image: prom/prometheus - container_name: prometheus-wichat_0 + container_name: prometheus-wichat_en2b profiles: ["dev"] networks: - mynetwork @@ -96,7 +96,7 @@ services: grafana: image: grafana/grafana - container_name: grafana-wichat_0 + container_name: grafana-wichat_en2b profiles: ["dev"] networks: - mynetwork