#dashboard #tracker #sales #image-url #affiliate

nightly app raider-server

联盟仪表板。供联盟使用,用于生成跟踪代码和查看其余额。

11个稳定版本

使用旧Rust 2015

1.2.3 2023年9月5日
1.2.2 2022年7月7日
1.2.1 2022年1月31日
1.2.0 2021年5月18日
0.0.1 2018年1月9日

#1 in #sales

每月25次下载

MPL-2.0 许可证

185KB
4K SLoC

Rust 2.5K SLoC // 0.1% comments Tera 753 SLoC JavaScript 389 SLoC // 0.1% comments Shell 119 SLoC // 0.2% comments SQL 65 SLoC Forge Config 57 SLoC // 0.1% comments

包含(WOFF字体,17KB)open_sans_bold.woff,(WOFF字体,13KB)open_sans_bold.woff2,(WOFF字体,16KB)open_sans_light.woff,(WOFF字体,13KB)open_sans_light.woff2,(WOFF字体,16KB)open_sans_regular.woff,(WOFF字体,13KB)open_sans_regular.woff2 和更多

Raider

Test and Build Build and Release dependency status Buy Me A Coffee

联盟仪表板。供联盟使用,用于生成跟踪代码和查看其余额。

Raider易于集成到现有系统中。您还可以使用模板和样式自定义仪表板的外观和感觉。它可以作为一个自助联盟系统使用,让您的联盟用户管理他们的账户,创建跟踪URL,查看他们的余额并请求提款。

在Rust版本:rustc 1.51.0-nightly (c8915eebe 2021-01-07)上测试

🇭🇺 在匈牙利布达佩斯制作。

Raider

谁在使用它?

Crisp

👋 您使用Raider并希望被列在那里? 联系我

功能

  • 自助联盟仪表板
  • 用户可以生成联盟跟踪代码
  • 用户可以看到他们的联盟统计数据(例如,他们赚了多少钱)
  • 用户可以请求提款(您将收到一封通知电子邮件)
  • 您的后端将推荐客户付款报告给Raider

它是如何工作的?

Raider提供了一个自助联盟仪表板,用户可以在其中注册,登录并管理他们的账户(例如,创建跟踪代码,请求提款等)。您的后端可以将推荐客户付款报告给Raider,这样联盟就可以提取他们的佣金并在任何时候请求提款。

Raider提供两项服务

  • 自助仪表板:供您的联盟用户使用
  • 支付报告API:每次付款时由您的后端调用(即,将应计佣金金额记入联盟账户)

如何使用它?

安装

从发行版安装

安装 Raider 的最佳方式是从 Raider 发行版页面 拉取最新版本。

请确保选择正确的服务器架构(例如,Intel 32 位)。

👉 每个发行版二进制文件都附带一个 .asc 签名文件,可以使用 @valeriansaliou GPG 公钥进行验证:🔑valeriansaliou.gpg.pub.asc

从软件包安装

Raider 为基于 Debian 的系统(Debian、Ubuntu 等)提供预构建的软件包。

重要提示:Raider 目前只为 Debian 12 提供针对 64 位的软件包(代号:bookworm)。您可能仍然可以在其他 Debian 版本以及 Ubuntu 上使用它们(尽管它们依赖于特定版本的 glibc,这可能在较旧或较新的系统上不可用)。

