Skip to main content

links


user(sudo -i)
adduser kiosk

sudo apt install -y curl
curl -fsSL https://www.phidgets.com/downloads/setup_linux | bash -
apt install -y libphidget22 phidget22networkserver
apt install -y libphidget22*
apt install -y phidget22*
apt install -y python3

apt install -y npm
apt install -y nodejs
systemctl enable --now phidget22networkserver
systemctl status phidget22networkserver --no-pager

#!/usr/bin/env bash
set -euo pipefail

PORT_FILE="/home/recharjme/Desktop/ports.txt"
WEB_ROOT="/home/recharjme/Desktop/APP"
DEFAULT_PHIDGET_PORT="8989"
DEFAULT_WEB_PORT="80"

PHIDGET_BIN="$(command -v phidget22networkserver || true)"
SERVICE_NAME="phidget22networkserver.service"
DROPIN_DIR="/etc/systemd/system/${SERVICE_NAME}.d"
DROPIN_FILE="${DROPIN_DIR}/override.conf"

log(){ printf '%s\n' "$*"; }

get_ports(){
  local p_port="" w_port=""
  if [[ -f "$PORT_FILE" ]]; then
    p_port="$(sed -n '1p' "$PORT_FILE" | tr -d '\r' || true)"
    w_port="$(sed -n '2p' "$PORT_FILE" | tr -d '\r' || true)"
    [[ -z "${p_port:-}" ]] && p_port="$DEFAULT_PHIDGET_PORT"
    [[ -z "${w_port:-}" ]] && w_port="$DEFAULT_WEB_PORT"
  else
    p_port="$DEFAULT_PHIDGET_PORT"
    w_port="$DEFAULT_WEB_PORT"
    mkdir -p "$(dirname "$PORT_FILE")"
  fi
  printf '%s\n%s\n' "$p_port" "$w_port" > "$PORT_FILE"
  PHIDGET_PORT="$p_port"
  WEB_PORT="$w_port"
}

ensure_phidget_server_port(){
  if [[ -z "$PHIDGET_BIN" ]]; then
    log "phidget22networkserver binary not found. Install phidget22networkserver first."; exit 1
  fi
  mkdir -p "$DROPIN_DIR"
  cat > "$DROPIN_FILE" <<EOF
[Service]
Environment=PHIDGET_PORT=${PHIDGET_PORT}
ExecStart=
ExecStart=${PHIDGET_BIN} -p \${PHIDGET_PORT}
EOF
  systemctl daemon-reload
  systemctl enable --now "$SERVICE_NAME"
  systemctl restart "$SERVICE_NAME"
}

start_web_server(){
  if [[ ! -d "$WEB_ROOT" ]]; then
    log "Web root missing: $WEB_ROOT"; mkdir -p "$WEB_ROOT"
  fi
  # kill any existing python http.server on this port
  if command -v ss >/dev/null 2>&1; then
    pids="$(ss -lptn 'sport =' ":${WEB_PORT}" | awk -F',' '/users:/ {print $2}' | sed 's/pid=//g' || true)"
    [[ -n "${pids:-}" ]] && xargs -r kill -9 <<<"$pids" || true
  fi
  nohup bash -c "cd '$WEB_ROOT'; python3 -m http.server '${WEB_PORT}'" >/var/log/kiosk_http.log 2>&1 &
}

open_browser(){
  local url="http://localhost:${WEB_PORT}"
  log "Open: ${url}"
  if command -v xdg-open >/dev/null 2>&1; then
    nohup xdg-open "$url" >/dev/null 2>&1 || true
  fi
}

main(){
  get_ports
  ensure_phidget_server_port
  systemctl status "$SERVICE_NAME" --no-pager || true
  start_web_server
  log "phidget server port: ${PHIDGET_PORT}"
  log "web server port: ${WEB_PORT}"
  log "web root: ${WEB_ROOT}"
  open_browser
}
main "$@"

 

 

root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# bash ./stack_script 
phidget22networkserver.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable phidget22networkserver
Job for phidget22networkserver.service failed because the control process exited with error code.
See "systemctl status phidget22networkserver.service" and "journalctl -xeu phidget22networkserver.service" for details.
root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# cd ./recharjme