remnawave项目结构
| 容器名称 | 镜像类型 | 存放的数据内容 |
| remnawave | Backend (Node.js) | 配置文件 .env(连接数据库的钥匙) |
| remnawave-db | Postgres 17.6 | 最核心: 用户信息、节点配置、所有业务数据 |
| remnawave-redis | Valkey 8.1 | 缓存数据(如果丢失,登录状态会失效,但业务不丢) |
| remnawave-nginx | Nginx | 证书文件(SSL)和反向代理配置 |
执行停机
先进入(项目根目录)
cd /opt/remnawave
在项目目录里运行:
docker compose down
你可以看到如下信息
[+] down 4/4
✔ Container remnawave Removed 1.1s
✔ Container remnawave-redis Removed 0.5s
✔ Container remnawave-db Removed 0.5s
! Network remnawave-network Resource is still in use
在服务器上打包
确保你还在 /opt/remnawave 目录下,执行以下命令将整个项目(包括配置、数据库和缓存数据)打包成一个压缩文件:
cd /opt
tar -czvf remnawave_backup_2026.tar.gz remnawave/
执行完成会看到如下信息
remnawave/
remnawave/.env
remnawave/docker-compose.yml
remnawave/nginx/
remnawave/nginx/fullchain.pem
remnawave/nginx/privkey.key
remnawave/nginx/docker-compose.yml
remnawave/nginx/nginx.conf
root@yangnode:/opt# ls -lh remnawave_backup_2026.tar.gz
-rw-r--r-- 1 root root 6.4K Apr 9 03:29 remnawave_backup_2026.tar.gz
回到项目目录(/opt/remnawave)
cd /opt/remnawave
执行这条命令可以看到备份的数据
ls -lh remnawave_backup_2026.tar.gz

下载数据压缩包

数据包完整结构

回到ssh客户端执行下面命令回到项目目录里
cd /opt/remnawave
再次执行
docker compose up -d
检查运行状态
docker ps
看看服务状态

至此备份结束。如果迁移服务器,新的服务器需要重新安装项目,备份数据直接上传解压替换即可。
权限修复(如果需要)
由于打包和上传可能会改变文件的“主人”,导致 Docker 容器启动后没权限读写数据库,建议执行一次权限重置:
chown -R root:root /opt/remnawave
chmod -R 755 /opt/remnawave
⚠️ 两个需要注意的“坑”
- 数据库版本一致性: 你在旧服务器用的是
postgres:17.6。在新服务器启动时,Docker 会自动下载最新的 17.6 镜像。只要大版本号一致,直接替换/data文件夹里的物理文件是没问题的。警示:千万不要随意把17.6改成18或其他大版本,否则数据库会因为格式不兼容而无法启动。 - 网络与证书: 如果你之前在 Nginx 里配置了 SSL 证书,且证书路径是绝对路径(比如
/etc/letsencrypt),记得也要把这些证书文件同步迁移过去,或者在新服务器上重新申请。
参考文档:https://docs.rw/
总结: 迁移不是“覆盖安装”,而是**“物理移动整个项目目录”**。只要路径一致、环境对齐、权限正确,Remnawave 就能在新服务器上无缝复活。
发表回复