mirror of
https://github.com/hansjone/netx.git
synced 2026-10-15 06:03:18 +08:00
Linux README: install location, start/stop and offline upgrade details.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
9b2c72fe4f
commit
ae87dee7f2
1 changed files with 31 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# NetX Linux 发行版 / Linux release
|
||||
|
||||
一个离线安装包 `netx-<版本>-linux-x86_64.tar.gz`:自带 Python 3.12、全部依赖、PostgreSQL 16 和网页,目标机器上**不需要预装任何软件**(只要 bash、tar、gzip、useradd 这些系统自带命令)。
|
||||
一个离线安装包 `netx-<版本>-linux-x86_64.tar.gz`:自带 Python 3.12、全部依赖、PostgreSQL 16 和网页,目标机器上**不需要预装任何软件**(只需要 bash、coreutils、useradd 这些系统自带的东西,再加上解压用的 tar)。
|
||||
|
||||
## 支持的系统
|
||||
|
||||
|
|
@ -16,6 +16,16 @@ cd netx-0.4.19-linux-x86_64
|
|||
sudo ./install.sh
|
||||
```
|
||||
|
||||
**解压到哪里、文件夹叫什么都可以**:`install.sh` 按自己所在的位置找包里的文件,并把程序复制到 `/opt/netx`、数据放到 `/var/lib/netx`。装完后,解压出来的文件夹和 tar.gz 都可以删掉,不影响运行和以后的升级。
|
||||
|
||||
想放到别的位置(比如数据盘 `/data`)时,安装时指定,之后 `netxctl` 会自动记住:
|
||||
|
||||
```bash
|
||||
sudo ./install.sh --prefix /data/netx --data /data/netx-data
|
||||
```
|
||||
|
||||
全部安装参数见 `./install.sh --help`。
|
||||
|
||||
交互式安装会依次询问:监听地址(默认 `0.0.0.0`)、**Web/API 端口**(默认 8890,被占用会提示重新输入)、数据库(内置 / 外置)、**内置 PostgreSQL 端口**(默认 15432,只监听 127.0.0.1)。
|
||||
|
||||
非交互示例:
|
||||
|
|
@ -40,9 +50,21 @@ sudo ./install.sh --yes --db external --db-url 'postgresql+psycopg://netx:密码
|
|||
|
||||
## 日常管理
|
||||
|
||||
启动和停止:
|
||||
|
||||
```bash
|
||||
sudo netxctl start # 启动,等页面能访问后才返回
|
||||
sudo netxctl stop # 停止(API、后台任务、内置 PostgreSQL 一起停)
|
||||
sudo netxctl restart
|
||||
sudo netxctl status # 是否在运行、版本、端口、数据库模式
|
||||
```
|
||||
|
||||
- 有 systemd 的系统(绝大多数服务器):默认开机自启,进程崩溃后 5 秒内自动拉起。`netxctl start/stop` 内部调用的就是 systemd,也可以直接用 `sudo systemctl start|stop netx`;不想开机自启时执行 `sudo systemctl disable netx`。
|
||||
- 没有 systemd 的环境(如容器):`netxctl start/stop` 一样能用,但不会开机自启,服务器重启后要手动执行 `sudo netxctl start`。
|
||||
|
||||
其他管理命令:
|
||||
|
||||
```bash
|
||||
sudo netxctl status
|
||||
sudo netxctl stop | start | restart
|
||||
sudo netxctl logs api -f # api / worker / biz0 / pg / netxctl
|
||||
sudo netxctl set-port 9890 # 改 Web/API 端口(检查占用,失败自动回滚)
|
||||
sudo netxctl set-bind 127.0.0.1
|
||||
|
|
@ -55,7 +77,11 @@ sudo netxctl uninstall # 保留数据;--purge 连数据一起删除
|
|||
## 更新
|
||||
|
||||
- 在线:`sudo netxctl check-update`、`sudo netxctl update`。更新源与 Windows 版一致(GitHub、Forgejo,可用 `.env` 里的 `NETX_UPDATE_*` 覆盖),下载后校验 sha256。
|
||||
- 离线:`sudo netxctl update --file netx-0.4.20-linux-x86_64.tar.gz`,或者解压新包后执行 `sudo ./install.sh`(自动识别为更新)。
|
||||
- 离线:把新包拷到服务器,两种方式任选,效果一样,**不需要重新安装**:
|
||||
- `sudo netxctl update --file netx-0.4.20-linux-x86_64.tar.gz`
|
||||
- 解压新包后执行 `sudo ./install.sh`:检测到已有安装后默认选"更新",不会再问端口和数据库。
|
||||
|
||||
把同名的 `.sha256` 文件放在包旁边,会自动校验包是否完整。包的版本不高于当前版本时会拒绝;确实要重装同一版本,加 `--force`。
|
||||
- 自动:`sudo netxctl auto-update on`(每天 03:30 左右;systemd timer,没有 systemd 时用 cron)。
|
||||
|
||||
更新会先停服务,把内置数据库备份到 `backups/pre-<版本>-*.dump`(保留 3 份),然后切换版本并启动。新版本没起来就自动切回旧版本。端口、数据库等配置保持不变。
|
||||
|
|
@ -71,7 +97,7 @@ packaging/linux/build_linux_release.sh --skip-web-build # 复用现成的 web/
|
|||
|
||||
- 第一次会从源码编译 PostgreSQL,结果缓存在 `packaging/cache/linux/`。
|
||||
- `check_bundle.sh` 检查所有 ELF:要求的 glibc 不超过 2.17,并且依赖的库都在包里。
|
||||
- 冒烟测试(断网,在一个裸发行版容器里完整走一遍安装、改端口、更新和卸载):
|
||||
- 冒烟测试(断网,在一个裸发行版容器里完整走一遍安装、改端口、更新和卸载;镜像里没有 tar 时,先在宿主机解压,再把解压目录作为第二个参数传入,见 `release-linux.yml`):
|
||||
|
||||
```bash
|
||||
docker run --rm --network none -v "$PWD/packaging/release:/pkg:ro" \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue