CrossDesk Server
Server designed for CrossDesk , supporting WSS-encrypted connections and using SQLite3 to store user information.
License: LGPL-3.0 | [Platform: Windows | Linux | macOS]
Requirements:
Build:
git clone https://github.com/kunkundi/crossdesk-server.git
cd crossdesk-server
xmake b crossdesk_server
About Xmake
Build Options
# Switch build mode
xmake f -m debug/release
# Optional build parameters
-r : Rebuild the target
-v : Show detailed build logs
-y : Automatically confirm prompts
# Example
xmake b -vy crossdesk_server
For more information, please refer to the official Xmake documentation .
Build Docker Image
cd docker
sudo docker build -t image-name .
Run Container
Basic Startup (Data stored in container)
Example startup command:
docker run -d \
--name crossdesk_server \
--network host \
-e EXTERNAL_IP=xxx.xxx.xxx.xxx \
-e INTERNAL_IP=xxx.xxx.xxx.xxx \
-e CROSSDESK_SERVER_PORT=xxxx \
-e COTURN_PORT=xxxx \
-e MIN_PORT=xxxxx \
-e MAX_PORT=xxxxx \
-v /var/lib/crossdesk:/var/lib/crossdesk \
-v /var/log/crossdesk:/var/log/crossdesk \
crossdesk/crossdesk-server:v1.1.2
Notes:
-
Certificate files will be automatically generated on first startup in
/var/lib/crossdesk/certs(inside container) -
Database file will be automatically created at
/var/lib/crossdesk/db/crossdesk-server.db(inside container) -
Log files will be automatically created in
/var/log/crossdesk/(inside container) -
Note: Data will be lost if container is removed without volume mounts
-
-v /var/lib/crossdesk:/var/lib/crossdesk: Persist database and certificate files to host -
-v /var/log/crossdesk:/var/log/crossdesk: Persist log files to host -
Data will remain on host even if container is removed
-
Auto directory creation: If these directories don't exist on host, Docker will create them automatically, and the container code will also create subdirectories
-
Permission note (Important): If Docker auto-created directories have insufficient permissions (owned by root), the container user cannot write, which will cause:
- Certificate generation failure, container startup script will exit with error
- Database directory creation failure, program will throw exception and crash
- Log directory creation failure, log files cannot be written (but program may continue running)
Solution: Set permissions manually before starting container:
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk