博客

  • 为蓝空图床后台添加获取token入口

    兰空图床 V2 免费版的 token 需要使用第三方请求来获取,非常的不方便,所以我们需要在后台程序中加了一个 post 请求,使用异步请求来获取 token,这就非常方便了!

    添加代码

    在 /resources/views/common/api.blade.php 文件里合适的位置添加以下代码:

    <div>
                    <p class="text-lg text-gray-700 font-semibold">Tonken 获取</p>
                    <script src="//lib.baomitu.com/jquery/1.12.4/jquery.min.js"></script>
                    <form id="token" action="{{ request()->getSchemeAndHttpHost() }}/api/v1/tokens" method="POST">
                        <div class="my-2 text-sm">
                            <div class="form-group qqlogin" style="display: none;">
                                <div class="input-group-addon">邮箱</div>
                                <input type="email" id="email" name="email" value="{{ Auth::user()->email }}">
                            </div>
                            <div style="display: inline-flex;position: relative;">
                                <div class="px-4 py-3 text-right sm:px-6" style="color: #555;background-color: #eee;border: 1px solid #ccc;">密码</div>
                                <input type="password" id="password" name="password" placeholder="输入你的密码">
                                <a href="javascript:;" class="button px-4 py-3 sm:px-6" style="color: #fff;background-color: #337ab7;border-color: #2e6da4;margin-left:10px;">
                                    <div>点击获取</div>
                                </a>
                            </div>
                            <div class="list-group">
                                <x-code>
                                    <span style="color:tomato;user-select: none;">token:</span><span id="tokenCode"></span>
                                </x-code>
                            </div>
                    </form>
                    <script>
                        $(document).ready(function(){
                            $("#token .button").click(function() {
                                var url = $("#token").attr("action");
                                var email = $("#email").val();
                                var password = $("#password").val();
                                $.ajax({
                                    type: 'post',
                                    url: url,
                                    data: {
                                        email: email,
                                        password: password
                                    },
                                    success: function(data) {
                                        if (data.status == true) {
                                            $("#tokenCode").html('Bearer ' + data.data.token)
                                        } else {
                                            if (data.message == "password 不能为空。") {
                                                $("#tokenCode").html("密码不能为空!")
                                            } else if (data.message == "The email address or password is incorrect.") {
                                                $("#tokenCode").html("请确认密码是否正确!")
                                            }
                                        }
                                    },
                                    error: function(){
                                        $("#tokenCode").html("请求过于频繁,请稍后再试!")
                                    }
                                });
     
                            });
                        });
                    </script>
                </div>

     

    添加位置

    刷新

    建议使用强制刷新 Ctrl+F5

    结语

    其实实现原理很简单,就是使用 jQuery 的 Ajax 来获取的。

  • Redis安装失败记录

    问题

    今天在安装Redis的时候,发现怎么也装不上,换版本也不行。用了apt update也没有解决。

    方法

    在/www/server/panel/install/目录下,找到redis.sh文件。在redis.sh脚本make后面加OPENSSL_PREFIX=/usr/local/openssl然后再到命令行下执行命令安装,不要再面板内软件商店内安装。 宝塔终端执行:

    bash /www/server/panel/install/redis.sh install 7.2

     

    插入位置:

  • 为1panel添加第三方应用商店

    为1panel添加第三方应用商店

    简介

    这是一些适配1Panel商店2.0版本的docker应用配置。

    致力于一键运行各种 Docker 应用。无需复杂配置,享受便利和高效。

    1Panel第三方应用商店应用分类合集与介绍 https://1p.131.gs 感谢作者@包子叔

    使用方式

    默认1Panel安装在/opt/路径下,如果不是按需修改以下。

    国内网络

    GitHub加速方式

    (本仓库已添加)自建:https://github.com/hunshcn/gh-proxy https://mirror.ghproxy.com

    使用 git 命令获取应用

    1Panel计划任务类型Shell 脚本的计划任务框里,添加并执行以下命令,或者终端运行以下命令,

    git clone -b localApps https://mirror.ghproxy.com/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps 
    cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/ 
    rm -rf /opt/1panel/resource/apps/local/appstore-localApps

    然后应用商店刷新本地应用即可。

    使用压缩包方式获取应用

    1Panel计划任务类型Shell 脚本的计划任务框里,添加并执行以下命令,或者终端运行以下命令,

    wget -P /opt/1panel/resource/apps/local https://mirror.ghproxy.com/https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip

    unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip

    cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/

    rm -rf /opt/1panel/resource/apps/local/appstore-localApps

    rm -rf /opt/1panel/resource/apps/local/localApps.zip

    然后应用商店刷新本地应用即可。

    国际互联网络
    使用 git 命令获取应用

    1Panel计划任务类型Shell 脚本的计划任务框里,添加并执行以下命令,或者终端运行以下命令,

    git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
    
    cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
    
    rm -rf /opt/1panel/resource/apps/local/appstore-localApps
    

    然后应用商店刷新本地应用即可。

    使用压缩包方式获取应用

    1Panel计划任务类型Shell 脚本的计划任务框里,添加并执行以下命令,或者终端运行以下命令,

    wget -P /opt/1panel/resource/apps/local https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip
    
    unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip
    
    cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
    
    rm -rf /opt/1panel/resource/apps/local/appstore-localApps
    
    rm -rf /opt/1panel/resource/apps/local/localApps.zip
    

    然后应用商店刷新本地应用即可。

    备注

    未显示在本地应用列表里的,表示未完全适配应用商店面板操作

    但是支持直接终端运行。

    本仓库应用基本支持直接 docker-compose up 运行

    以rustdesk为例

    #进入 rustdesk 的最新版本目录 cd /opt/1panel/resource/apps/local/rustdesk/versions/latest/

    #复制 .env.sample 为 .env cp .env.sample .env

    #编辑 .env 文件,修改参数 nano .env

    #启动 RustDesk docker-compose up -d

    #查看连接所需密钥 cat ./data/hbbs/id_ed25519.pub

  • 宝塔安装Nginx失败

    宝塔安装Nginx失败PixPin_2025-04-30_14-46-22.png

    简介

    今天甲骨文新开的服务器中,先安装了1panel,但是创建环境及容器的时候,总是提示超时,然后连接失败,重启服务器才能重新链接。不爽的卸载了1panel,还是用回了宝塔。在宝塔安装套件的时候,只有Nginx一直安装失败。

    过程

    1、没有看报错原因,想着还是依赖库或者源的问题 执行了依赖库更新

    apt-get update
    apt-get install libgd2-xpm libgd2-xpm-dev
    

    没有成功,依然安装失败 更新源,切换Yum/Apt源,任然失败 2、想起来翻看了报错原因PixPin_2025-04-30_14-46-37.png原来是端口被占用,应该是1panel的openresty没有清楚干净

    • 不清除openresty用不了
    • 清楚openresty,安装Nignx 1.24
    ps -ef | grep nginx 
    进入sbin目录
    cd /usr/local/openresty/nginx/sbin
    ./nginx -s stop
    
    sudo find / -name openresty
    
    sudo rm -rf  此处跟查找出来的openresty文件
    

    PixPin_2025-04-30_15-20-23.png重新安装,成功

    结果

    安装不规范,处理两行泪。切换环境的时候最好重新安装一下镜像。

  • 宝塔SSL配置与cloudflare代理问题

    发现一个问题,宝塔开启SSL后绑定cloudflare代理的域名,会打不开,显示重定向次数过多,之前没注意到,还以为是缓存的问题,或者缓存插件冲突了。PixPin_2025-04-30_21-26-19.png在突然间用docker部署的应用,在启动后第一时间打开了进入安装界面,等我用宝塔去给这个域名设置SSL后,就显示该界面,重定向次数过多,关闭cloudflare代理或者宝塔的SSL都可以解决。 记录一下。

  • 开源项目mrdoc分享

    开源项目mrdoc分享

    开源地址:Gitee

    项目概述

    mrdoc 是一个专注于文档管理和知识图谱构建的开源项目,旨在通过自然语言处理技术,帮助用户快速构建和维护高质量的文档知识库。它支持多种格式的文档输入,包括PDF、Word、Markdown等,并能够自动生成结构化的知识图谱,方便用户进行检索和管理。

    mrdoc 的主要特点包括:

    • 多语言支持:支持多种语言的文档处理。
    • 自动知识图谱构建:通过NLP技术自动生成实体、关系等结构化数据。
    • 用户友好界面:提供Web和移动端的访问方式。
    • 社区驱动:鼓励用户贡献和反馈,持续优化功能。

    项目功能

    1. 文档上传与管理
      • 用户可以通过上传本地文件或云存储(如阿里云OSS、腾讯云OSS等)进行文档管理。
      • 提供文件夹结构化管理功能,方便用户组织文档。
    2. OCR文字识别
      • 支持将扫描件或拍照文档转换为可编辑的文本内容。
      • 提供OCR错误校正功能,帮助用户快速修正识别错误。
    3. 知识图谱构建
      • 通过自然语言处理技术,自动识别文档中的实体和关系。
      • 生成结构化的知识图谱,支持多种格式导出(如JSON、GraphML等)。
    4. 检索与分析
      • 提供基于知识图谱的语义检索功能,支持关键词搜索、相似文档推荐等。
      • 支持数据可视化,帮助用户直观了解知识图谱结构。
    5. 扩展模块
      • 支持自定义规则和扩展功能,用户可以根据需求添加新的处理逻辑。
      • 提供API接口,方便与其他系统集成。

    部署过程

    1. 通过Docker部署
    • 获取 MrDoc 代码
    # 进入opt
    cd /opt
    # 拉取代码
    git clone https://gitee.com/zmister/MrDoc.git
    
    • 获取 Docker 镜像
    # 在线拉取
    docker pull zmister/mrdoc:v9.2
    
    • 运行 Docker 容器
    docker run -d --name mrdoc --restart always -p 10086:10086 -v /opt/MrDoc:/app/MrDoc zmister/mrdoc:v9.2
    
    • 管理
    # 创建管理员账户
    docker exec -it mrdoc python manage.py createsuperuser
    # 会提示设置账户、邮箱、密码
    
    • 其他命令
    #停止容器
    docker stop mrdoc
    #启动容器
    docker start mrdoc
    #删除容器
    docker rm -f mrdoc
    #查看日志
    docker rm -f mrdoc
    
    1. Docker Compose
    • 上传/复制docker-comepose.yml
    version: '3'
    services:
      mrdoc:
        image: zmister/mrdoc:v9.1  # 镜像名称和标签
        volumes:
          - ${PWD}:/app/MrDoc  # 挂载代码目录
        ports:
          - "10086:10086"
        restart: always
        dns:
          - 8.8.8.8
          - 114.114.114.114
    
    • 拉取代码并部署
    git clone https://gitee.com/zmister/mrdoc-install.git && cd mrdoc-install && chmod +x docker-install.sh && ./docker-install.sh
    
    1. 访问 访问地址:localhost:10086 根据需求进行反向代理绑定域名访问

    使用场景

    • 企业文档管理:帮助公司快速整理和管理内部文档,提升知识共享效率。
    • 学术研究:支持研究人员构建和分析学术论文、研究报告等文档。
    • 知识管理:为用户提供结构化的知识库,方便检索和管理。

    通过以上流程,可以顺利地将mrdoc项目进行分享和部署。