xunlei

package module
v0.0.0-...-2040d2c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2024 License: MIT Imports: 25 Imported by: 0

README

迅雷远程下载服务(非官方)

GitHub Stars Docker Pulls Docker Version

从迅雷群晖套件中提取出来用于其他设备的迅雷远程下载服务程序。仅供研究学习测试。
本程序仅提供 Linux 模拟和容器化运行环境,未对原版迅雷程序进行任何修改。

使用

Docker
镜像
cnk3x/xunlei:latest
registry.cn-shenzhen.aliyuncs.com/cnk3x/xunlei:latest
ghcr.io/cnk3x/xunlei:latest

常规的容器,还是要在特权模式下运行。

如果 docker 的存储驱动如果是 btrfs 或者 overlayfs,可以支持的非特权运行。

环境变量参数
XL_DASHBOARD_PORT      #网页访问的端口,默认 2345
XL_DASHBOARD_IP        #网页访问的端口,默认 0.0.0.0(代表所有IP)
XL_DASHBOARD_USERNAME  #网页访问的用户名
XL_DASHBOARD_PASSWORD  #网页访问的密码
XL_DIR_DOWNLOAD        #下载保存默认文件夹,默认 /xunlei/downloads,多个文件夹用冒号:分隔
XL_DIR_DATA            #程序数据保存文件夹,默认 /xunlei/data
XL_UID                 #运行迅雷的用户ID
XL_GID                 #运行迅雷的用户组ID
XL_PREVENT_UPDATE      #是否阻止更新,默认 true, 可选值 true/false, 1/0
XL_CHROOT              #隔离运行主目录, 指定该值且不为`/`则以隔离模式运行, 用于在容器内隔离环境,容器内默认为 /xunlei,隔离模式运行需要特权模式(--privileged),可以将该值设置为`/`来以非特权模式运行。非特权模式运行有条件,可以尝试失败后使用特权模式重新运行。
XL_DEBUG               #调试模式, 可选值 true/false, 1/0
在容器中运行
# docker run -d \
#   -v <数据目录>:/xunlei/data \
#   -v <默认下载保存目录>:/xunlei/downloads \
#   -p <访问端口>:2345 \
#   --privileged \
#   cnk3x/xunlei

# example
docker run --privileged -v /mnt/sdb1/configs/xunlei:/xunlei/data -v /mnt/sdb1/downloads:/xunlei/downloads -p 2345:2345 cnk3x/xunlei

# 如果你的docker存储驱动是 overlayfs 或者 btrfs等, 可以不用特权运行
docker run -e XL_CHROOT=/ -v /mnt/sdb1/configs/xunlei:/xunlei/data -v /mnt/sdb1/downloads:/xunlei/downloads -p 2345:2345 cnk3x/xunlei

也可以直接运行

$ bin/xlp-amd64 --help

Flags:
  -p, --dashboard_port      网页访问的端口 (env: XL_DASHBOARD_PORT) (default 2345)
  -i, --dashboard_ip        网页访问绑定IP,默认绑定所有IP (env: XL_DASHBOARD_IP)
  -u, --dashboard_username  网页访问的用户名 (env: XL_DASHBOARD_USERNAME)
  -k, --dashboard_password  网页访问的密码 (env: XL_DASHBOARD_PASSWORD)
      --dir_download        下载保存文件夹,可多次指定,需确保有权限访问 (env: XL_DIR_DOWNLOAD) (default [/xunlei/downloads])
      --dir_data            程序数据保存文件夹,其下'.drive'文件夹中,存储了登录的账号,下载进度等信息 (env: XL_DIR_DATA) (default "/xunlei/data")
      --uid                 运行迅雷的用户ID (env: XL_UID, UID)
      --gid                 运行迅雷的用户组ID (env: XL_GID, GID)
      --prevent_update      阻止更新 (env: XL_PREVENT_UPDATE) (default true)
  -r, --chroot              CHROOT主目录, 指定该值且不为/则以chroot模式运行, 用于在容器内隔离环境 (env: XL_CHROOT) (default "/")
      --debug               是否开启调试日志 (env: XL_DEBUG)
  -v, --version             显示版本信息

Used By

kubespider

Documentation

Index

Constants