首先,添加 Raider APT 仓库(例如,对于 Debian bookworm

echo "deb [signed-by=/usr/share/keyrings/valeriansaliou_raider.gpg] https://packagecloud.io/valeriansaliou/raider/debian/ bookworm main" > /etc/apt/sources.list.d/valeriansaliou_raider.list
curl -fsSL https://packagecloud.io/valeriansaliou/raider/gpgkey | gpg --dearmor -o /usr/share/keyrings/valeriansaliou_raider.gpg
apt-get update

然后,安装 Raider 软件包

apt-get install raider

然后,编辑预填充的 Raider 配置文件

nano /etc/raider.cfg

最后,重新启动 Raider

service raider restart

从 Cargo 安装

如果您更喜欢通过 Rust 的 Cargo 管理 raider,可以直接使用 cargo install 安装它

cargo install raider-server

请确保您的 $PATH 已正确配置,以便从中获取 Crates 二进制文件,然后使用 raider 命令运行 Raider。

从源代码安装

最后一个选项是从 Git 拉取源代码,并通过 cargo 编译 Raider。

cargo build --release

您可以在 ./target/release 目录中找到构建的二进制文件。

在编译 Raider 之前,请安装 libssl-dev(即 OpenSSL 头文件)和 libmysqlclient-dev(即 MySQL 客户端头文件)。SSL 依赖项对于电子邮件通知是必需的,而 MySQL 依赖项对于连接到您的数据库是必需的。

从 Docker Hub 安装

您可能会发现通过 Docker 运行 Raider 很方便。您可以在 Docker Hub 上找到预构建的 Raider 镜像,地址为 valeriansaliou/raider

首先,拉取 valeriansaliou/raider 镜像

docker pull valeriansaliou/raider:v1.2.3

然后,创建配置文件并运行它(将 /path/to/your/raider/config.cfg 替换为您配置文件的路径)

docker run -p 8080:8080 -v /path/to/your/raider/config.cfg:/etc/raider.cfg valeriansaliou/raider:v1.2.3

在配置文件中,请确保

  • server.inet 设置为 0.0.0.0:8080(这允许从容器外部访问 Raider)
  • assets.path 设置为 ./res/assets/(这指的是容器内部路径,因为资产包含在那里)

Raider 可在 https://127.0.0.1:8080 上访问。

数据库

Raider 需要您的宿主机上运行 MySQL(遗憾的是,目前它不兼容 PostgreSQL 和其他数据库)。

应在您创建的 Raider 数据库中导入 Raider SQL 架构,您可以在 raider.sql 中找到。

配置

请使用示例 config.cfg 配置文件,并根据您的环境进行调整。


⚠️ 重要:请确保更改默认的 server.secret_keyserver.track_tokenserver.management_token 配置值,使用您生成的密钥。另外,为 database.password_salt 生成一个任意长度的随机字符串。如果您不更改这些值中的任何一个,您的 Raider 实例将不安全。您可以通过运行 openssl rand -base64 32 来轻松创建这些令牌。


以下列出可用的配置选项及其允许的值

[server]

  • log_level(类型:字符串,允许:debuginfowarnerror,默认:error)— 日志的详细程度,在生产环境中设置为 error
  • inet(类型:字符串,允许:IPv4 / IPv6 + 端口,默认:[::1]:8080)— Raider 服务应监听的宿主机和 TCP 端口
  • workers(类型:整数,允许:任何数字,默认:4)— Raider 服务运行的进程数
  • track_token(类型:字符串,允许:秘密令牌,默认:无默认值)— Track API 的秘密令牌(即秘密密码)
  • management_token(类型:字符串,允许:秘密令牌,默认:无默认值)— 管理API的秘密令牌(即秘密密码)
  • secret_key(类型:字符串,允许:192位base64编码的秘密密钥,默认:无默认值)— 用于cookie加密的秘密密钥(有关详细信息,请参阅 Rocket 文档

[database]

  • url(类型:字符串,允许:MySQL URL,无默认值)— 要连接的MySQL数据库的URL
  • pool_size(类型:整数,允许:任何数字,默认:4)— 维护到MySQL的连接数
  • idle_timeout(类型:整数,允许:秒,默认:300)— 到MySQL的空闲超时时间(秒)
  • connection_timeout(类型:整数,允许:秒,默认:10)— 到MySQL的连接超时时间(秒)
  • password_salt(类型:字符串,允许:任何字符串,无默认值)— 密码盐(最好是强大且长的;账户创建后不要更改此值,因为它将使它们不可用)
  • account_create_allow(类型:布尔值,允许:truefalse,默认:true)— 是否允许创建账户

[exchange]

exchange.fixer

  • endpoint(类型:字符串,允许:任何字符串,默认:https://api.apilayer.com/fixer)— Fixer API端点(在APILayer上)
  • api_key(类型:字符串,允许:任何字符串,无默认值)— APILayer API密钥(用于Fixer)

[email]

  • from(类型:字符串,允许:电子邮件地址,无默认值)— 用于发送电子邮件的电子邮件地址
  • smtp_host(类型:字符串,允许:主机名,IPv4,IPv6,默认:localhost)— 要连接的SMTP主机
  • smtp_port (类型:整数,允许:TCP端口,默认:587)—— 连接到的SMTP TCP端口
  • smtp_username (类型:字符串,允许:任何字符串,无默认值)—— 用于身份验证的SMTP用户名(如果有)
  • smtp_password (类型:字符串,允许:任何字符串,无默认值)—— 用于身份验证的SMTP密码(如果有)
  • smtp_encrypt (类型:布尔值,允许:truefalse,默认:true)—— 是否使用STARTTLS加密SMTP连接

[资产]

  • path (类型:字符串,允许:UNIX路径,默认:./res/assets/)—— Raider资产目录的路径

[品牌]

  • page_title (类型:字符串,允许:任何字符串,默认:Affiliates)—— 代理系统标题
  • page_url (类型:字符串,允许:URL,无默认值)—— 代理系统URL
  • help_url (类型:字符串,允许:URL,无默认值)—— 用于仪表板的帮助URL(例如用户可以搜索帮助的知识库)
  • support_url (类型:字符串,允许:URL,无默认值)—— 用于仪表板的客户支持URL(例如用户在有问题时可以联系您的位置)
  • icon_color (类型:字符串,允许:十六进制颜色代码,无默认值)—— 图标颜色(例如您的图标背景颜色)
  • icon_url (类型:字符串,允许:URL,无默认值)—— 图标URL,图标应该是您的方形标志,用作favicon(推荐PNG格式)
  • logo_white_url (类型:字符串,允许:URL,无默认值)—— 标志URL,标志应该是您的全宽度标志,用于登录、注册和账户恢复表单的标志(更白的标志,推荐SVG格式)
  • logo_dark_url (类型:字符串,允许:URL,无默认值)—— 标志URL,标志应该是您的全宽度标志,用作仪表板页眉标志(更暗的标志,推荐SVG格式)
  • custom_html (类型:字符串,允许:HTML,默认:空)—— 包括在代理系统head中的自定义HTML(可选)

[跟踪器]

  • track_url (类型:字符串,允许:跟踪器URL,无默认值)—— 跟踪器URL,跟踪器链接将指向该URL
  • track_parameter (类型:字符串,允许:跟踪器查询参数,默认:0.00—— URL中使用的跟踪器查询参数(例如?t=xDJSas10
  • commission_default (类型:浮点数,允许:从0.001.00的百分比,默认:0.20—— 默认佣金百分比(用于新账户)

[tracker.banner]

  • banner_url (类型:字符串,允许:图片URL,无默认值)—— 横幅图片的URL
  • size_width (类型:整数,允许:像素大小,无默认值)—— 横幅的宽度(以像素为单位)
  • size_height (类型:整数,允许:像素大小,无默认值)—— 横幅的高度(以像素为单位)

[支付]

  • currency (类型:字符串,允许:货币代码,默认:EUR)—— 用于支付(以及一般余额)的货币
  • amount_minimum (类型:float,允许:任何数字,默认:100.00)— 提现请求的最小金额
  • administrator_email (类型:string,允许:电子邮件地址,无默认值) — 分销系统管理员的电子邮件地址(提现请求的电子邮件将发送到这里)

运行Raider

可以这样运行Raider

./raider -c/path/to/config.cfg

如何在我的代码中集成Raider报告?

当您的平台上发生一笔您有tracking_id的支付(即由分销商推荐的客户进行的支付)时;您的后端需要将这笔支付提交给Raider跟踪API。需要提交全额支付金额,因为佣金百分比由Raider本身应用。

Raider报告库

👉 找不到您编程语言的库?自己构建一个并在此处引用!(联系我)

如何使用Raider HTTP API?

1️⃣ 跟踪API

支付跟踪

如果您需要手动将跟踪的支付报告给Raider端点,请使用以下HTTP配置(根据您的需要进行调整)

端点URL

HTTP POSThttps://affiliates.example.com/track/payment/<tracking_id>/

其中

  • tracking_id:与付款客户关联的跟踪标识符

请求头

  • 添加一个包含Basic认证的Authorization头,密码是您配置的server.track_token

请求数据

调整请求数据以符合您的支付上下文,并以HTTP POST的形式发送

{
  "amount": 95.00,
  "currency": "EUR",
  "trace": "Plan: Unlimited; Customer: [email protected]; Website: crisp.chat"
}

其中

  • amount:支付的全额(Raider会自行处理佣金金额,例如,如果您发送20%的佣金,金额为100.00,Raider会将其处理为20.00
  • currency:支付货币代码(如果货币与使用payout.currency配置的默认货币不同,则使用当日市场汇率进行转换)
  • trace:一个可选的跟踪值,它将记录在数据库中(可用于您的记录;这永远不会对您的分销用户可见)

注册跟踪

如果您需要手动将跟踪的注册报告给Raider端点,请使用以下HTTP配置(根据您的需要进行调整)

端点URL

HTTP POSThttps://affiliates.example.com/track/signup/<tracking_id>/

其中

  • tracking_id:与注册客户关联的跟踪标识符

请求头

  • 添加一个包含Basic认证的Authorization头,密码是您配置的server.track_token

2️⃣ 管理API

账户创建

如果您需要从您的基础设施中的第三方系统(例如,如果禁用了常规注册)在Raider数据库中创建账户,您可以通过Raider端点创建新账户,使用以下HTTP配置(根据您的需要进行调整)

端点URL

HTTP POSThttps://affiliates.example.com/management/account/

请求头

  • 添加一个包含Basic认证的Authorization头,密码是您配置的server.management_token

请求数据

调整请求数据以符合您的支付上下文,并以HTTP POST的形式发送

{
  "email": "[email protected]",
  "full_name": "John Doe",
  "address": "1 Market Street, San Francisco, CA",
  "country": "US"
}

其中

  • email:新账户的电子邮件地址(将向此电子邮件发送自动生成的密码)
  • full_name:一个可选的完整名称值,用于预先配置在创建的账户中
  • address:一个可选的地址值,用于预先配置在创建的账户中
  • country:一个可选的国家值,用于预先配置在创建的账户中

🔥 报告漏洞

如果您在Raider中发现漏洞,我们非常欢迎您直接通过发送加密邮件到@valeriansaliou(地址:[email protected])来报告。请不要在公共GitHub问题中报告漏洞,因为恶意人员可能会利用这些漏洞攻击正在运行未修补Raider服务器的生产服务器。

⚠️ 您必须使用@valeriansaliou GPG公钥加密您的邮件:[🔑valeriansaliou.gpg.pub.asc](https://valeriansaliou.name/files/keys/valeriansaliou.gpg.pub.asc)。

依赖项

~32–47MB
~849K SLoC