A BBS server for Meshtastic for posting bulletins, sending mail to users, and channel directory.
Go to file
Jacek Radzikowski 8954793d11 Added gitignore
2024-06-28 01:13:15 -04:00
docker add fortunes.txt check for docker 2024-06-27 20:18:47 +02:00
.gitignore Added gitignore 2024-06-28 01:13:15 -04:00
command_handlers.py Add files via upload 2024-06-25 08:50:52 -04:00
config_init.py Update config_init.py 2024-06-25 18:15:46 -04:00
config.ini Update config.ini 2024-06-26 12:06:00 -04:00
db_operations.py Add files via upload 2024-06-25 08:50:52 -04:00
fortunes.txt Add files via upload 2024-06-25 08:50:52 -04:00
LICENSE Initial commit 2024-06-25 08:13:23 -04:00
message_processing.py Add files via upload 2024-06-25 08:50:52 -04:00
README.md mention docker image in readme.md file 2024-06-27 23:23:27 +02:00
requirements.txt Add files via upload 2024-06-25 08:50:52 -04:00
server.py Add files via upload 2024-06-25 08:50:52 -04:00
utils.py Add files via upload 2024-06-25 08:50:52 -04:00

TC²-BBS Meshtastic Version

ko-fi

This is the TC²-BBS system integrated with Meshtastic devices. The system allows for message handling, bulletin boards, mail systems, and a channel directory.

Setup

Docker installation

TC²-BBS Meshtastic is available on Docker Hub

Docker HUB

Requirements

  • Python 3.x
  • Meshtastic
  • pypubsub

Installation

  1. Clone the repository:
git clone https://github.com/TheCommsChannel/TC2-BBS-mesh.git
cd TC2-BBS-mesh
  1. Set up a Python virtual environment:
python -m venv venv
  1. Activate the virtual environment:
  • On Windows:
venv\Scripts\activate
  • On macOS and Linux:
source venv/bin/activate
  1. Install the required packages:
pip install -r requirements.txt
  1. Set up the configuration in config.ini:

[interface]

If using type = serial and you have multiple devices connected, you will need to uncomment the port = line and enter in the port of your device.

Linux Example: port = /dev/ttyUSB0

Windows Example: port = COM3

If using type = tcp you will need to uncomment the hostname = 192.168.x.x line and put in the IP address of your Meshtastic device

[sync]

Enter in a list of other BBS nodes you would like to sync messages and bulletins with. Separate each by comma and no spaces as shown in the example below. You can find the nodeID in the menu under Radio Configuration > User for each node, or use this script for getting nodedb data from a device:

Meshtastic-Python-Examples/print-nodedb.py at main · pdxlocations/Meshtastic-Python-Examples (github.com)

Example Config:

[interface]
type = serial
# port = /dev/ttyUSB0
# hostname = 192.168.x.x

[sync]
bbs_nodes = !f53f4abc,!f3abc123

Running the Server

Run the server with:

python server.py

Be sure you've followed the Python virtual environment steps above and activated it before running.

Features

  • Mail System: Send and receive mail messages.
  • Bulletin Boards: Post and view bulletins on various boards.
  • Channel Directory: Add and view channels in the directory.
  • Statistics: View statistics about nodes, hardware, and roles.
  • Wall of Shame: View devices with low battery levels.
  • Fortune Teller: Get a random fortune. Pulls from the fortunes.txt file. Feel free to edit this file remove or add more if you like.

Usage

You interact with the BBS by sending direct messages to the node that's connected to the system running the Python script. Sending any message to it will get a response with the main menu. Make selections by sending messages based on the letter or number in brackets - Send M for [M]ail Menu for example.

A video of it in use is available on our YouTube channel:

TC²-BBS-Mesh

Thanks

Big thanks to Meshtastic and pdxlocations for the great Python examples:

python/examples at master · meshtastic/python (github.com)

pdxlocations/Meshtastic-Python-Examples (github.com)

License

GNU General Public License v3.0