From 430e2ca814c1efa22fbf025a16370059d1cfe1d2 Mon Sep 17 00:00:00 2001
From: Tobias Reisinger <tobias@msrg.cc>
Date: Thu, 26 Dec 2024 02:49:11 +0100
Subject: [PATCH 1/2] Add docker stuff

---
 .dockerignore      |  4 ++++
 .gitignore         |  2 ++
 Dockerfile         | 22 ++++++++++++++++++++++
 Makefile           | 13 +++++++++++++
 docker-bake.hcl    | 15 +++++++++++++++
 docker-compose.yml | 29 +++++++++++++++++++++++++++++
 6 files changed, 85 insertions(+)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile
 create mode 100644 docker-bake.hcl
 create mode 100644 docker-compose.yml

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..9299d16
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,4 @@
+.dockerignore
+docker-bake.hcl
+docker-compose.yml
+Dockerfile
diff --git a/.gitignore b/.gitignore
index 95e4256..68f8678 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@
 
 /target
 /out
+
+/docker-data
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..022a25b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+FROM rust:1 as builder
+
+RUN rustup target add x86_64-unknown-linux-musl && \
+    apt update && \
+    apt install -y musl-tools musl-dev && \
+    update-ca-certificates
+
+COPY ./ /emgauwa
+
+FROM builder as builder-core
+WORKDIR /emgauwa/core
+RUN cargo build --target x86_64-unknown-linux-musl --release
+
+FROM builder as builder-controller
+WORKDIR /emgauwa/controller
+RUN cargo build --target x86_64-unknown-linux-musl --release
+
+FROM scratch
+COPY --from=builder-core /emgauwa/core/target/x86_64-unknown-linux-musl/release/emgauwa-core /usr/bin/emgauwa-core
+COPY --from=builder-controller /emgauwa/controller/target/x86_64-unknown-linux-musl/release/emgauwa-controller /usr/bin/emgauwa-controller
+
+CMD ["echo", "please specify command /usr/bin/emgauwa-core or /usr/bin/emgauwa-controller"]
diff --git a/Makefile b/Makefile
index f6c0284..5bf6cf3 100644
--- a/Makefile
+++ b/Makefile
@@ -7,3 +7,16 @@ git-status:
 
 git-diff:
 	git diff --submodule=diff
+
+cargo-all:
+	cd common && cargo $(ACTION)
+	cd controller && cargo $(ACTION)
+	cd core && cargo $(ACTION)
+cargo-build:
+	$(MAKE) ACTION=build cargo-all
+cargo-update:
+	$(MAKE) ACTION=update cargo-all
+
+docker-bake:
+	cd controller && docker builder bake
+	cd core && docker builder bake
diff --git a/docker-bake.hcl b/docker-bake.hcl
new file mode 100644
index 0000000..a571888
--- /dev/null
+++ b/docker-bake.hcl
@@ -0,0 +1,15 @@
+variable "REG" {
+    default = "registry.serguzim.me"
+}
+variable "REPO" {
+    default = "emgauwa/combi"
+}
+variable "TAG" {
+    default = "latest"
+}
+
+target "default" {
+    output = ["type=docker"]
+    dockerfile = "./Dockerfile"
+    tags = ["${REG}/${REPO}:latest", "${REG}/${REPO}:${TAG}"]
+}
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..5df8273
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,29 @@
+services:
+  core:
+    image: registry.serguzim.me/emgauwa/combi
+    command: /usr/bin/emgauwa-core
+    ports:
+      - "4419:4419"
+    environment:
+      EMGAUWA_CORE__SERVER__HOST: 0.0.0.0
+      EMGAUWA_CORE__DATABASE: sqlite:///data/core.sqlite
+    volumes:
+      - ./docker-data:/data
+  controller1:
+    image: registry.serguzim.me/emgauwa/combi
+    command: /usr/bin/emgauwa-controller
+    environment:
+      EMGAUWA_CONTROLLER__SERVER__HOST: core
+      EMGAUWA_CONTROLLER__DATABASE: sqlite:///data/controller1.sqlite
+    volumes:
+      - ./controller/emgauwa-controller.json:/etc/emgauwa/controller.json
+      - ./docker-data:/data
+  controller2:
+    image: registry.serguzim.me/emgauwa/combi
+    command: /usr/bin/emgauwa-controller
+    environment:
+      EMGAUWA_CONTROLLER__SERVER__HOST: core
+      EMGAUWA_CONTROLLER__DATABASE: sqlite:///data/controller2.sqlite
+    volumes:
+      - ./controller/emgauwa-controller.json:/etc/emgauwa/controller.json
+      - ./docker-data:/data

From 0543f8dbab80274140f574f588c10b457a5458c2 Mon Sep 17 00:00:00 2001
From: Tobias Reisinger <tobias@msrg.cc>
Date: Fri, 10 Jan 2025 01:47:04 +0100
Subject: [PATCH 2/2] Update modules

---
 common     | 2 +-
 controller | 2 +-
 core       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/common b/common
index 41cc9e0..066e9f7 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 41cc9e0622b69868eb13db843b1323337cb7a544
+Subproject commit 066e9f7bf8e9379b22ccfc6ab7c3f18013fa561f
diff --git a/controller b/controller
index 5ee542b..83440bd 160000
--- a/controller
+++ b/controller
@@ -1 +1 @@
-Subproject commit 5ee542b44b3c7f1d1d59a4dfe7cb0679d44e0f3f
+Subproject commit 83440bdb8f9b1fd7a75fda7f4a16833dd6624668
diff --git a/core b/core
index 0b74f35..892786d 160000
--- a/core
+++ b/core
@@ -1 +1 @@
-Subproject commit 0b74f358d578c10b2c8da670293da37f0ffe30e4
+Subproject commit 892786d2f39550183b99859bcc20569b26f8c3a6