![]() |
||
---|---|---|
cmd/gbbs | ||
internal | ||
LICENSE | ||
README.md | ||
config.json | ||
guestbook.txt | ||
welcome.ans |
README.md
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
-
Clone the repository:
git clone https://github.com/strangeprogram/gbbs.git cd gbbs
-
Install dependencies:
go mod tidy
-
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" }
-
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