gBBS/README.md
2024-07-15 20:55:11 -06:00

2.4 KiB

GBBS (Go Bulletin Board System)

GBBS is a modern implementation of a classic Bulletin Board System (BBS) written in Go. It provides a nostalgic interface with modern backend technologies, supporting Telnet, SSH, and Web access.

Features

  • Multi-protocol support: Telnet, SSH, and Web
  • User authentication and registration
  • Message board functionality
  • ANSI color support for Telnet and SSH clients
  • Customizable welcome screen
  • SQLite database for user management
  • Concurrent connections handling

Getting Started

Prerequisites

  • Go 1.16 or later
  • SQLite

Installation

  1. Clone the repository:

    git clone https://github.com/strangeprogram/gbbs.git
    cd gbbs
    
  2. Install dependencies:

    go mod tidy
    
  3. Create a config.json file in the project root:

    {
        "telnet_port": 2323,
        "ssh_port": 2222,
        "web_port": 8080,
        "guestbook_path": "guestbook.txt",
        "web_root": "web",
        "welcome_screen_path": "welcome.ans"
    }
    
  4. Create a welcome.ans file with your desired ANSI art welcome screen.

Running the BBS

To run the BBS in debug mode:

go run cmd/gbbs/main.go --debug

To compile and run:

go build -o gbbs cmd/gbbs/main.go
./gbbs

Connecting to the BBS

  • Telnet: telnet localhost 2323
  • SSH: ssh localhost -p 2222
  • Web: Open a browser and navigate to http://localhost:8080

Version History

  • v0.1: Initial implementation with basic Telnet support
  • v0.2: Added SSH support
  • v0.3: Implemented web interface
  • v0.4: Added user authentication and registration
  • v0.5: Introduced message board functionality
  • v0.6: Improved ANSI color support and welcome screen customization
  • v0.7: Fixed SSH input handling issues

TODO

  • Implement IRC link integration
  • Add file transfer capabilities
  • Create a more robust web interface
  • Implement user roles and permissions
  • Add support for multiple message boards/forums
  • Implement private messaging between users
  • Create a plugin system for easy feature extensions
  • Add support for external authentication methods (e.g., OAuth)
  • Implement a basic game or interactive feature
  • Create a telnet/SSH client specifically designed for this BBS

License

This project is licensed under the GNU License - see the LICENSE file for details.

Acknowledgments

  • MysticBBS | Oblivion/v2
  • BBS
  • archive the dream