HOST=0.0.0.0 PORT=22 # Playback settings # Playthroughs before the session is closed (0, unlimited). MAX_LOOP=5 # Whether to keep looping the same frame set or pick a random one after each # playthrough. Options: loop | random PLAYBACK_MODE=random # Let viewers switch frame sets with arrow keys. ALLOW_USER_CONTROL=true # Minimum ms between arrow-key switches SWITCH_DEBOUNCE_MS=500 # Pause in ms after the fake login before playback starts. LOGIN_DELAY=3000 # ASCII rendering (applied live) # CHARSET: detailed | standard | simple | blocks, or a custom ramp string. CHARSET=blocks # Pixels darker than this (0-100) render as the darkest ramp character. BRIGHTNESS_THRESHOLD=40 # Invert the brightness ramp (for light terminal backgrounds). INVERT=false # Always render grayscale, even for clients that support color. FORCE_GRAYSCALE=false # Max rendered width/height in characters. MAX_DIMENSION=512 # Max rendered area (columns x rows); larger terminals are scaled down. MAX_TERMINAL_CELLS=256000 # Memory budget in MB for the rendered-frame cache (0 disables caching). RENDER_CACHE_MB=256 # Go soft memory limit; set below your container limit to avoid OOM kills. GOMEMLIMIT=1GiB # Docker Compose container memory limit. Leave headroom for mapped frame files. MEMORY_LIMIT=2g # Connection limits. New connections over a limit are dropped immediately. # Max simultaneous connections from a single client IP. MAX_CONNECTIONS=10 # Max simultaneous connections across all clients combined. MAX_TOTAL_CONNECTIONS=1000 # Login attempts allowed per connection before it is disconnected. # (Empty password counts as an attempt.) MAX_AUTH_ATTEMPTS=3 # SSH handshake deadline in ms (0 to disable). HANDSHAKE_TIMEOUT=30000 # Maximum session lifetime in ms (0 to disable). SESSION_TIMEOUT=600000 # Log attempted usernames/passwords. LOG_CREDENTIALS=true # Minimum log level to emit: debug | info | warn | error LOG_LEVEL=info