services: appRobotGuacamole: image: abesnier/guacamole:latest container_name: appRobot_guacamole 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 - ROBOT_KINEMATICS=arm3segmentlinearx - ROBOT_GRBL_AUTOREPORT=true - ROBOT_GRBL_REPORT_INTERVAL=200 - FILESERVICE_URL=http://appRobot_Fileservice:2100 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 depends_on: - appRobotDriver restart: unless-stopped ports: - "1003:1003" networks: - default appRobotFileservice: container_name: appRobot_Fileservice image: node:24-alpine working_dir: /usr/src/app volumes: - /home/chk/Documents/appRobotFileservice:/usr/src/app command: sh -c "npm ci || npm install && node --inspect=0.0.0.0:2101 index.js" restart: unless-stopped environment: - NODE_ENV=development - FILE_SERVICE_PORT=2100 ports: - "2100:2100" # REST-API - "2101:2101" # node --inspect (Debug) 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:20-bullseye container_name: appRobot_Homing working_dir: /app volumes: - /home/chk/Documents/appRobotHoming:/app environment: - WSS_VIDEO_DRIVER=wss://appRobot_Webcam:8448 - WSS_URL=wss://appRobot_Driver:2095 - HTTPS_PORT=2093 - WEBCAM_URL=http://appRobot_Webcam:8444 - BODYTRACKER_URL=http://appRobotBodyTracker:8446 ports: - "2093:2093" depends_on: - appRobotDriver command: > /bin/bash -lc "apt-get update -qq && apt-get install -y --no-install-recommends python3-pip && pip3 install --quiet --no-cache-dir opencv-python-headless numpy && npm ci || npm install && node server/server.js" networks: - default 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:appRobot_Webcam: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 \ -R 0.0.0.0:7060:overleaf:80 \ tunnel@server.schooltech.ch -p 2255 " cloudflared: image: cloudflare/cloudflared:latest container_name: appServer_cloudflare command: tunnel --no-autoupdate run --token eyJhIjoiOWUyYzk0OTI1ZWVlNmE4NjRiZjllZGRiM2ZmMDRmMTUiLCJ0IjoiZDc2YzI2MjAtZGE0ZC00OTJmLWI5YjgtODNjMjgwNjQ5MTFlIiwicyI6IllUbGpPREJtTURndFpHSTVZUzAwWkRnekxXRTRNek10TXpaaE56WTBabUpsT1RBMSJ9 restart: unless-stopped 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 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 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 8424 image: approbotwebcam:latest container_name: appRobot_Webcam restart: unless-stopped ports: - "8444:8444" command: > sh -c "(apt-get update && apt-get install -y --no-install-recommends i965-va-driver libva-drm2 vainfo) || echo 'WARN: VA-Treiber-Install fehlgeschlagen – H.264 evtl. nicht verfuegbar'; npm install --omit=dev && node server.js" volumes: - /home/chk/Documents/appRobotWebcam:/usr/src/app devices: - /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 - /dev/dri:/dev/dri group_add: - video environment: - NODE_ENV=production - PORT=8444 - LIBVA_DRIVER_NAME=i965 networks: default: driver: bridge