**The current recommended way of installing FreeDMR is in docker. **
Prerequisites
Firstly, you need a system running docker. For debian-based systems, this is simple:
apt-get install docker.io
A change needs to be made to the docker config for openbridge to work correctly:
echo '{ "userland-proxy": false}' > /etc/docker/daemon.json
systemctl restart docker
Get FreeDMR
docker pull hacknix/freedmr:v1.2.1-with-proxy
Grab and edit the config file
mkdir /etc/freedmr
chmod 755 /etc/freedmr
edit /etc/freedmr/freedmr.cfg with your favourite editor:
[GLOBAL]
PATH: ./
PING_TIME: 10
MAX_MISSED: 3
USE_ACL: True
REG_ACL: PERMIT:ALL
SUB_ACL: DENY:0-1000000
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: DENY:0-79
GEN_STAT_BRIDGES: True
ALLOW_NULL_PASSPHRASE: True
ANNOUNCEMENT_LANGUAGE: en_GB
[REPORTS]
REPORT: True
REPORT_INTERVAL: 60
REPORT_PORT: 4321
REPORT_CLIENTS: *
[LOGGER]
LOG_FILE: freedmr.log
LOG_HANDLERS: file-timed
LOG_LEVEL: INFO
LOG_NAME: FreeDMR
[ALIASES]
TRY_DOWNLOAD: False
PATH: ./
PEER_FILE: peer_ids.json
SUBSCRIBER_FILE: subscriber_ids.json
TGID_FILE: talkgroup_ids.json
PEER_URL: https://www.radioid.net/static/rptrs.json
SUBSCRIBER_URL: https://www.radioid.net/static/users.json
STALE_DAYS: 7
[MYSQL]
USE_MYSQL: False
USER: hblink
PASS: mypassword
DB: hblink
SERVER: 127.0.0.1
PORT: 3306
TABLE: repeaters
[OBP-TEST]
MODE: OPENBRIDGE
ENABLED: False
IP:
PORT: 62044
NETWORK_ID: 1
PASSPHRASE: mypass
TARGET_IP:
TARGET_PORT: 62044
USE_ACL: True
SUB_ACL: DENY:1
TGID_ACL: PERMIT:ALL
RELAX_CHECKS: True
ENHANCED_OBP: True
[SYSTEM]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 1
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 54000
PASSPHRASE:
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL
DEFAULT_UA_TIMER: 999
SINGLE_MODE: True
VOICE_IDENT: True
TS1_STATIC:
TS2_STATIC:
DEFAULT_REFLECTOR: 0
GENERATOR: 100
Remember to configure the database connection
Make empty rules file
echo "BRIDGES = {}" > /etc/freedmr/rules.py
Make sure docker container can access config and rules
chown -R 54000 /etc/freedmr
Make log directory
mkdir -p /var/log/freedmr
Make logfile
touch /var/log/freedmr/freedmr.log
Make sure docker container can access logfile
chown -R 54000 /var/log/freedmr
Run docker container and check it all starts up OK
docker run --name=freedmr -d --read-only -v /etc/freedmr/freedmr.cfg:/opt/freedmr/freedmr.cfg \
-v /var/log/freedmr/freedmr.log:/opt/freedmr/freedmr.log \
-v /etc/freedmr/rules.py:/opt/freedmr/rules.py -p 62031:62031/udp -p 62036-62046:62036-62046/udp \
-p 4321:4321/tcp hacknix/freedmr:v1.2.1-with-proxy`
Hopefully this will run fine. If you have made any mistakes you may have to stop, edit config and restart.
Stop docker container
docker container stop freedmr
Remove the docker container
docker container rm freedmr
Start on boot / restart on die
docker update --restart unless-stopped freedmr
Restart the container (for example when config is changed)
docker container restart freedmr