惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
小众软件
小众软件
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
S
SegmentFault 最新的问题
H
Help Net Security
量子位

Casear的技术栈

Dell R730xd iDRAC 无法创建 RAID Ubuntu 26.04 编译 asusctl Ubuntu 26.04 装 NVIDIA 580 内网异机备份 conf 驱动 Razer_GRUB_Theme Fcitx5 输入法配置:切换中文输入法 服务器 zsh 环境配置记录:Zim + p10k + eza + zoxide # ThinkPad T490s Linux 指纹模块启用指南(KDE vanblog使用picgo图床的完整部署教程 vanblog备份恢复评论数据 如何配置一个虚拟显示器,以便远程没有显示器的系统 解决 OpenConnect VPN 由于 JScript 引擎丢失导致的 Error 1 修复 Fuck 2025 ATT&CK红队评估实战靶场二 一言 解决kde环境下切换登陆屏幕(SDDM)后显示异常 rss Linux实用软件分享 Kubuntu 上安装 显卡驱动 和 EnvyControl kubuntu 搜狗输入法安装问题解决 终端工具的选择 chatlog 青龙面板+wxBotWebhook实现自动推送天气 mac 安装 第三方应用问题 zsh 安装与配置,使用 oh-my-zsh 美化终端 pve虚拟机硬盘直通 tldr-pages 安装 pve安装Arch-linux Arch-linux安装桌面环境 提问的艺术极简板
Waline 服务端独立部署解决方案
casearx@foxm · 2024-08-30 · via Casear的技术栈

请注意,本文编写于 653 天前,最后修改于 653 天前,其中某些信息可能已经过时。

Waline 是一个基于 LeanCloud 的评论系统,它是 Valine 的一个分支,提供了一些改进和新功能。Waline 旨在为博客、网站和其他在线平台提供简洁、安全的评论服务。

准备工作

Waline官网独立部署文档,官网采用docker独立部署,更为方便快捷。本文讲述在服务器或者自己电脑上用node包的样式来运行(虽然不知道为什么要在自己电脑上运行,但我5点爬起来就这么干了)

Waline的数据库文件 waline.sql

环境变量配置参考表

环境变量名称必填默认值备注
MYSQL*HOST127.0.0.1MySQL 服务的地址
MYSQL_PORT3306MySQL 服务的端口
MYSQL_DBMySQL 数据库库名
MYSQL_USERMySQL 数据库的用户名
MYSQL_PASSWORDMySQL 数据库的密码
MYSQL_PREFIXwl*MySQL 数据表的表前缀
MYSQL_CHARSETutf8mb4MySQL 数据表的字符集
MYSQL_SSL是否使用 SSL MYSQL 连接数据库

方法1

在linux操作系统下,可以直接修改主目录下的.bashrc文件 写入

export MYSQL_HOST=12.12.12.12 export MYSQL_PORT=3306 export MYSQL_DB=waline

填写完成后保存文件并执行以下命令刷新:


该方法是直接导出系统级的环境变量,使waline 服务端可以从process.env对象中顺利读取到,而这样定义的全局环境变量存在一个弊端,就是会污染到全局,可能会干预到其他项目,而且 windows 与 linux 的配置方法各不相同。所以这里并不推荐,而是更推荐使用方案二

方法2

在使用Node.js进行项目开发时,可以通过process.env对象访问环境变量。而dotenv是一个流行的Node.js库,它允许你将环境变量配置在一个.env文件中,这个文件通常位于项目的根目录下。使用dotenv的好处是不会污染全局环境变量,并且可以使配置和代码分离,便于管理和维护。

  1. 安装dotenv:首先,需要在你的Node.js项目中安装dotenv库。

    
    
  2. 创建.env文件:在项目的根目录下创建一个.env文件,并在其中定义所需的环境变量。

    # .env 文件示例 MYSQL_HOST=127.0.0.1 MYSQL_PORT=3306 MYSQL_DB=waline MYSQL_USER=root MYSQL_PASSWORD=yourpassword

  3. 创建入口文件:在入口文件main.js顶部引入并配置dotenv

    / 引入dotenv const dotenv = require('dotenv') // 调用config方法合并.env环境变量 dotenv.config() // 引入并执行该文件 require('@waline/vercel/vanilla.js') ```

使用dotenv的好处是,它只在当前项目中有效,不会影响到其他项目或全局环境。此外,.env文件通常不会被加入到版本控制系统(如git),这样可以避免敏感信息(如数据库密码)泄露。

至此,项目构建完成,可以在本地启动进行测试

image.png