{"id":29719028,"url":"https://github.com/sctg-development/xlxd","last_synced_at":"2025-09-13T01:40:08.751Z","repository":{"id":305687803,"uuid":"1023137138","full_name":"sctg-development/xlxd","owner":"sctg-development","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-21T12:34:03.000Z","size":848,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-21T14:40:44.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sctg-development.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-20T15:52:26.000Z","updated_at":"2025-07-21T12:32:31.000Z","dependencies_parsed_at":"2025-07-21T14:40:47.312Z","dependency_job_id":"8820f9f4-2622-4221-82ef-5d87d28deba8","html_url":"https://github.com/sctg-development/xlxd","commit_stats":null,"previous_names":["sctg-development/xlxd"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sctg-development/xlxd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sctg-development%2Fxlxd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sctg-development%2Fxlxd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sctg-development%2Fxlxd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sctg-development%2Fxlxd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sctg-development","download_url":"https://codeload.github.com/sctg-development/xlxd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sctg-development%2Fxlxd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274907811,"owners_count":25371819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-24T10:43:23.912Z","updated_at":"2025-09-13T01:40:08.698Z","avatar_url":"https://github.com/sctg-development.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Copyright\r\n\r\n© 2016 Jean-Luc Deltombe LX3JL and Luc Engelmann LX1IQ\r\n\r\nThe XLX Multiprotocol Gateway Reflector Server is part of the software system\r\nfor the D-Star Network.\r\nThe sources are published under GPL Licenses.\r\n\r\n# Supported Protocols since XLX v2.5.x\r\n\r\n- In D-Star, Icom-G3Terminal, DExtra, DPLus and DCS\r\n- In DMR, DMRPlus (dongle) and DMRMmdvm\r\n- In C4FM, YSF, Wires-X and IMRS\r\n- XLX Interlink protocol\r\n\r\n# Usage\r\n\r\nThe packages which are described in this document are designed to install server\r\nsoftware which is used for the D-Star network infrastructure.\r\nIt requires a 24/7 internet connection which can support 20 voice streams or more\r\nto connect repeaters and hotspot dongles!!\r\n\r\n- The server requires a fix IP-address !\r\n- The public IP address should have a DNS record which must be published in the\r\ncommon host files.\r\n\r\nIf you want to run this software please make sure that you can provide this\r\nservice free of charge, like the developer team provides the software and the\r\nnetwork infrastructure free of charge!\r\n\r\n## Command Line Arguments\r\n\r\nXLX supports flexible network configuration through command line arguments:\r\n\r\n```\r\nxlxd callsign xlxdip/interface ambedip\r\n```\r\n\r\nExamples:\r\n- `xlxd XLX999 192.168.178.212 127.0.0.1` (using IP address)\r\n- `xlxd XLX999 eth0 127.0.0.1` (using network interface)\r\n- `xlxd XLX999 wlan0 127.0.0.1` (using wireless interface)\r\n\r\n**Note:** If the second parameter is not a valid IPv4 address, xlxd will automatically\r\nattempt to resolve it as a network interface name and use the IPv4 address assigned\r\nto that interface.\r\n\r\n# Docker Installation (Recommended)\r\n\r\nXLX can be easily deployed using Docker, which provides a consistent environment\r\nand simplified deployment process.\r\n\r\n## Building the Docker Image\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/sctg-development/xlxd.git\r\ncd xlxd\r\n\r\n# Build the Docker image\r\ndocker build -t xlxd:latest .\r\n```\r\n\r\n## Running with Docker\r\n\r\n```bash\r\n# Run XLX in a Docker container\r\ndocker run -d \\\r\n  --name xlxd \\\r\n  --restart unless-stopped \\\r\n  -p 80:80 \\\r\n  -p 10001:10001/udp \\\r\n  -p 10002:10002/udp \\\r\n  -p 42000:42000/udp \\\r\n  -p 8880:8880/udp \\\r\n  -p 62030:62030/udp \\\r\n  -p 21110:21110/udp \\\r\n  xlxd:latest\r\n```\r\n\r\n## Docker Compose\r\n\r\nCreate a `docker-compose.yml` file:\r\n\r\n```yaml\r\nversion: '3.8'\r\nservices:\r\n  xlxd:\r\n    build: .\r\n    container_name: xlxd\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"80:80\"           # HTTP Dashboard\r\n      - \"10001:10001/udp\" # JSON interface XLX Core\r\n      - \"10002:10002/udp\" # XLX interlink\r\n      - \"42000:42000/udp\" # YSF protocol\r\n      - \"8880:8880/udp\"   # DMR+ DMO mode\r\n      - \"62030:62030/udp\" # MMDVM protocol\r\n      - \"21110:21110/udp\" # Yaesu IMRS protocol\r\n    environment:\r\n      - XLX_CALLSIGN=XLXKERBRA\r\n      - XLX_LISTEN_IP=0.0.0.0\r\n      - XLX_TRANSCODER_IP=127.0.0.1\r\n```\r\n\r\nThen run:\r\n```bash\r\ndocker-compose up -d\r\n```\r\n\r\n## Docker Features\r\n\r\n- **Multi-stage build**: Optimized image size with separate build and runtime stages\r\n- **Supervisor**: Process management for xlxd, xlxecho, and Apache services\r\n- **Automatic service management**: All services start automatically and restart on failure\r\n- **Web dashboard**: Accessible on port 80\r\n- **Logs**: Service logs available via `docker logs xlxd`\r\n\r\n# Requirements\r\n\r\nThe software packages for Linux are tested on Debian7 (Wheezy) 32 and 64bit or newer.\r\nRaspbian will work but is not recommended.\r\nPlease use the stable version listed above, we cannot support others.\r\n\r\n# Installation\r\n\r\n## Debian 7 (Wheezy) 32 and 64bit\r\n\r\n###### After a clean installation of debian make sure to run update and upgrade\r\n```\r\n# apt-get update\r\n# apt-get upgrade\r\n```\r\n###### Install Git\r\n```\r\n# apt-get install git git-core\r\n```\r\n###### Install webserver with PHP5 support\r\n```\r\n# apt-get install apache2 php5\r\n```\r\n\r\n###### Install g++ compiler\r\n```\r\n# apt-get install build-essential\r\n# apt-get install g++-4.7 (skip this step on Debian 8.x) \r\n \r\n```\r\n###### Download source code\r\n```\r\n# git clone https://github.com/LX3JL/xlxd.git\r\n# cd xlxd/src/\r\n\r\n```\r\n###### If you want to enable YSF, edit the main.h file \r\n```\r\n# nano main.h\r\n\r\nThen modify the following line:\r\n#define YSF_AUTOLINK_ENABLE 0 \u003c- Replace 0 with 1\r\n\r\nReview YSF Frequencies\r\n#define YSF_DEFAULT_NODE_TX_FREQ        437000000   \u003c-- in Hz\r\n#define YSF_DEFAULT_NODE_RX_FREQ        437000000   \u003c-- in Hz\r\n\r\n```\r\n###### Download and compile the XLX sources\r\n```\r\n# make clean\r\n# make\r\n# make install\r\n```\r\n\r\n**Note**: The compiled xlxd binary now supports automatic network interface resolution.\r\nYou can specify either an IP address or network interface name (e.g., eth0, wlan0)\r\nas the second parameter when starting xlxd.\r\n\r\n###### Copy startup script \"xlxd\" to /etc/init.d\r\n```\r\n# cp ~/xlxd/scripts/xlxd /etc/init.d/xlxd\r\n```\r\n\r\n###### Adapt the default configuration to your needs\r\n```\r\n# pico /xlxd/xlxd.config\r\n```\r\n###### Download the dmrid.dat from the XLXAPI server to your xlxd folder\r\n```\r\n# wget -O /xlxd/dmrid.dat http://xlxapi.rlx.lu/api/exportdmr.php\r\n```\r\n\r\n###### Check your FTDI driver and install the AMBE service according to the readme in AMBEd\r\n```\r\n \r\n```\r\n\r\n###### Last step is to declare the service for automatic startup and shutdown\r\n```\r\n# update-rc.d xlxd defaults\r\n```\r\n\r\n###### Start or stop the service with\r\n```\r\n# service xlxd start\r\n# service xlxd stop\r\n```\r\n\r\n###### Copy dashboard to /var/www\r\n```\r\n# cp -r ~/xlxd/dashboard /var/www/db\r\n```\r\n\r\n###### Give the dashboard read access to the server log file \r\n```\r\n# chmod +r /var/log/messages \r\n```\r\n\r\n###### Reboot server to see if the auto-start is working\r\n```\r\n# reboot\r\n```\r\n\r\n# Firewall settings #\r\n\r\nXLX Server requires the following ports to be open and forwarded properly for in- and outgoing network traffic:\r\n\r\n## Essential Ports (Required for Docker deployment)\r\n - TCP port 80            (HTTP Dashboard)\r\n - UDP port 10001         (JSON interface XLX Core)\r\n - UDP port 10002         (XLX interlink)\r\n - UDP port 42000         (YSF protocol)\r\n - UDP port 8880          (DMR+ DMO mode)\r\n - UDP port 62030         (MMDVM protocol)\r\n - UDP port 10100         (AMBE controller port)\r\n - UDP port 10101 - 10199 (AMBE transcoding port)\r\n - UDP port 12345 - 12346 (Icom Terminal presence and request port)\r\n - UDP port 40000         (Icom Terminal dv port)\r\n\r\n**Note for Docker users**: The essential ports listed above are exposed by default in the Docker configuration.\r\nAdditional ports can be added to the Docker run command as needed.\r\n\r\n# YSF Master Server\r\n\r\nPay attention, the XLX Server acts as an YSF Master, which provides 26 wires-x rooms.\r\nIt has nothing to do with the regular YSFReflector network, hence you don’t need to register your XLX at ysfreflector.de !\r\nNevertheless it is possible.\r\n\r\n© 2016 Jean-Luc Deltombe (LX3JL) and Luc Engelmann (LX1IQ)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsctg-development%2Fxlxd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsctg-development%2Fxlxd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsctg-development%2Fxlxd/lists"}