HedgeDoc多人协作文档在Linux服务器中的部署

官方下载安装说明如下:
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 的步骤

  1. 安装 screen(如果尚未安装):
    在大多数 Linux 发行版中,您可以使用包管理器安装 screen。例如,在基于 Debian 的系统上,您可以使用以下命令:

    sudo apt-get install screen
    

    在基于 Red Hat 的系统上,您可以使用:

    sudo yum install screen
    
  2. 启动一个新的 screen 会话
    您可以通过以下命令启动一个新的 screen 会话:

    screen -S mysession
    

    这里 mysession 是您为会话指定的名称,您可以根据需要更改。

  3. screen 会话中运行命令
    一旦进入 screen 会话,您可以运行您的命令:

    NODE_ENV=production yarn start
    
  4. 分离 screen 会话
    要分离 screen 会话并返回到原始终端,您可以按下 Ctrl + A 然后按 D。这将使您返回到普通的终端,而 screen 会话仍在后台运行。

  5. 重新连接到 screen 会话
    如果您想重新连接到之前的 screen 会话,可以使用以下命令:

    screen -r mysession
    
  6. 退出 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 oktest 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 应用程序可以通过其他主机访问。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值