官方下载安装说明如下:
https://docs.hedgedoc.org/setup/manual-setup/
hedgedoc官方下载地址(github上发布的版本 并不支持直接部署)
https://hedgedoc.org/releases/1.10.0/
或者直接点击以下链接
https://github.com/hedgedoc/hedgedoc/releases/download/1.10.0/hedgedoc-1.10.0.tar.gz
下载之后 解压
进入bin 运行./setup
会报错 以及提供的报错信息 ,依次安装下列依赖库
步骤 1:安装 Node.js 和 npm
sudo apt-get install nodejs
这个命令会同时安装 Node.js 和 npm,因为 npm 是 Node.js 的一部分。
验证 Node.js 和 npm 是否成功安装:
node -v
npm -v
这两个命令将分别显示 Node.js 和 npm 的版本号,确认它们已正确安装。
Node.js版本要求在20.x版本以上
步骤 2:安装 Corepack
如果你的系统中没有安装 corepack
,你可以通过 npm
安装它。运行以下命令:
npm install -g corepack
安装完成后,启用 corepack
:
corepack enable
步骤 3:安装 Yarn
启用 corepack
后,你可以使用它来安装 yarn
。运行以下命令:
corepack prepare yarn@stable --activate
这将安装最新稳定版本的 yarn
并激活它。
步骤 4:重新运行 setup 脚本
完成上述步骤后,返回到 hedgedoc/bin
目录,重新运行 setup
脚本:
./setup
在yarn安装过程中会卡在最后一格
可以单独运行以下命令
yarn add webpack --dev
再重新运行 setup
脚本
最终显示done之后
回到bin的上一级目录
步骤 5:配置postgresql数据库
在 Ubuntu 中安装 PostgreSQL 的步骤如下:
1. 更新包列表
首先,确保您的包列表是最新的。打开终端并运行以下命令:
sudo apt update
2. 安装 PostgreSQL
接下来,您可以使用以下命令安装 PostgreSQL:
sudo apt install postgresql postgresql-contrib
postgresql
是 PostgreSQL 数据库的核心包。postgresql-contrib
包含一些额外的功能和工具。
3. 启动 PostgreSQL 服务
安装完成后,PostgreSQL 服务通常会自动启动。您可以使用以下命令检查服务状态:
sudo systemctl status postgresql
如果服务没有运行,可以使用以下命令启动它:
sudo systemctl start postgresql
4. 设置 PostgreSQL 用户
默认情况下,PostgreSQL 会创建一个名为 postgres
的用户。您可以切换到该用户并进入 PostgreSQL 命令行界面:
sudo -i -u postgres
psql
5. 创建新数据库和用户(可选)
在 PostgreSQL 命令行中,您可以创建新的数据库和用户。例如,创建一个名为 mydb
的数据库和一个名为 myuser
的用户:
CREATE DATABASE mydb;
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
6. 退出 PostgreSQL 命令行
完成后,您可以使用以下命令退出 PostgreSQL 命令行:
\q
8. 重启 PostgreSQL 服务
完成配置后,重启 PostgreSQL 服务以应用更改:
sudo systemctl restart postgresql
步骤 6:配置config.json
回到hedgedoc的根目录,创建config.json的 内容如下:
touch config.json
{
"production": {
"database": {
"dialect": "postgres",
"host": "localhost",
"username": "myuser",
"password": "mypassword",
"database": "mydb"
},
"urlAddPort": true,
"domain": "localhost",
"protocolUseSSL": false,
"sessionSecret": "secretkey"
}
}
步骤 7:启动HedgeDoc
之后 输入指令
NODE_ENV=production yarn start
即可在http://localhost:3000/ 中进行访问
步骤 8:持续运行
同时 由于该命令中涉及环境变量设置,使用nohup命令 在终端关闭之后 无法继续运行
故使用screen命令 来保证HedgeDoc持续运行
如果您希望在终端关闭后仍然保持 NODE_ENV=production yarn start
持续运行,使用 screen
是一个很好的选择。screen
是一个终端多路复用器,可以让您在一个会话中运行多个终端会话,并且即使您断开连接,正在运行的会话也不会停止。
使用 screen
的步骤
-
安装
screen
(如果尚未安装):
在大多数 Linux 发行版中,您可以使用包管理器安装screen
。例如,在基于 Debian 的系统上,您可以使用以下命令:sudo apt-get install screen
在基于 Red Hat 的系统上,您可以使用:
sudo yum install screen
-
启动一个新的
screen
会话:
您可以通过以下命令启动一个新的screen
会话:screen -S mysession
这里
mysession
是您为会话指定的名称,您可以根据需要更改。 -
在
screen
会话中运行命令:
一旦进入screen
会话,您可以运行您的命令:NODE_ENV=production yarn start
-
分离
screen
会话:
要分离screen
会话并返回到原始终端,您可以按下Ctrl + A
然后按D
。这将使您返回到普通的终端,而screen
会话仍在后台运行。 -
重新连接到
screen
会话:
如果您想重新连接到之前的screen
会话,可以使用以下命令:screen -r mysession
-
退出
screen
会话:
如果您完成了工作并希望退出screen
会话,可以在screen
会话中输入exit
,这将终止该会话。
Nginx反向代理
要配置 Nginx 作为反向代理以支持您的 HedgeDoc 应用程序,您可以按照以下步骤进行操作:
1. 安装 Nginx
如果您尚未安装 Nginx,可以使用以下命令进行安装:
对于 Ubuntu/Debian 系统:
sudo apt update
sudo apt install nginx
安装完成后,您可以使用以下命令启动 Nginx 服务:
sudo systemctl start nginx
并设置 Nginx 在系统启动时自动启动:
sudo systemctl enable nginx
2. 配置 Nginx
接下来,您需要创建一个新的 Nginx 配置文件或修改现有的配置文件。通常,您可以在 /etc/nginx/sites-available/
目录下创建一个新的配置文件。
例如,创建一个名为 hedgedoc
的配置文件:
sudo nano /etc/nginx/sites-available/hedgedoc
在文件中添加以下内容:
server {
listen 80;
server_name your_domain_or_ip; # 替换为您的域名或公共 IP 地址
location / {
proxy_pass http://localhost:3000; # 将请求转发到 HedgeDoc 应用程序
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
3. 启用配置
创建完配置文件后,您需要在 sites-enabled
目录中创建一个符号链接,以启用该配置:
sudo ln -s /etc/nginx/sites-available/hedgedoc /etc/nginx/sites-enabled/
4. 测试 Nginx 配置
在重新加载 Nginx 之前,您应该测试配置文件是否有语法错误:
sudo nginx -t
如果没有错误,您将看到类似于 syntax is ok
和 test is successful
的消息。
5. 重新加载 Nginx
测试通过后,您可以重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
6. 配置防火墙(如果需要)
如果您的服务器上启用了防火墙,您需要确保允许 HTTP 流量通过。对于 UFW(Ubuntu 的防火墙),您可以使用以下命令:
sudo ufw allow 'Nginx Full'
7. 修改hedgedoc配置
修改hedgedoc中的config.json
修改为
{
"production": {
"db": {
"dialect": "postgres",
"host": "localhost",
"username": "myuser",
"password": "mypassword",
"database": "mydb"
},
"urlAddPort": false,
"domain": "192.168.50.222",
"protocolUseSSL": false,
"sessionSecret": "secretkey"
}
}
重点为 “urlAddPort”: false, 来保证 HedgeDoc正确生成到其他页面和资产(如图像、样式表、字体等)的链接。
8. 访问您的应用程序
现在,您可以通过浏览器访问您的 HedgeDoc 应用程序,使用以下 URL:
http://your_domain_or_ip
总结
通过以上步骤,您应该能够成功配置 Nginx 作为反向代理,使您的 HedgeDoc 应用程序可以通过其他主机访问。