Compare commits
26 Commits
add-licens
...
master
Author | SHA1 | Date | |
---|---|---|---|
48a96c5548 | |||
|
848a5bf82f | ||
|
8250dc8cf3 | ||
|
78addc6cff | ||
|
d4ca078eb8 | ||
|
0610dd994d | ||
|
725a6fa66d | ||
|
a599383924 | ||
|
bef8a37adf | ||
|
6e20d7041b | ||
|
1e6bf4ac37 | ||
|
e57ef1e8ad | ||
|
446cd90be0 | ||
|
e5233c4bdb | ||
|
2a4a9af3b3 | ||
|
ca2c8da00d | ||
|
2527706f00 | ||
|
a993a1e3e1 | ||
|
1f9b9d1de3 | ||
|
03255a53e7 | ||
|
ae26428af9 | ||
|
a96c9ef3e5 | ||
|
fbbad21f9c | ||
|
7c477aecfb | ||
|
bee15195f1 | ||
|
8ddf8724dc |
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# This file is a template, and might need editing before it works on your project.
|
||||||
|
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
||||||
|
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
||||||
|
# This specific template is located at:
|
||||||
|
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
|
||||||
|
|
||||||
|
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
|
||||||
|
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
|
||||||
|
# it uses echo commands to simulate the pipeline execution.
|
||||||
|
#
|
||||||
|
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
|
||||||
|
# Stages run in sequential order, but jobs within stages run in parallel.
|
||||||
|
#
|
||||||
|
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
|
||||||
|
|
||||||
|
stages: # List of stages for jobs, and their order of execution
|
||||||
|
- build
|
||||||
|
|
||||||
|
build-dev: # This job runs in the build stage, which runs first.
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- buildx
|
||||||
|
script:
|
||||||
|
- echo "Compiling the code..."
|
||||||
|
- docker buildx build --no-cache -t hacknix/freedmr-ipsc:development-latest -t gitlab.hacknix.net:5050/hacknix/docker-freedmr-ipsc:development-latest --platform linux/arm/v7,linux/amd64,linux/i386,linux/arm64 --push .
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- echo "Compile complete."
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
|
build-release: # This job runs in the build stage, which runs first.
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- buildx
|
||||||
|
script:
|
||||||
|
- echo "Compiling the code..."
|
||||||
|
- cd docker-configs
|
||||||
|
- docker buildx build --no-cache -f Dockerfile-proxy -t hacknix/freedmr-ipsc:latest -t gitlab.hacknix.net:5050/hacknix/docker-freedmr-ipsc:latest -t hacknix/freedmr-ipsc:$CI_COMMIT_TAG -t gitlab.hacknix.net:5050/hacknix/docker-freedmr-ipsc:$CI_COMMIT_TAG -t hacknix/freedmr-ipsc:development-latest -t gitlab.hacknix.net:5050/hacknix/docker-freedmr-ipsc:development-latest --platform linux/arm/v7,linux/amd64,linux/i386,linux/arm64 --push .
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- echo "Compile complete."
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
|
10
Dockerfile
10
Dockerfile
@ -5,26 +5,26 @@ COPY config /opt/
|
|||||||
|
|
||||||
RUN useradd -u 54000 radio && \
|
RUN useradd -u 54000 radio && \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get install -y git gcc g++ musl-dev python2 wget make && \
|
apt-get install -y git gcc g++ python2 python2-dev wget make && \
|
||||||
cd /opt && \
|
cd /opt && \
|
||||||
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py && \
|
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py && \
|
||||||
python2 ./get-pip.py && \
|
python2 ./get-pip.py && \
|
||||||
pip install twisted && \
|
pip install twisted && \
|
||||||
git clone https://github.com/hacknix/DMRlink.git && \
|
git clone https://gitlab.hacknix.net/hacknix/DMRlink.git && \
|
||||||
cd /opt/DMRlink && \
|
cd /opt/DMRlink && \
|
||||||
git checkout IPSC_Bridge && \
|
git checkout IPSC_Bridge && \
|
||||||
sh ./mk-dmrlink && \
|
sh ./mk-dmrlink && \
|
||||||
cd .. && \
|
cd .. && \
|
||||||
git clone https://github.com/hacknix/HBLink.git && \
|
git clone https://gitlab.hacknix.net/hacknix/HBLink.git && \
|
||||||
cd HBLink && \
|
cd HBLink && \
|
||||||
git checkout HB_Bridge && \
|
git checkout HB_Bridge && \
|
||||||
sh ./mk-required && \
|
sh ./mk-required && \
|
||||||
cd .. && \
|
cd .. && \
|
||||||
git clone https://github.com/hacknix/DMRGateway.git && \
|
git clone https://github.com/g4klx/DMRGateway.git && \
|
||||||
cd DMRGateway && \
|
cd DMRGateway && \
|
||||||
git reset --hard 6e89e4922f8c5eb7ec3797729a82137d70bc8940 && \
|
git reset --hard 6e89e4922f8c5eb7ec3797729a82137d70bc8940 && \
|
||||||
make && \
|
make && \
|
||||||
apt-get remove -y musl-dev gcc g++ make git wget && \
|
apt-get remove -y gcc g++ make git wget && \
|
||||||
apt-get -y autoremove && \
|
apt-get -y autoremove && \
|
||||||
apt-get -y purge && \
|
apt-get -y purge && \
|
||||||
rm -rvf /var/cache/apt/archives/* && \
|
rm -rvf /var/cache/apt/archives/* && \
|
||||||
|
6
README.md
Normal file
6
README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# IPSCConnect #
|
||||||
|
IPSC repeater stack for RYSEN Master+
|
||||||
|
|
||||||
|
This is a fork from the HackNix repo.
|
||||||
|
|
||||||
|
If you just want to use this, all you need is the docker-compose.yml file. Edit it, run docker-compose up and docker-compose will do the rest.
|
@ -21,7 +21,7 @@ Debug=0
|
|||||||
[Log]
|
[Log]
|
||||||
# Logging levels, 0=No logging
|
# Logging levels, 0=No logging
|
||||||
DisplayLevel=1
|
DisplayLevel=1
|
||||||
FileLevel=1
|
FileLevel=0
|
||||||
FilePath=.
|
FilePath=.
|
||||||
FileRoot=DMRGateway
|
FileRoot=DMRGateway
|
||||||
FileRotate=1
|
FileRotate=1
|
||||||
@ -80,11 +80,10 @@ TypeRewrite=2,4000,2,4000
|
|||||||
PassAllTG=1
|
PassAllTG=1
|
||||||
PassAllTG=2
|
PassAllTG=2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Password=passw0rd
|
Password=passw0rd
|
||||||
Location=1
|
Location=1
|
||||||
Debug=0
|
Debug=0
|
||||||
|
Options={{DMRG_OPTIONS}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,12 +165,12 @@ MASTER_PORT: 50000
|
|||||||
GROUP_HANGTIME: 5
|
GROUP_HANGTIME: 5
|
||||||
|
|
||||||
|
|
||||||
[DEFAULTS]
|
[IPSC_Bridge]
|
||||||
ENABLED: True
|
ENABLED: True
|
||||||
RADIO_ID: {{IPSC_RADIO_ID}}
|
RADIO_ID: {{IPSC_RADIO_ID}}
|
||||||
IP:
|
IP:
|
||||||
PORT: 55000
|
PORT: 55000
|
||||||
ALIVE_TIMER: 10
|
ALIVE_TIMER: 6
|
||||||
MAX_MISSED: 20
|
MAX_MISSED: 20
|
||||||
PEER_OPER: True
|
PEER_OPER: True
|
||||||
IPSC_MODE: DIGITAL
|
IPSC_MODE: DIGITAL
|
||||||
@ -185,7 +185,7 @@ DATA_CALL: True
|
|||||||
VOICE_CALL: True
|
VOICE_CALL: True
|
||||||
MASTER_PEER: {{IPSC_MASTER_PEER}}
|
MASTER_PEER: {{IPSC_MASTER_PEER}}
|
||||||
AUTH_ENABLED: False
|
AUTH_ENABLED: False
|
||||||
AUTH_KEY:
|
AUTH_KEY: {{IPSC_AUTH_KEY}}
|
||||||
# Below not used for a Master
|
# Below not used for a Master
|
||||||
MASTER_IP: {{IPSC_MASTER_IP}}
|
MASTER_IP: {{IPSC_MASTER_IP}}
|
||||||
MASTER_PORT: {{IPSC_MASTER_PORT}}
|
MASTER_PORT: {{IPSC_MASTER_PORT}}
|
||||||
|
@ -28,7 +28,7 @@ MAX_MISSED: 3
|
|||||||
[LOGGER]
|
[LOGGER]
|
||||||
LOG_FILE: /tmp/hblink.log
|
LOG_FILE: /tmp/hblink.log
|
||||||
LOG_HANDLERS: console-timed
|
LOG_HANDLERS: console-timed
|
||||||
LOG_LEVEL: DEBUG
|
LOG_LEVEL: INFO
|
||||||
LOG_NAME: HBlink
|
LOG_NAME: HBlink
|
||||||
|
|
||||||
# DOWNLOAD AND IMPORT SUBSCRIBER, PEER and TGID ALIASES
|
# DOWNLOAD AND IMPORT SUBSCRIBER, PEER and TGID ALIASES
|
||||||
@ -80,7 +80,7 @@ GROUP_HANGTIME: 5
|
|||||||
# Setting Loose to True relaxes the validation on packets received from the master.
|
# Setting Loose to True relaxes the validation on packets received from the master.
|
||||||
# This will allow HBlink to connect to a non-compliant system such as XLXD, DMR+ etc.
|
# This will allow HBlink to connect to a non-compliant system such as XLXD, DMR+ etc.
|
||||||
|
|
||||||
[DMRGATEWAY]
|
[HB_Bridge]
|
||||||
MODE: CLIENT
|
MODE: CLIENT
|
||||||
ENABLED: True
|
ENABLED: True
|
||||||
LOOSE: True
|
LOOSE: True
|
||||||
@ -96,7 +96,7 @@ RX_FREQ: {{HB_RX_FREQ}}
|
|||||||
TX_FREQ: {{HB_TX_FREQ}}
|
TX_FREQ: {{HB_TX_FREQ}}
|
||||||
TX_POWER: {{HB_TX_POWER}}
|
TX_POWER: {{HB_TX_POWER}}
|
||||||
COLORCODE: {{HB_COLORCODE}}
|
COLORCODE: {{HB_COLORCODE}}
|
||||||
SLOTS: 3
|
SLOTS: {{HB_SLOTS}}
|
||||||
LATITUDE: {{HB_LAT}}
|
LATITUDE: {{HB_LAT}}
|
||||||
LONGITUDE: {{HB_LON}}
|
LONGITUDE: {{HB_LON}}
|
||||||
HEIGHT: {{HB_HEIGHT}}
|
HEIGHT: {{HB_HEIGHT}}
|
||||||
|
@ -1,12 +1,60 @@
|
|||||||
|
#Dockerised IPSC <--> HomeBrew Protocol stack.
|
||||||
|
#
|
||||||
|
#For connecting Motorola repeaters to FreeDMR
|
||||||
|
#NB: If you get strange audio problems, try only
|
||||||
|
#enabling one timelot. This is a known issue
|
||||||
|
#with the current tools.
|
||||||
|
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
services:
|
services:
|
||||||
FreeDMR-Mytera:
|
#Duplicate this section for each repeater
|
||||||
|
#do docker-compose down and then docker-compose up -d in this
|
||||||
|
#directory afterwards to stop and start the containers
|
||||||
|
#you may need to do conntrack -F after the restart
|
||||||
|
FreeDMR-IPSC:
|
||||||
container_name: FreeDMR-IPSC
|
container_name: FreeDMR-IPSC
|
||||||
# volumes:
|
|
||||||
# - './DMRGateway.ini:/opt/hytera-stack/DMRGateway.ini'
|
|
||||||
ports:
|
ports:
|
||||||
- '62005:62005/udp'
|
#IPSC port - right side always stays the same (inside container), left side is
|
||||||
- '62006:62006/udp'
|
#the port you want to present on the outside.
|
||||||
- '62007:62007/udp'
|
#This is automatically mapped - docker uses iptables to do this
|
||||||
image: 'hacknix/freedmr:FreeDMR-IPSC'
|
- '55000:55000/udp'
|
||||||
|
environment:
|
||||||
|
#Configure IPSC side (IPSC_Bridge)
|
||||||
|
#True if we are the master
|
||||||
|
#False if we are connecting to an existing IPSC network
|
||||||
|
- IPSC_MASTER_PEER=True
|
||||||
|
#IP and Port only needed if the above is False
|
||||||
|
- IPSC_MASTER_IP=
|
||||||
|
- IPSC_MASTER_PORT=
|
||||||
|
#Which timeslots to forward
|
||||||
|
- IPSC_TS1=True
|
||||||
|
- IPSC_TS2=True
|
||||||
|
#DMR ID we use to talk to the IPSC network
|
||||||
|
#This should probably be the repeater server's SERVER_ID
|
||||||
|
- IPSC_RADIO_ID=2341
|
||||||
|
- IPSC_AUTH_KEY=
|
||||||
|
#Configure HBP (repeater) details (HB_Bridge)
|
||||||
|
- HB_CALLSIGN=
|
||||||
|
- HB_RADIO_ID=
|
||||||
|
- HB_RX_FREQ=
|
||||||
|
- HB_TX_FREQ=
|
||||||
|
- HB_TX_POWER=
|
||||||
|
- HB_COLORCODE=
|
||||||
|
- 'HB_LAT='
|
||||||
|
- 'HB_LON=-'
|
||||||
|
- HB_HEIGHT=
|
||||||
|
- HB_LOCATION=
|
||||||
|
#Which slots to enable:
|
||||||
|
# 1 = 1, 2 = 2, 3 = both
|
||||||
|
# Note there are some issues with both slots
|
||||||
|
# at this time.
|
||||||
|
# Slot 2 is setup to work with dial-a-tg **only**
|
||||||
|
- HB_SLOTS=1
|
||||||
|
#Configure Repeater server side (DMRGateway)
|
||||||
|
#Put an Options line here to configure static TGs etc
|
||||||
|
- 'DMRG_OPTIONS='
|
||||||
|
#Target server
|
||||||
|
- DMRG_TARGET=
|
||||||
|
image: 'hacknix/freedmr-ipsc:latest'
|
||||||
|
#Container will persist over reboots
|
||||||
restart: "unless-stopped"
|
restart: "unless-stopped"
|
||||||
|
@ -9,6 +9,8 @@ sed -i "s/{{IPSC_MASTER_PEER}}/$IPSC_MASTER_PEER/" /opt/dmrlink.cfg
|
|||||||
sed -i "s/{{IPSC_TS1}}/$IPSC_TS1/" /opt/dmrlink.cfg
|
sed -i "s/{{IPSC_TS1}}/$IPSC_TS1/" /opt/dmrlink.cfg
|
||||||
sed -i "s/{{IPSC_TS2}}/$IPSC_TS2/" /opt/dmrlink.cfg
|
sed -i "s/{{IPSC_TS2}}/$IPSC_TS2/" /opt/dmrlink.cfg
|
||||||
sed -i "s/{{IPSC_RADIO_ID}}/$IPSC_RADIO_ID/" /opt/dmrlink.cfg
|
sed -i "s/{{IPSC_RADIO_ID}}/$IPSC_RADIO_ID/" /opt/dmrlink.cfg
|
||||||
|
sed -i "s/{{IPSC_AUTH_KEY}}/$IPSC_AUTH_KEY/" /opt/dmrlink.cfg
|
||||||
|
|
||||||
|
|
||||||
sed -i "s/{{HB_CALLSIGN}}/$HB_CALLSIGN/" /opt/hblink.cfg
|
sed -i "s/{{HB_CALLSIGN}}/$HB_CALLSIGN/" /opt/hblink.cfg
|
||||||
sed -i "s/{{HB_RADIO_ID}}/$HB_RADIO_ID/" /opt/hblink.cfg
|
sed -i "s/{{HB_RADIO_ID}}/$HB_RADIO_ID/" /opt/hblink.cfg
|
||||||
@ -20,8 +22,9 @@ sed -i "s/{{HB_LAT}}/$HB_LAT/" /opt/hblink.cfg
|
|||||||
sed -i "s/{{HB_LON}}/$HB_LON/" /opt/hblink.cfg
|
sed -i "s/{{HB_LON}}/$HB_LON/" /opt/hblink.cfg
|
||||||
sed -i "s/{{HB_HEIGHT}}/$HB_HEIGHT/" /opt/hblink.cfg
|
sed -i "s/{{HB_HEIGHT}}/$HB_HEIGHT/" /opt/hblink.cfg
|
||||||
sed -i "s/{{HB_LOCATION}}/$HB_LOCATION/" /opt/hblink.cfg
|
sed -i "s/{{HB_LOCATION}}/$HB_LOCATION/" /opt/hblink.cfg
|
||||||
sed -i "s/{{HB_OPTIONS}}/$HB_OPTIONS/" /opt/hblink.cfg
|
sed -i "s/{{HB_SLOTS}}/$HB_SLOTS/" /opt/hblink.cfg
|
||||||
|
|
||||||
|
sed -i "s/{{DMRG_OPTIONS}}/$DMRG_OPTIONS/" /opt/DMRGateway.ini
|
||||||
sed -i "s/{{DMRG_TARGET}}/$DMRG_TARGET/" /opt/DMRGateway.ini
|
sed -i "s/{{DMRG_TARGET}}/$DMRG_TARGET/" /opt/DMRGateway.ini
|
||||||
|
|
||||||
#Run processes
|
#Run processes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user