112 lines
3.1 KiB
Markdown
112 lines
3.1 KiB
Markdown
# Really Simple BBS
|
|
|
|
A message board for packet radio, suitable for use with ax25d.
|
|
|
|
Really Simple BBS (`rsbbs`) implements a bulletin board system that enables
|
|
radio amateurs to read and store messages at your station. It is similar to the
|
|
PBBS function of popular Kantronics TNCs, and it uses similar commands (`B`,
|
|
`J`, `K`, `L`, `R`, `S`, `H`, etc.).
|
|
|
|
It is designed to run on a linux system when called by `ax25d`. That is, when a
|
|
user calls your station, `ax25d` answers the call and routes the connection to
|
|
`rsbbs` via standard input (`stdin`). `rsbbs` responds to the user through
|
|
`ax25d` via standard output (`stdout`).
|
|
|
|
## Requirements
|
|
|
|
In general, you need a linux system with ax25d configured and working. This is
|
|
a python 3 application, so you will need python 3 also.
|
|
|
|
## Installation
|
|
|
|
Until I publish this thing to PyPI, you can clone it and build it yourself:
|
|
|
|
1. Clone the repo to a reasonable location.
|
|
2. `cd` to the repo directory
|
|
3. Run `python3 -m pip build .`
|
|
4. Run `python3 -m pip install .`
|
|
5. Run `rsbbs -h` to test installation and create config and data files.
|
|
|
|
## Configuration
|
|
|
|
By default, the `config.yaml` file lives in your system's user config
|
|
directory, such as `~/.config/rsbbs/config.yaml`.
|
|
|
|
To use a `config.yaml` file from a different location, use the `-f` option:
|
|
```
|
|
rsbbs -f ~/config.yaml -s KI5QKX
|
|
```
|
|
|
|
If this file is missing, `rsbbs` will create it.
|
|
|
|
The `config.yaml` file is pretty simple and self-explanatory for now.
|
|
|
|
## Usage
|
|
|
|
### With ax25d
|
|
|
|
Assuming you have `ax25d` working on your system, add something like the
|
|
following to your `ax25d.conf` file:
|
|
|
|
```
|
|
[KI5QKX-10 via vhf0]
|
|
default * * * * * * * root /usr/local/bin/rsbbs rsbbs -s %U
|
|
```
|
|
|
|
Notes:
|
|
- The installation path may vary on your system.
|
|
- Be sure to specify the `-s %U` parameters; this passes the ax.25 caller's
|
|
callsign to the `rsbbs` application.
|
|
|
|
See the ax25d man page for more details.
|
|
|
|
### Directly
|
|
|
|
You can also run it directly, for administration purposes or just to talk to
|
|
yourself. It will not accept calls when run without ax25d.
|
|
|
|
```
|
|
rsbbs -s URCALL
|
|
```
|
|
|
|
### Options
|
|
|
|
Run `sbbs -h` to see the following help:
|
|
|
|
```
|
|
usage: rsbbs [-h] [-d] -s CALLING_STATION [-f CONFIG_FILE] [-v]
|
|
|
|
options:
|
|
-h, --help show this help message and exit
|
|
-d, --debug Enable debugging output to stdout
|
|
-s CALLING_STATION, --calling-station CALLING_STATION
|
|
The callsign of the calling station
|
|
-f CONFIG_FILE, --config-file CONFIG_FILE
|
|
specify path to config.yaml file
|
|
-v, --version show program's version number and exit
|
|
```
|
|
|
|
## Operation
|
|
|
|
Check out the [sample transcript](sample_transcript.txt) for a look at how it
|
|
works.
|
|
|
|
## Development
|
|
|
|
In general, on a macOS or linux system:
|
|
1. Clone the repository
|
|
2. `cd` to the working directory
|
|
3. Create a venv
|
|
4. Install it in "editable" mode with `pip install -e .`
|
|
|
|
## Contributing
|
|
|
|
1. Fork it (<https://git.b-wells.us/jmbwell/rsbbs>)
|
|
2. Create your feature branch (`git checkout -b feature/fooBar`)
|
|
3. Commit your changes (`git commit -am 'add some fooBar'`)
|
|
4. Push to the branch (`git push origin feature/fooBar`)
|
|
5. Create a new pull request
|
|
|
|
## License
|
|
|
|
GPLv3. |