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..ab8cce8
--- /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 3110
+
+CMD node index.js
\ No newline at end of file
diff --git a/compose.yaml b/compose.yaml
new file mode 100644
index 0000000..d972943
--- /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_metar:
+    build:
+      context: .
+    environment:
+      NODE_ENV: production
+      DISPATCHER: "dispatcher:3000"
+    volumes:
+      - ./config.json:/usr/src/app/config.json
+    ports:
+      - 3110:3110
diff --git a/config.default.json b/config.default.json
new file mode 100644
index 0000000..4ebca7d
--- /dev/null
+++ b/config.default.json
@@ -0,0 +1,7 @@
+{
+	"pager": {
+		"url": "http://127.0.0.1:3000/api/message/advanced"
+	},
+	"alarms": [
+	]
+}
\ No newline at end of file
diff --git a/index.js b/index.js
index 5f54006..0543bc0 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,13 @@
-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')
 const fs = require('fs')