学习笔记
未读
OpenWrt 编译 PostgresSQL 插件
本文详细介绍了在OpenWrt系统中,为支持Lobe Chat服务端所需的PostgreSQL数据库及pgvector插件的编译与安装过程。作者因OpenWrt自带Postgres不支持pgvector,采用iStoreOS源码及官方feeds配置,在虚拟机中编译PostgreSQL。为集成pgvector插件,作者参考pgvector仓库关闭的PR,将插件源码放入PostgreSQL contrib目录并修改Makefile,实现插件随主程序一同编译。初次启用插件时出现“Illegal instruction”错误,经过调整pgvector的Makefile删减编译优化选项成功解决。最终通过修改PostgreSQL的OpenWrt打包配置,在编译过程中自动解压并集成pgvector插件,实现插件正常加载。文章附带了完整的PostgreSQL Makefile与详细步骤,为在嵌入式系统中集成特定Postgres插件提供了实用参考,尽管过程较为复杂但成功解决了功能扩展的难题。
学习笔记
未读
使用OpenAI代替Copilot
本文介绍了如何使用OpenAI的gpt-3.5-turbo-instruct模型替代GitHub Copilot,实现代码补全功能。项目源码托管在GitHub(https://github.com/linux-do/override),并提供了免费签到的代理站点供调用API。服务端通过Docker Compose构建镜像,配置文件需修改代理API地址(需带/v1路径)、绑定地址为0.0.0.0及对应密钥。容器启动后,用户需在本地IDE中安装Copilot插件,并修改验证域名为cocopilot.org以通过登录验证,再通过脚本替换插件地址为本地部署地址。文中附示例截图展示代码补全与聊天功能实际效果及日志情况。此方案适合在代理环境下或自行搭建服务,灵活调用OpenAI模型,实现更低成本和更自由的代码生成体验。文末还推荐了结合Azure OpenAI使用的扩展教程。整体流程简洁,适合有Docker和代理需求的开发者参考部署。
学习笔记
未读
Nginx HTPP/HTTPS 使用相同的非标准端口
本文介绍了在无法使用常规端口进行项目部署时,如何利用Nginx实现非标准端口上的无感HTTP到HTTPS跳转。通过添加Nginx的`stream`模块,定义基于协议的流量映射,将用户暴露的非标准端口(如8888)上的请求,根据是否开启SSL自动转发到HTTP(如80端口)或HTTPS(如443端口)后端,实现协议无感知跳转。示例中,`stream`模块配置了upstream和映射规则,主配置则为常规的80和443端口HTTPS站点配置,包含标准的SSL证书及安全策略。此方法特别适用于特定场景下的项目升级或备案前阶段,既保证用户体验的无缝切换,也支持后续恢复常规端口访问,兼具灵活性和实用性。
学习笔记
未读
自定义ChatGPT代理接口
本文介绍了PandoraNext项目因停止更新,推荐用户转向使用新的Ninja项目来搭建ChatGPT代理服务。PandoraNext的搭建流程已失效,不再维护;其依赖的公开fakeopen API代理也已成为历史,需要自行搭建代理接口。作者提供了Ninja项目的Docker安装方法,支持通过容器快速部署,仅能实现Access Token获取及GPT3.5聊天功能,涉及登录和GPT4功能需要额外验证码配置。
此外,文中说明了如何使用Docker自建专属网络,确保bncr插件能够稳定访问Ninja容器,规避重启后IP变动问题。并详细指导如何修改bncr插件中的ChatGPT接口地址,替换为Ninja的访问地址和固定端口(7999),以完成代理连接。最后,作者还提到Ninja支持Session Token和Refresh Token机制,可实现Access Token自动更新,提升插件自动化和稳定性。整体内容适合有一定Docker和网络配置基础的用户快速迁移至Ninja方案。
学习笔记
未读
OpenWrt配置Java环境
本文介绍了如何在OpenWrt系统的aarch64设备(如N1)上安装并配置JDK 8以运行Java程序。由于Oracle官网JDK无法直接使用,作者选择从Alpine Linux社区下载对应版本的OpenJDK 8。首先,根据设备架构定位合适的JDK安装包,并编写Shell脚本批量下载、解压相关apk包,将JDK文件移动到指定路径。然后,通过修改`/etc/profile`配置环境变量(`JAVA_HOME`、`PATH`、`CLASSPATH`),使系统识别JDK。安装完成后,遇到Java程序运行时缺少`libnss`库的问题,通过`opkg`命令安装该依赖库解决。最终,Java环境配置成功,能够在N1设备上正常运行Java程序。文章提供了详细的步骤和脚本示例,适合在类似环境下安装JDK的用户参考。
MySQL
未读
CentOS7在线安装MySQL5.7
本文详细介绍了在CentOS系统上在线安装MySQL 5.7的步骤。首先,通过wget下载并安装MySQL官方仓库及服务器软件,遇到证书问题时需要重新导入MySQL的官方GPG密钥以确保安装成功。安装完成后,启动MySQL服务并从日志中获取初始密码,登录后修改root账户密码。针对MySQL默认的密码安全策略,文章提供了调整密码复杂度阈值的SQL命令以允许简易密码。接着,配置MySQL允许root用户远程访问,并刷新权限表。最后,针对MySQL默认编码的不足,推荐将数据库及客户端编码统一设置为utf8mb4,避免表情符号等字符的兼容问题。通过编辑`/etc/my.cnf`文件修改编码配置后,重启MySQL服务,使设置生效,实现更完善的字符支持和远程管理功能。
学习笔记
未读
Shell + 七牛存储桶 自动备份MySQL
本文介绍了基于Shell脚本,定时备份MySQL数据库并上传至七牛云存储的完整实现方案。首先,下载并配置了七牛云命令行工具qshell,通过个人中心获取密钥完成账号绑定。然后,编写备份脚本`mysql_data_backup.sh`,实现了备份MySQL所有用户库的全量数据和表结构,备份文件按时间目录存储,并设置自动清理超过13天的旧备份。脚本完成后,将各备份文件压缩加密打包,并利用qshell上传到指定七牛云存储桶。为实现自动化,使用crontab添加定时任务,每天凌晨执行备份脚本,备份日志存储于指定目录。整个流程保障了数据库数据的多重备份,有效降低因误操作或服务器异常导致数据丢失的风险,适合需要稳定数据库备份与云端存储管理的环境。
MySQL
未读
MySQL使用Binary Log日志恢复误删除数据
文章介绍了作者因操作失误导致图床数据库所有表数据被清空,通过利用MySQL的binlog日志成功实现全量数据恢复的过程。首先确认MySQL已开启binlog日志功能,然后进入数据库数据目录,定位最新的binlog日志文件。通过`mysqlbinlog`命令导出日志内容,结合具体时间点筛选恢复所需的操作记录,使用`--stop-datetime`参数指定恢复截止时间,将符合条件的binlog日志按顺序导入数据库。最终,数据被成功恢复。该方法适用于数据量不大、需要完整恢复库内所有表数据的场景,利用MySQL的日志机制,实现了高效、精准的数据回滚,是一种实用的应急恢复手段。
学习笔记
未读
Joe主题自动生成文章目录
本文介绍了如何为不支持目录功能的Joe主题添加文章大纲导航。首先,基于GitHub上已有的AutocJS方案进行了样式优化,使生成的文章目录更符合Joe主题风格。然后,详细说明了在Joe主题全局设置中添加CSS样式及引入AutocJS相关脚本,实现自动生成文章大纲及侧边栏导航的功能。接着,作者介绍了如何去除主题自带的按钮功能,并在页面固定位置新增自定义目录切换按钮,附带SVG图标代码示例。最后,针对自定义按钮无法展开目录的问题,通过调试和修改JS代码实现按钮与目录导航的联动,完成了目录功能的整体集成。该方案虽非官方完善版本,但能满足日常使用需求,提升了Joe主题的阅读体验和文章导航便捷性。