不用机场面板,搭建一个节点订阅程序

个人使用,不想使用机场面板,使节点变成订阅链接,更新订阅,多设备扶墙更方便。

yuniee
yuniee   Follow

# 不用机场面板,搭建一个节点订阅程序

# 🦦前言

本次介绍的项目是来自Nodeseek论坛的一个老哥写的,为了更方便的管理节点,但因为此类话题发在内板很快就被设为私有了,已经忘记是哪个老哥写的了😥,但是谢谢大佬。

很多人都觉得使用机场面板很麻烦,并且个人使用很多时候没必要,所以总想找一个只需要将节点链接放入一个txt文档便可以凭借订阅链接在各端更新所有节点的方式。所以这次介绍的程序可能适合这种要求。

# 🦛开始搭建

# 🤪准备工作

更新系统,我使用的是Debian11系统(Ubuntu同理)

apt update -y && apt upgrade -y

安装必要工具

apt install wget curl sudo vim git  -y

# 🐋安装docker,docker-compose并配置

  1. 下载docker
wget -qO- get.docker.com | bash
  1. 设置docker开机自启
systemctl enable docker
  1. 重启docker
systemctl restart docker
  1. 安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. docker-compose赋权
sudo chmod +x /usr/local/bin/docker-compose

# 🐈‍⬛项目部署

# 🐐docker run部署

1.可以使用docker run部署,只需运行以下命令,这也是论坛老哥提供的:

docker run -d --restart=always -p 10015:10015  -e  "TOKEN=dmit" -v /opt/dingyue.txt:/dingyue brownbearye/brownbearye:latest

其中的参数解释如下

-p 10015:10015 10015是订阅地址对外发布的端口,可以修改为你想要的,10015是默认端口

-e "TOKEN=dmit" 为接口的秘钥,只有秘钥正确才可以获取到接口返回的节点。你可以改为自己想要的,但最好设置的复杂一些,为了尽可能确保你的订阅安全。

-v /opt/dingyue.txt:/dingyue是存放节点信息的订阅文件在VPS上的位置,这里说明节点放到/myvps文件夹内新建的dingyue.txt文件中,以自身实际为准。这个文件内存放节点信息,每行一个节点,这里要注意。也就是说下个节点粘贴时要重新另起一行。

比如:

cd /opt
touch dingyue.txt
vim dingyue.txt

输入节点链接后输入:wq保存并退出就可以了。

部署完成后根据配置修改订阅连接来获取节点。

订阅连接的格式为:

http://你的ip:10015?token=dmit(替换为你更改的密钥)

当然你也可以在反向代理10065端口后使用域名。格式如下:

https://域名?token=dmit(替换为你更改的密钥)

反向代理可以看这里:Caddy的基础使用,下载Caddy并部署反向代理和自动签发, 续期SSL 证书

# 🐢docker-compose文件

当然,有人喜欢docker-compose,所以可以使用这个配置文件:

cd /opt/dy
vim docker-compose.yml

输入:

version: '3'
services:
  brownbearye:
    image: brownbearye/brownbearye:latest
    container_name: brownbearye_container
    restart: always
    ports:
      - "10015:10015"
    environment:
      - TOKEN=dmit
    volumes:
      - /opt/dingyue.txt:/dingyue

然后输入:wq保存并退出

最后输入:

docker-compose up -d

# 🫎源码

这是老哥当时提供的源码,一共是两个文件:

# 使用官方 Python 运行时作为父镜像
FROM python:3.8-slim-buster

# 设置工作目录
WORKDIR /app

# 将当前目录内容复制到容器的 /app 目录下
ADD . /app

# 安装 flask
RUN pip install flask

# 运行 app.py 时,Flask 服务将会启动
CMD ["python", "app.py"]
from flask import Flask, request
import base64
import os

app = Flask(__name__)

req_token = os.environ.get('TOKEN', 'brown')

@app.route('/')
def download_file():
    token = request.args.get('token')
    if token == req_token:  # 如果用户传入的token值与要求的一致
        path = '/dingyue'
        with open(path, 'rb') as file:
            file_content = file.read()
            base64_content = base64.b64encode(file_content).decode('utf-8')
            return base64_content
    else:
        return "Invalid token"


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=10015)

# 🤠后记

如果你觉得这样添加节点不方便,你可以试试alist这个强大的在线文件管理工具,在里面你可以直接在线编辑txt文件,你也可以参考这个:下载Alist来访问自己下载的本地文件

使用这个确实比搭建一个面板简单多了,并且使用起来也很方便,并且占用资源也很少。

记录一些基础但有用的玩机指南,还有我随心分享的各种内容,希望你能在这里找到你想要的