Quick Start Deployment Guide
Welcome to the LX Music Data Synchronization and Web Playing hub service. This platform provides a private cloud data synchronization integration solution, along with a fully functional online high-quality media streaming capability.
Infrastructure Dependencies
Before starting this service project, please ensure that the host system (or virtual machine, containerized facility) carrying this instance meets the following minimum prerequisites:
Running Directly from Source:
- Node.js:
v16.xor higher (v18.xLTS version is recommended for production environments). - Network Resources: Ensure that the listening port required for the business (default configuration is
9527) has been correctly allowed in the host firewall policy and the cloud provider's security group rules.
Running on Containerized Facilities (Preferred for Production):
Docker Engineruntime.Docker Compose(required when involving declarative service orchestration).
Deployment Execution Plan and Best Practices
Option 1: Containerized Deployment Based on Docker Engine (Recommendation: High)
We provide pre-built stable image versions for various architectural platforms. Execute the following single-line command to start the container service instance within the daemon process model:
docker run -d \
-p 9527:9527 \
-v $(pwd)/data:/server/data \
-v $(pwd)/logs:/server/logs \
--name lx-sync-server \
--restart unless-stopped \
ghcr.io/xcq0607/lxserver:latestContainer Volume Mappings:
-v $(pwd)/data:/server/data: This configuration is a core mandatory item. It is responsible for exporting all application-layer state data generated within the instance (covering user profile assets, independent authentication source files, and stream segment cache pools) to the host for persistent storage. Missing this mapping item will lead to catastrophic data loss during container reconstruction.-v $(pwd)/logs:/server/logs: A physical mount point used to receive and output all graded audit logs of the service application layer.
Declarative Docker Compose: For standardized long-term management in production implementation, create a definition configuration named docker-compose.yml:
version: '3.8'
services:
lxserver:
image: ghcr.io/xcq0607/lxserver:latest
container_name: lx-sync-server
restart: unless-stopped
ports:
- "9527:9527"
volumes:
- ./data:/server/data
- ./logs:/server/logs
environment:
- PORT=9527
- FRONTEND_PASSWORD=123456
- DISABLE_TELEMETRY=falseAfter reviewing the configuration correctly, start the infrastructure instance set with the command docker-compose up -d.
Option 2: Source Compilation Deployment Based on Physical Environment
For restricted non-containerized environments or secondary research and development expansion scenarios, you need to assemble and pull up the process directly on the operating system:
# 1. Extract the code from the remote code repository to the current directory in the Main branch state
git clone https://github.com/XCQ0607/lxserver.git
cd lxserver
# 2. Call the strict analysis process to initialize the module dependency library
npm ci
# 3. Perform pre-compilation aggregation processing on TypeScript types and Vue DOM templates
npm run build
# 4. Execute the production node start command based on the built-in scheduler
npm startEngineering Practice Tip: For native application hosting in unattended server environments, it is recommended to introduce a process-level scheduling and restart control system such as pm2: pm2 start npm --name "lxserver" -- start.
Load Front-end and Nginx Reverse Proxy Access Strategy
Before exposing it to the public network main process node, it is strongly recommended to connect a mature Web daemon gateway instance. This is intended to securely apply SSL encryption and hide internal distribution port features.
The following is a standardized Nginx reverse proxy configuration reference example adapted to the system's WebSocket duplex link mechanism and tracing the user's source-end IP Header parsing (taking over traffic through the network and tunnel takeover forwarding from universal 80 / 443 ports to this service 9527):
server {
listen 80;
server_name music.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:9527;
# Define the Header transmission policy to ensure that the Node layer can get the client's public network layer IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Complement the long-connection upgrade feature definition (necessary condition for internal synchronization communication socket services)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Verify the Health of Delivered Components
After the service instance registration and scheduling are completed, and the traffic tunnel is established, administrators can check the connectivity status of the two sub-service systems in the browser respectively:
| Module System Identifier | Deployment Application Node Level | Default Domain Check | Core Application Capabilities and Infrastructure |
|---|---|---|---|
| Basic Operation Monitoring and Sync Server | / (Domain Root) | Requires default key: 123456 | Perform account role control authorization, review connection endpoint survival status, and perform global WebDAV off-site backup scheduling configuration reset. |
| Rich Client Web Streaming Console | /music | Adjustable (depends on whether the administrator has configured the Monroe protection environment variable to forcibly enable the anti-hotlinking security key) | Provides a multi-stack music information stream convergence point checking engine and completes the audio-visual business rendering logic of the end-user interface. |
For more advance details on implementing silent import of underlying variables in the early lifecycle of instantiation, and configuration hierarchy rewriting, please move to read "Configuration Engine and Environment Variable Injection Guide".