Add terminal session management with heartbeat monitoring, idle timeout detection, session reuse logic, and command history panel UI with search and filtering capabilities
Tests / Backend Tests (Python) (3.10) (push) Has been cancelled
Tests / Backend Tests (Python) (3.11) (push) Has been cancelled
Tests / Backend Tests (Python) (3.12) (push) Has been cancelled
Tests / Frontend Tests (JS) (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / All Tests Passed (push) Has been cancelled
Tests / Backend Tests (Python) (3.10) (push) Has been cancelled
Tests / Backend Tests (Python) (3.11) (push) Has been cancelled
Tests / Backend Tests (Python) (3.12) (push) Has been cancelled
Tests / Frontend Tests (JS) (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / All Tests Passed (push) Has been cancelled
This commit is contained in:
@@ -51,3 +51,39 @@ NTFY_MSG_TYPE=ALL
|
||||
JWT_SECRET_KEY=votre-clé-secrète-production
|
||||
# JWT_EXPIRE_MINUTES pour la durée de la session
|
||||
JWT_EXPIRE_MINUTES=1440 # 24h par défaut
|
||||
|
||||
# ===== TERMINAL SSH WEB =====
|
||||
# Session TTL in minutes (default: 30)
|
||||
TERMINAL_SESSION_TTL_MINUTES=30
|
||||
|
||||
# Maximum active sessions per user (default: 3)
|
||||
TERMINAL_MAX_SESSIONS_PER_USER=3
|
||||
|
||||
# Idle timeout - sessions without heartbeat for this long are closed (default: 120s)
|
||||
TERMINAL_SESSION_IDLE_TIMEOUT_SECONDS=120
|
||||
|
||||
# Heartbeat interval - how often client should send heartbeat (default: 15s)
|
||||
TERMINAL_HEARTBEAT_INTERVAL_SECONDS=15
|
||||
|
||||
# GC interval - how often to run garbage collection (default: 30s)
|
||||
TERMINAL_GC_INTERVAL_SECONDS=30
|
||||
|
||||
# Port range for ttyd instances (default: 7680-7700)
|
||||
TERMINAL_PORT_RANGE_START=7680
|
||||
TERMINAL_PORT_RANGE_END=7700
|
||||
|
||||
# ttyd bind interface (important for WSL/remote access). Example: eth0
|
||||
# If omitted, the app defaults to eth0 when WSL is detected.
|
||||
# TERMINAL_TTYD_INTERFACE=eth0
|
||||
|
||||
# SSH user for terminal connections (default: automation)
|
||||
TERMINAL_SSH_USER=automation
|
||||
|
||||
# Path to ttyd binary (default: ttyd - uses PATH)
|
||||
# TTYD_PATH=/usr/bin/ttyd
|
||||
|
||||
# SSH key path for terminal connections (optional, uses SSH_KEY_PATH if not set)
|
||||
# TERMINAL_SSH_KEY_PATH=/path/to/id_rsa
|
||||
|
||||
# Command history retention in days
|
||||
TERMINAL_COMMAND_RETENTION_DAYS=30
|
||||
+11
-1
@@ -21,7 +21,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
sshpass \
|
||||
ansible \
|
||||
ansible-lint \
|
||||
ttyd \
|
||||
git \
|
||||
curl \
|
||||
libjpeg62-turbo \
|
||||
@@ -32,6 +31,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& apt-get clean
|
||||
|
||||
ARG TTYD_VERSION=1.7.7
|
||||
RUN set -eux; \
|
||||
arch="$(dpkg --print-architecture)"; \
|
||||
case "$arch" in \
|
||||
amd64) ttyd_arch="x86_64" ;; \
|
||||
arm64) ttyd_arch="aarch64" ;; \
|
||||
*) echo "Unsupported architecture for ttyd: $arch" >&2; exit 1 ;; \
|
||||
esac; \
|
||||
curl -fsSL -o /usr/local/bin/ttyd "https://github.com/tsl0922/ttyd/releases/download/${TTYD_VERSION}/ttyd.${ttyd_arch}"; \
|
||||
chmod +x /usr/local/bin/ttyd
|
||||
|
||||
# Création du répertoire SSH et configuration
|
||||
RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
|
||||
|
||||
|
||||
Reference in New Issue
Block a user