CrossDesk Server

中文 / English

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
    
S
Description
Server for CrossDesk | 为 CrossDesk 设计的服务端软件
Readme 411 KiB
Languages
C++ 90.1%
Shell 7.1%
Lua 2.8%