diff --git a/synchronet/README.md b/synchronet/README.md new file mode 100644 index 0000000..9b3a6d0 --- /dev/null +++ b/synchronet/README.md @@ -0,0 +1,158 @@ +# Synchronet BBS - Legend of the Red Dragon + +This is a Synchronet BBS instance configured to host Legend of the Red Dragon (LORD) and other classic BBS door games. + +## Features + +- **Web-based terminal access** via fTelnet (your friends can play in a browser!) +- **Classic telnet access** on port 23 +- **SSH access** on port 2222 +- **LORD (Legend of the Red Dragon)** - JavaScript port included with Synchronet +- Additional door games available through Synchronet's xtrn system + +## Initial Setup + +### 1. First Run - Initialize Configuration + +```bash +cd /home/poprhythm/docker-infrastructure/synchronet +docker compose up -d +# Wait a few seconds for initialization +docker compose down +sudo chmod -R a+rwX /srv/synchronet +``` + +### 2. Run Configuration Program + +Configure your BBS name, sysop info, and enable LORD: + +```bash +docker exec -it synchronet scfg +``` + +In the configuration menu: +- Navigate to **System** → Set your BBS name and sysop information +- Navigate to **External Programs** → **Online Programs (Doors)** → **Available Online Programs** +- Look for LORD or add it if not already configured +- Save and exit (ESC to go back, then save when prompted) + +### 3. Enable LORD Door Game + +LORD comes with Synchronet as a JavaScript implementation. To enable it: + +```bash +# Connect to the container +docker exec -it synchronet bash + +# Run the install script for LORD +cd /sbbs +./exec/jsexec /sbbs/xtrn/install-xtrn.js lord + +# Exit the container +exit +``` + +Alternatively, you can manually configure LORD through scfg: +- **External Programs** → **Online Programs** → **Main** section +- Add new program with: + - **Name**: Legend of the Red Dragon + - **Internal Code**: LORD + - **Start-up Directory**: ../xtrn/lord + - **Command Line**: ?lord.js + +### 4. Restart the BBS + +```bash +docker compose restart +``` + +## Access Methods + +### Web Browser (Recommended for friends) + +After setting up nginx-proxy-manager: +- Navigate to `https://bbs.kolpacksoftware.com` (or your chosen domain) +- Use the fTelnet web interface to connect +- Direct websocket URLs: + - WS: `ws://your-domain:1123` + - WSS: `wss://your-domain:11235` + +### Direct Telnet + +```bash +telnet your-server.com 23 +``` + +### SSH + +```bash +ssh -p 2222 new@your-server.com +``` + +## nginx-proxy-manager Configuration + +Configure in NPM web interface: + +1. **Proxy Host for Web Interface**: + - Domain: `bbs.kolpacksoftware.com` (or your choice) + - Forward Hostname/IP: `synchronet` (container name) + - Forward Port: `80` + - Enable SSL certificate + +2. **Proxy Host for WebSocket Terminal** (optional, for secure WSS): + - Domain: `bbs-term.kolpacksoftware.com` + - Forward Hostname/IP: `synchronet` + - Forward Port: `11235` + - Enable **WebSocket Support** + - Enable SSL certificate + +## File Locations + +- **Config**: `/srv/synchronet/ctrl/` +- **Door games**: `/srv/synchronet/xtrn/` +- **Web files**: `/srv/synchronet/web/` +- **User data**: `/srv/synchronet/data/` + +## Troubleshooting + +### Check logs + +```bash +docker compose logs -f +``` + +### Access container shell + +```bash +docker exec -it synchronet bash +``` + +### Reset permissions + +```bash +sudo chmod -R a+rwX /srv/synchronet +``` + +### LORD not appearing + +1. Check that LORD is enabled in scfg under External Programs +2. Verify the command line is set correctly +3. Check `/srv/synchronet/xtrn/lord/` exists and has the game files + +## Additional Door Games + +Synchronet includes many door games and can run DOS doors through DOSEMU. Popular ones included: +- **LORD** (Legend of the Red Dragon) +- **TradeWars 2002** +- **BRE (Barren Realms Elite)** +- **Usurper** + +Install additional doors through scfg or the install-xtrn.js script. + +## Sources & Documentation + +- [Synchronet Docker GitHub](https://github.com/bbs-io/synchronet-docker) +- [Synchronet Wiki - Door Installation](http://wiki.synchro.net/howto:door:index) +- [Synchronet Wiki - LORD Setup](http://wiki.synchro.net/howto:door:lord) +- [fTelnet Web Terminal](https://www.ftelnet.ca/) +- [LORD Online](https://lord.stabs.org/) diff --git a/synchronet/docker-compose.yaml b/synchronet/docker-compose.yaml new file mode 100644 index 0000000..1a7b47f --- /dev/null +++ b/synchronet/docker-compose.yaml @@ -0,0 +1,29 @@ +services: + synchronet: + image: bbsio/synchronet:3.19c + container_name: synchronet + restart: unless-stopped + networks: + - npm-network + ports: + # Web interfaces + - "8023:80" # HTTP web interface + - "8443: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 + +networks: + npm-network: + external: true