You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+106Lines changed: 106 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,109 @@ An APRS Backend for Errbot
8
8
- Python >= 3.11
9
9
10
10
Will probably work on Python 3.10 and higher, but the backend is only currently tested against 3.11.
11
+
12
+
## Disclaimers ahead of time
13
+
14
+
You should probably only run this bot backend if you are a licensed Amateur radio operator. The bot itself does nothing
15
+
to check if your call is valid besides the basic "authorization" that APRSIS does. Use this bot responsibly.
16
+
17
+
Anything the bot sends could go out over the airwaves and you are responsible for that, not the backend developers. The bot
18
+
makes an attempt to filter out profanity, but that can be turned off (see config options). It is a very US English-centric filter.
19
+
20
+
## Why Errbot and APRS
21
+
22
+
There are already a few other bot frameworks out there for APRS. For example, there's [APRSD](https://github.com/craigerl/aprsd)
23
+
which is very full featured.
24
+
25
+
The errbot-aprs-backend was created to give another bot option for APRS users. Diversity is good!
26
+
27
+
By using [errbot](https://errbot.readthedocs.io/en/latest/), APRS users can now get access to the errbot [ecosystem](https://pypi.org/search/?q=errbot) of [plugins](https://github.com/topics/errbot-plugins) and [storage plugins](https://errbot.readthedocs.io/en/latest/user_guide/storage_development/index.html). Errbot offers a robust, well-documented [plugin framework](https://errbot.readthedocs.io/en/latest/user_guide/plugin_development/index.html) for building out new APRS apps.
28
+
29
+
## Current Status
30
+
31
+
Beta.
32
+
33
+
* Only APRSIS is implemented.
34
+
* Messages can be recieved and replied to.
35
+
* You can expect reasonable reliablity but might hit crashes and need to file github issues.
36
+
37
+
## Quickstart
38
+
39
+
1. Setup a virtualenv using python 3.11
40
+
1. Install errbot
41
+
1. Install errbot-aprs-backend from pypi or from Github
42
+
1. Configure your bot using the suggested config
43
+
1. Pre-install your plugins
44
+
1. Run your bot with `errbot`
45
+
46
+
The [Errbot Setup guide](https://errbot.readthedocs.io/en/latest/user_guide/setup.html#) has more details on how to install and run Errbot, administration tips, and more.
47
+
48
+
## Suggested Config
49
+
50
+
APRS messaging works quite a bit differently from the average Errbot backend. This requires some diferent config from the average Errbot installation
51
+
52
+
APRS messaging is "unauthenticated". There is no way to attest you are who you say you are and all messaging is in the open, so using passcodes or keys
53
+
to authenticate an admin is not suggested.
54
+
55
+
APRS messaging order is not guaranteed, nor is message delivery. The backend will automatically retry message delivery up to APRS_MESSAGE_MAX_RETRIES (default 7) unless it gets an ACK or a REJ from the recipient.
56
+
57
+
APRS messaging is limited to 67 characters. This makes long messages impractical.
58
+
59
+
### Required Config
60
+
61
+
```python
62
+
# Set the backend to APRS
63
+
BACKEND="APRS"
64
+
65
+
# use bot_identity to provide your callsign and APRS password
66
+
BOT_IDENTITY= {
67
+
"callsign": "YOURCALL-1",
68
+
"password": "123456"
69
+
}
70
+
```
71
+
72
+
### Disable the default plugins
73
+
74
+
The default plugins allow configuring the bot, installing plugins, and returing detailed help information. These don't work well over APRS because
75
+
you cannot authenticate an admin. You don't want just anyone able to install a plugin on your machine!
76
+
77
+
The backend has a built in Help that you can set to a static string in the config with APRS_HELP_TEXT. Setting this to a website with help info
78
+
or more info about your bot would be a good way to send a user more details on your bot without needing to send Errbot's normal detailed help info.
79
+
80
+
```python
81
+
CORE_PLUGINS= ()
82
+
```
83
+
84
+
85
+
### Disable command not found
86
+
87
+
The command not found filter can get very chatty, responding to every message your bot receives. Disabling it will save on APRS bandwidth.
88
+
89
+
```python
90
+
SUPPRESS_CMD_NOT_FOUND=True
91
+
```
92
+
93
+
### Bot Prefix
94
+
You can leave your bot prefix on, but that's just extra characters. I prefer to make it optional so users don't have to
95
+
send it on every commadn
96
+
97
+
```python
98
+
BOT_PREFIX_OPTIONAL_ON_CHAT=True
99
+
```
100
+
101
+
### Full Example Config
102
+
103
+
See [examples/example_config.py](./examples/example_config.py) for a full config with all possible values.
104
+
105
+
106
+
## Plugin Suggestions
107
+
108
+
Simple plugins are going to work best, or [write your own](https://errbot.readthedocs.io/en/latest/user_guide/plugin_development/index.html)!
109
+
110
+
111
+
# TODO
112
+
113
+
* Figure out how to get storage like a plugin and use it to store the packet caches
114
+
* Figure out a blocklist system
115
+
* figure out how admins can configure without stopping the bot - web interface of some sort
0 commit comments