View Source
const (
	SYNOPKG_DSM_VERSION_MAJOR = "7"     //系统的主版本
	SYNOPKG_DSM_VERSION_MINOR = "2"     //系统的次版本
	SYNOPKG_DSM_VERSION_BUILD = "64570" //系统的编译版本

	SYNOPKG_PKGNAME = "pan-xunlei-com"                                     //包名
	SYNOPKG_PKGROOT = "/var/packages/" + SYNOPKG_PKGNAME                   //包安装目录
	SYNOPKG_PKGDEST = SYNOPKG_PKGROOT + "/target"                          //包安装目录
	PID_FILE        = SYNOPKG_PKGDEST + "/var/" + SYNOPKG_PKGNAME + ".pid" //进程文件

	PAN_XUNLEI_VER = SYNOPKG_PKGDEST + "/bin/bin/version"                                   //版本文件
	PAN_XUNLEI_CLI = SYNOPKG_PKGDEST + "/bin/bin/xunlei-pan-cli-launcher." + runtime.GOARCH //启动器

	LAUNCHER_LISTEN_PATH = SYNOPKG_PKGDEST + "/var/pan-xunlei-com-launcher.sock" //启动器监听地址
	DRIVE_LISTEN_PATH    = SYNOPKG_PKGDEST + "/var/pan-xunlei-com.sock"          //主程序监听地址

	PATH_SYNO_INFO_CONF        = "/etc/synoinfo.conf"                                //synoinfo.conf 文件路径
	PATH_SYNO_AUTHENTICATE_CGI = "/usr/syno/synoman/webman/modules/authenticate.cgi" //syno...authenticate.cgi 文件路径
	UPDATE_URL                 = "/webman/3rdparty/" + SYNOPKG_PKGNAME + "/version"
)

Variables

View Source
var (
	SYNO_PLATFORM = lod.Iif(runtime.GOARCH == "amd64", "geminilake", "rtd1296")                                                             //平台
	SYNO_MODEL    = lod.Iif(runtime.GOARCH == "amd64", "DS920+", "DS220j")                                                                  //平台
	OS_VERSION    = SYNO_PLATFORM + " dsm " + SYNOPKG_DSM_VERSION_MAJOR + "." + SYNOPKG_DSM_VERSION_MINOR + "-" + SYNOPKG_DSM_VERSION_BUILD //系统版本
)

Functions

This section is empty.

Types

type Config

type Config struct {
	Port              uint16         `flag:"dashboard_port,p"       env:"XL_DASHBOARD_PORT"                    usage:"网页访问的端口"`
	Ip                net.IP         `flag:"dashboard_ip,i"         env:"XL_DASHBOARD_IP"                      usage:"网页访问绑定IP,默认绑定所有IP"`
	DashboardUsername string         `flag:"dashboard_username,u"   env:"XL_DASHBOARD_USERNAME,XL_BA_USER"     usage:"网页访问的用户名"`
	DashboardPassword string         `flag:"dashboard_password,k"   env:"XL_DASHBOARD_PASSWORD,XL_BA_PASSWORD" usage:"网页访问的密码"`
	DirDownload       flags.PathList `` /* 147-byte string literal not displayed */
	DirData           string         `` /* 188-byte string literal not displayed */
	Uid               uint32         `flag:"uid"                    env:"XL_UID,UID"                           usage:"运行迅雷的用户ID"`
	Gid               uint32         `flag:"gid"                    env:"XL_GID,GID"                           usage:"运行迅雷的用户组ID"`
	PreventUpdate     bool           `flag:"prevent_update"         env:"XL_PREVENT_UPDATE" default:"true"     usage:"阻止更新"`
	Chroot            string         `` /* 169-byte string literal not displayed */
	Debug             bool           `flag:"debug"                  env:"XL_DEBUG"                             usage:"是否开启调试日志"`
}

Config 配置

func ConfigDefault

func ConfigDefault() (cfg Config)

func (*Config) SetDefault

func (cfg *Config) SetDefault()

SetDefault 默认配置端口2345,下载保存文件夹 /xunlei/downloads, 数据文件夹 /xunlei/data

func (*Config) Validate

func (cfg *Config) Validate() (err error)

type Daemon

type Daemon struct {
	// contains filtered or unexported fields
}

Daemon 模拟环境启动器

func New

func New(cfg Config, ver string) *Daemon

func (*Daemon) Run

func (d *Daemon) Run(ctx context.Context) (err error)

Directories

Path Synopsis
cmd
xlp
pkg
cmd
lod
log
vms
web
xlp module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL