services: synchronet: image: bbsio/synchronet:3.19c container_name: synchronet restart: unless-stopped networks: - npm-network ports: # Web interfaces - "8023:80" # HTTP web interface - "8444:443" # HTTPS web interface # Terminal access - "23:23" # Telnet - "2222:22" # SSH (using 2222 to avoid conflict with host SSH) # Web-based terminal (fTelnet) - "1123:1123" # WebSocket terminal (ws) - "11235:11235" # WebSocket terminal (wss) # Optional: Classic BBS protocols - "21:21" # FTP - "6667:6667" # IRC volumes: - /srv/synchronet:/sbbs-data environment: - TZ=America/New_York - SBBSCTRL=/sbbs-data/ctrl ttyd: image: tsl0922/ttyd:alpine container_name: synchronet-web-terminal restart: unless-stopped networks: - npm-network ports: - "7681:7681" environment: - TERM=ansi command: sh -c "apk add --no-cache busybox-extras pv && ttyd -W -p 7681 -t fontSize=18 -t 'titleFixed=ORMG BBS - Legend of the Red Dragon' sh -c 'telnet synchronet 23 | pv -q -L 7000'" depends_on: - synchronet networks: npm-network: external: true