2024-07-16 02:55:11 +00:00
# GBBS (Go Bulletin Board System)
2024-07-16 02:50:47 +00:00
2024-07-16 02:55:11 +00:00
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:
```json
{
"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 ](LICENSE ) file for details.
## Acknowledgments
- MysticBBS | Oblivion/v2
- BBS
- archive the dream