diff --git a/kontor-vue/Containerfile b/kontor-vue/Containerfile new file mode 100644 index 0000000..f139489 --- /dev/null +++ b/kontor-vue/Containerfile @@ -0,0 +1,14 @@ +FROM node:22.18.0-bookworm-slim AS build +WORKDIR /app +ENV PATH=/app/node_modules/.bin:$PATH +COPY package.json /app/package.json +RUN npm install +RUN npm install -g @vue/cli +COPY . /app +RUN npm run build + +FROM nginx:1.29.0-alpine +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] + diff --git a/kontor-vue/package-lock.json b/kontor-vue/package-lock.json index 8cfbbd9..a7c64b4 100644 --- a/kontor-vue/package-lock.json +++ b/kontor-vue/package-lock.json @@ -72,6 +72,31 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -79,6 +104,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -97,7 +123,6 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.2.0.tgz", "integrity": "sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==", "license": "MIT", - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "7.2.0" }, @@ -1312,7 +1337,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -1528,7 +1552,6 @@ "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", @@ -1606,7 +1629,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.32.tgz", "integrity": "sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.32", "@vue/compiler-sfc": "3.5.32", diff --git a/script/setup b/script/setup index f77d911..68f0e68 100755 --- a/script/setup +++ b/script/setup @@ -229,7 +229,7 @@ else podman run -d \ --replace \ --pod kontor \ - --name kontor-javalin \ + --name kontor-vue \ --label "io.containers.autoupdate=local" \ --label "PODMAN_SYSTEMD_UNIT=container-kontor-vue.service" \ localhost/kontor-vue:0.3.0 diff --git a/service/container-activemq.service b/service/container-activemq.service new file mode 100644 index 0000000..21aeef2 --- /dev/null +++ b/service/container-activemq.service @@ -0,0 +1,39 @@ +# container-activemq.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-activemq.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name activemq \ + -v activemq-data:/var/lib/artemis-instance docker.io/apache/activemq-artemis:latest-alpine +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-adminer.service b/service/container-adminer.service new file mode 100644 index 0000000..dd33456 --- /dev/null +++ b/service/container-adminer.service @@ -0,0 +1,38 @@ +# container-adminer.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-adminer.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name adminer docker.io/library/adminer +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-api.service b/service/container-kontor-api.service new file mode 100644 index 0000000..ee7643e --- /dev/null +++ b/service/container-kontor-api.service @@ -0,0 +1,43 @@ +# container-kontor-api.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-api.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-api \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-api.service "--health-cmd=curl -f http://kontor-api:8200/health || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 localhost/kontor-api:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-echo.service b/service/container-kontor-echo.service new file mode 100644 index 0000000..3bee468 --- /dev/null +++ b/service/container-kontor-echo.service @@ -0,0 +1,43 @@ +# container-kontor-echo.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-echo.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-echo \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-echo.service "--health-cmd=curl -f http://kontor-echo:8400/health || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 localhost/kontor-echo:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-fiber.service b/service/container-kontor-fiber.service new file mode 100644 index 0000000..68511ed --- /dev/null +++ b/service/container-kontor-fiber.service @@ -0,0 +1,43 @@ +# container-kontor-fiber.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-fiber.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-fiber \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-fiber.service "--health-cmd=curl -f http://kontor-echo:8500/health || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 localhost/kontor-fiber:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-javalin.service b/service/container-kontor-javalin.service new file mode 100644 index 0000000..20b1f41 --- /dev/null +++ b/service/container-kontor-javalin.service @@ -0,0 +1,43 @@ +# container-kontor-javalin.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-javalin.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-javalin \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-javalin.service "--health-cmd=curl -f http://kontor-echo:8600/health || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 localhost/kontor-javalin:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-quarkus.service b/service/container-kontor-quarkus.service new file mode 100644 index 0000000..d4bc479 --- /dev/null +++ b/service/container-kontor-quarkus.service @@ -0,0 +1,43 @@ +# container-kontor-quarkus.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-quarkus.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-quarkus \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-quarkus.service "--health-cmd=curl -f http://kontor-quarkus:8300/q/health || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 localhost/kontor-quarkus:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-kontor-spring.service b/service/container-kontor-spring.service new file mode 100644 index 0000000..bf4bee9 --- /dev/null +++ b/service/container-kontor-spring.service @@ -0,0 +1,40 @@ +# container-kontor-spring.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-kontor-spring.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name kontor-spring \ + --label io.containers.autoupdate=local \ + --label PODMAN_SYSTEMD_UNIT=container-kontor-spring.service localhost/kontor-spring:0.3.0 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/container-postgres.service b/service/container-postgres.service new file mode 100644 index 0000000..d5c9690 --- /dev/null +++ b/service/container-postgres.service @@ -0,0 +1,45 @@ +# container-postgres.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman container-postgres.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=%t/containers +BindsTo=pod-kontor.service +After=pod-kontor.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStart=/usr/bin/podman run \ + --cidfile=%t/%n.ctr-id \ + --cgroups=no-conmon \ + --rm \ + --pod-id-file %t/pod-kontor.pod-id \ + --sdnotify=conmon \ + -d \ + --replace \ + --name postgres \ + -e POSTGRES_PASSWORD=kontor \ + -e POSTGRES_DB=kontor \ + -e POSTGRES_USER=kontor \ + -v kontor-db:/var/lib/postgresql/data "--health-cmd=pg_isready -U kontor || exit 1" \ + --health-interval=1s \ + --health-timeout=5s \ + --health-retries=10 docker.io/library/postgres:17 +ExecStop=/usr/bin/podman stop \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +ExecStopPost=/usr/bin/podman rm \ + -f \ + --ignore -t 10 \ + --cidfile=%t/%n.ctr-id +Type=notify +NotifyAccess=all + +[Install] +WantedBy=default.target diff --git a/service/pod-kontor.service b/service/pod-kontor.service new file mode 100644 index 0000000..26891ca --- /dev/null +++ b/service/pod-kontor.service @@ -0,0 +1,51 @@ +# pod-kontor.service +# autogenerated by Podman 4.9.3 +# Fri Feb 6 17:23:12 CET 2026 + +[Unit] +Description=Podman pod-kontor.service +Documentation=man:podman-generate-systemd(1) +Wants=network-online.target +After=network-online.target +RequiresMountsFor=/run/user/1000/containers +Wants=container-activemq.service container-adminer.service container-kontor-api.service container-kontor-echo.service container-kontor-fiber.service container-kontor-javalin.service container-kontor-quarkus.service container-kontor-spring.service container-postgres.service +Before=container-activemq.service container-adminer.service container-kontor-api.service container-kontor-echo.service container-kontor-fiber.service container-kontor-javalin.service container-kontor-quarkus.service container-kontor-spring.service container-postgres.service + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStartPre=/usr/bin/podman pod create \ + --infra-conmon-pidfile %t/pod-kontor.pid \ + --pod-id-file %t/pod-kontor.pod-id \ + --exit-policy=stop \ + --name kontor \ + --infra \ + -p 5432:5432 \ + -p 8100:8100 \ + -p 8200:8200 \ + -p 8300:8300 \ + -p 8400:8400 \ + -p 8500:8500 \ + -p 8600:8600 \ + -p 8900:8080 \ + -p 61616:61616 \ + -p 8161:8161 \ + -p 5672:5672 \ + --network bridge \ + --replace +ExecStart=/usr/bin/podman pod start \ + --pod-id-file %t/pod-kontor.pod-id +ExecStop=/usr/bin/podman pod stop \ + --ignore \ + --pod-id-file %t/pod-kontor.pod-id \ + -t 10 +ExecStopPost=/usr/bin/podman pod rm \ + --ignore \ + -f \ + --pod-id-file %t/pod-kontor.pod-id +PIDFile=%t/pod-kontor.pid +Type=forking + +[Install] +WantedBy=default.target