Files
appRobotDriver/appRobot_full_portainer_Stack.yaml
2026-06-10 07:08:17 +02:00

315 lines
9.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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