diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..0c6b4f2 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,25 @@ +name: build +on: + push: + pull_request: + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: git.cheetah.cat + username: ${{ github.actor }} + password: ${{ secrets.PAT_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64 + push: true + tags: git.cheetah.cat/smartpager/${{ github.event.repository.name }}:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..12d610c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +ARG NODE_VERSION=23.0.0 + +FROM node:${NODE_VERSION}-alpine + +ENV NODE_ENV production + +WORKDIR /usr/src/app + +COPY package.json . + +RUN npm install + +COPY . . +USER node +EXPOSE 3100 + +CMD node index.js \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..06c11b0 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,20 @@ +services: + dispatcher: + image: git.cheetah.cat/smartpager/dispatcher:latest + environment: + NODE_ENV: production + volumes: + - ../dispatcher/config.json:/usr/src/app/config.json + ports: + - 3000:3000 + - 3001:3001 + msg_wbi_dwd: + build: + context: . + environment: + NODE_ENV: production + DISPATCHER: "dispatcher:3000" + volumes: + - ./config.json:/usr/src/app/config.json + ports: + - 3100:3100 diff --git a/config.default.json b/config.default.json new file mode 100644 index 0000000..eabdcfa --- /dev/null +++ b/config.default.json @@ -0,0 +1,8 @@ +{ + "pager": { + "url": "http://127.0.0.1:3000/api/message/advanced" + }, + "alarms": [ + ], + "germanUmlautSupport": false +} diff --git a/index.js b/index.js index 6cdf2df..7831bc1 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,16 @@ -const config = require('./config.json') + +const actualConfig = require('./config.json') +const defaultConfig = require('./config.default.json') +const config = defaultConfig +Object.assign(config, actualConfig) +let dispatcherHost = "127.0.0.1:3000" +if (!!process.env.DISPATCHER) { + console.log("docker mode") + dispatcherHost = process.env.DISPATCHER + config.pager.url = `http://${ dispatcherHost }/api/message/advanced` +} + + const axios = require('axios')