This commit is contained in:
chk
2026-06-10 07:08:17 +02:00
parent 78185b8bdb
commit 9274b2c52a
2 changed files with 314 additions and 0 deletions

View File

@@ -0,0 +1,314 @@
services:
appRobotGuacamole:
image: abesnier/guacamole:latest
container_name: appRobot_guacamole
ports:
- "8080:8080"
volumes:
- /home/chk/Documents/appServerInstallation/guacamole/config:/config/guacamole
- /home/chk/Documents/appServerInstallation/guacamole/postgres:/config/postgres
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- default
appRobotDriver:
container_name: appRobot_Driver
image: node:24-alpine
working_dir: /usr/src/app
volumes:
- /home/chk/Documents/appRobotDriver:/usr/src/app
command: npm start
restart: unless-stopped
environment:
- NODE_ENV=development
- NODE_OPTIONS=--inspect=0.0.0.0:2081
- GRBL_BASE_IP=192.168.0.183
- GRBL_ELLBOW_IP=192.168.0.202
- GRBL_HAND_IP=192.168.0.250
- ROBOT_SPEED_MODE=correct
ports:
- "2098:2098"
- "2081:2081"
networks:
- default
appRobotSimulation:
container_name: appRobot_Simulation
image: node:24-alpine
working_dir: /usr/src/app
volumes:
- /home/chk/Documents/appRobotSimulation:/usr/src/app
environment:
- TARGET_SERVER=wss://appRobot_Driver:2095
command: npm start
restart: unless-stopped
ports:
- "1003:1003"
networks:
- default
appRobotControl:
image: node:24-alpine
container_name: appRobot_Control
working_dir: /app
command: sh -c "npm install && node --inspect=0.0.0.0:9229 3DInput.js"
ports:
- "10010:10010"
- "9229:9229"
volumes:
- /home/chk/Documents/appRobotControl:/app
environment:
#- NODE_ENV=production
- NODE_ENV=development # mit debugging
- TARGET_SERVER=wss://appRobot_Driver:2095
depends_on:
- appRobotDriver
restart: unless-stopped
appRobotHoming:
image: node:24-alpine
container_name: appRobot_Homing
working_dir: /app
volumes:
- /home/chk/Documents/appRobotHoming:/app
- /home/chk/Documents/AppRobotVideo/public/snapshots:/app/public/snapshots
environment:
- WSS_VIDEO_DRIVER=wss://localhost:8448
- WSS_URL=wss://appRobot_Driver:2095
- HTTPS_PORT=2093
- WEBCAM_URL=http://appRobotWebcam:8444
- BODYTRACKER_URL=http://appRobotBodyTracker:8446
ports:
- "2093:2093"
depends_on:
- appRobotDriver
command: >
/bin/sh -lc "npm ci || npm install && node server/server.js"
networks:
- default
restart: unless-stopped
# appRobotDirectBase:
# image: node:20-bullseye
# container_name: appRobot_DirectBase
# network_mode: host
# working_dir: /app
# volumes:
# - /home/chk/Documents/appRobotDirectControlBase:/app
# environment:
# - FluidNcHost=192.168.0.183
# - FluidNcPort=80
# - PORT=2098
# ports:
# - "2098:2098"
# command: >
# /bin/bash -lc "
# npm ci || npm install &&
# node server/server.js
# "
# restart: unless-stopped
appRobot_Tunnel:
image: alpine:latest
container_name: appRobot_Tunnel
restart: unless-stopped
environment:
- TZ=Europe/Zurich
volumes:
- /home/chk/Documents/AppServerPortalUI/.ssh:/root/.ssh:ro
command: >
/bin/sh -c "
apk add --no-cache openssh-client autossh &&
autossh -M 0 -N -o StrictHostKeyChecking=no \
-i /root/.ssh/id_ed25519 \
-o StrictHostKeyChecking=no \
-o ServerAliveInterval=60 \
-o ServerAliveCountMax=10 \
-o ExitOnForwardFailure=yes \
-N \
-R 0.0.0.0:9703:portainer:9000 \
-R 0.0.0.0:9710:appRobot_Control:10010 \
-R 0.0.0.0:9798:appRobot_Driver:2098 \
-R 0.0.0.0:9712:appRobot_Simulation:1003\
-R 0.0.0.0:9743:AppRobotWebcam:8444 \
-R 0.0.0.0:9780:appRobot_guacamole:8080 \
-R 0.0.0.0:9793:appRobot_Homing:2093 \
-R 0.0.0.0:9725:appRobot_AccessBase:443 \
-R 0.0.0.0:9726:appRobot_AccessEllbow:443 \
-R 0.0.0.0:9727:appRobot_AccessHand:443 \
-R 0.0.0.0:9744:appRobot_CodeServer:8443 \
tunnel@server.schooltech.ch -p 2255
"
cloudflared:
image: cloudflare/cloudflared:latest
container_name: appServer_cloudflare
command: tunnel --no-autoupdate run --token eyJhIjoiOWUyYzk0OTI1ZWVlNmE4NjRiZjllZGRiM2ZmMDRmMTUiLCJ0IjoiZDc2YzI2MjAtZGE0ZC00OTJmLWI5YjgtODNjMjgwNjQ5MTFlIiwicyI6IllUbGpPREJtTURndFpHSTVZUzAwWkRnekxXRTRNek10TXpaaE56WTBabUpsT1RBMSJ9
# networks:
# - default
# - appRobotNet
restart: unless-stopped
appRobot_nextcloud_db:
image: mariadb:latest
container_name: appRobot_nextcloud_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: KantiWattwilABC
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: KantiABC122nextcloudX3!
volumes:
- /home/chk/Documents/appRobotNextCloud/db:/var/lib/mysql
appRobot_nextcloud:
image: nextcloud:latest
container_name: appRobot_nextcloud
restart: unless-stopped
environment:
MYSQL_PASSWORD: KantiABC122nextcloudX3!
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_HOST: appRobot_nextcloud_db
volumes:
- /home/chk/Documents/appRobotNextCloud/nextcloud:/var/www/html
- /home/chk/Documents:/mnt/server:rw
depends_on:
- appRobot_nextcloud_db
ports:
- "9183:80"
appRobot_AccessBase:
image: node:20-bullseye
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
container_name: appRobot_AccessBase
working_dir: /app
volumes:
- /home/chk/Documents/appRobotControlScara:/app
environment:
- FluidNcHost=192.168.0.183 #fluidncbase.local
- FluidNcPort=80
- PORT=443
command: >
/bin/bash -lc "
npm ci || npm install &&
node server/server.js
"
restart: unless-stopped
appRobot_AccessEllbow:
image: node:20-bullseye
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
container_name: appRobot_AccessEllbow
working_dir: /app
volumes:
- /home/chk/Documents/appRobotControlScara:/app
environment:
- FluidNcHost=192.168.0.202 #fluidncellbow.local
- FluidNcPort=80
- PORT=443
command: >
/bin/bash -lc "
npm ci || npm install &&
node server/server.js
"
restart: unless-stopped
appRobot_AccessHand:
image: node:20-bullseye
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
container_name: appRobot_AccessHand
working_dir: /app
volumes:
- /home/chk/Documents/appRobotControlScara:/app
environment:
- FluidNcHost=192.168.0.250 #fluidnchand.local
- FluidNcPort=80
- PORT=443
command: >
/bin/bash -lc "
npm ci || npm install &&
node server/server.js
"
restart: unless-stopped
appRobot_CodeServer:
image: lscr.io/linuxserver/code-server
container_name: appRobot_CodeServer
restart: unless-stopped
environment:
PUID: "1000"
PGID: "1000"
TZ: "Europe/Rome"
AUTH: "none"
PASSWORD: "Albula60"
ports:
- "9743:8443"
volumes:
- /home/chk/Documents/appRobotDriver:/workspace/appRobotDriver
- /home/chk/Documents/appRobotHoming:/workspace/appRobotHoming
- /home/chk/Documents/appRobotControl:/workspace/appRobotControl
- /home/chk/Documents/AppRobotVideo/public/snapshots:/workspace/appRobotHoming/public/snapshots
working_dir: /workspace
yolo:
image: ultralytics/ultralytics:latest
container_name: appRobot_Yolo
working_dir: /app
volumes:
- /home/chk/Documents/appRobotYolo:/app
- /home/chk/Documents/AppRobotVideo/public/snapshots:/snapshots
command: python watcher.py
restart: unless-stopped
webcam:
build:
context: /tmp
dockerfile_inline: |
FROM node:lts-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
EXPOSE 8444
image: approbotwebcam:latest
container_name: AppRobotWebcam
restart: unless-stopped
# 8444 am Host veröffentlicht → direkter LAN-Zugriff (http://<host>:8444) bleibt.
# Wenn ALLES über den Proxy läuft, diesen ports-Block entfernen → proxy-only.
ports:
- "8444:8444"
command: sh -c "npm install --omit=dev && node server.js"
volumes:
- ${APP_PATH:-.}:/usr/src/app
devices:
# by-id (Host) → /dev/videoN (Container) stabil über Reboots und USB-Re-Plugs.
# Rechte Seite = Pfad den cameras.json + FFmpeg im Container sehen.
- /dev/v4l/by-id/usb-046d_0825_3BB3FE20-video-index0:/dev/video0 # cam0 C270 (046d:0825)
- /dev/v4l/by-id/usb-046d_081b_342D4F40-video-index0:/dev/video2 # cam1 C270 (046d:081b)
- /dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_9C5591DF-video-index0:/dev/video4 # cam2 C920
group_add:
- video
environment:
- NODE_ENV=production
- PORT=8444
networks:
default:
driver: bridge