私有化表格部署 Univer、Luckysheet Linux环境下

一、使用Docker部署Luckysheet

Github项目地址:https://github.com/dream-num/LuckysheetServerStarter/blob/main/README-zh.md

准备工作

yum install curl

构建项目

获取项目代码

git clone https://github.com/dream-num/LuckysheetServerStarter.git
cd LuckysheetServerStarter
#开始构建生成镜像
docker compose build
#基于redis log文件权限
chmod a+rwx ./redis/logs/
#后台启动容器
docker compose up -d 

目录结构:

[root@Gmq LuckysheetServerStarter]# pwd
/usr/local/luckysheet/LuckysheetServerStarter
[root@Gmq LuckysheetServerStarter]# tree
.
├── docker-compose.yml
├── java-server
│   ├── application-dev.yml
│   ├── application.yml
│   └── web-luckysheet-server.jar
├── LICENSE
├── nginx
│   ├── html
│   │   ├── index.html
│   │   └── luckysheet_demo.html
│   └── nginx.conf
├── postgres
│   └── init.sql
├── README.md
├── README-zh.md
└── redis
    └── redis.conf


查看docker-compose文件 根据实际情况修改 (注意如果你改了用户密码 后续可能要给数据库配置新的用户密码对接)

1. nginx 服务
作用:负责前端静态页面展示和反向代理。
关键配置:
端口映射:
行号 8–10:"80:80" 和 "443:443" —— 如果你不打算使用这两个端口或主机上已有占用,则需要修改。
卷挂载:
行号 11:将 ./nginx/nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
行号 12–13:日志目录和静态文件目录挂载,确保本地路径正确。
网络配置:
行号 14–16:指定服务在自定义网络 extnetwork 中的静态 IP 为 172.19.0.101,如有需要可调整此 IP。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
2. redis 服务
作用:提供缓存服务。
关键配置:
命令:
行号 23:使用命令 redis-server /usr/local/etc/redis/redis.conf --requirepass 123456 来启动 redis,并设置访问密码(建议修改为更安全的密码)。
端口映射:
行号 25:映射 "6379:6379",确保主机的 6379 端口空闲。
卷挂载:
行号 26–28:挂载数据目录、日志目录和配置文件,检查路径是否正确。
网络配置:
行号 29–30:在 extnetwork 中分配静态 IP 为 172.19.0.2。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
3. postgres 服务
作用:提供数据库服务。
关键配置:
端口映射:
行号 35:映射 "5432:5432",如果主机 5432 端口有冲突,需要调整。
环境变量:
行号 37–39:配置数据库用户、密码(建议修改为安全密码)和数据存放目录。
卷挂载:
行号 40–42:挂载数据目录和初始化 SQL 文件,确保数据持久化和数据库初始化正确。
网络配置:
行号 43:分配静态 IP 为 172.19.0.3。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
4. web-server(后端服务)
作用:部署 Java 后端服务。
关键配置:
基础镜像:
行号 44:使用 java:8 作为基础镜像。
端口映射:
行号 46:映射 "9004:9004",确保主机 9004 端口没有冲突。
卷挂载:
行号 47–50:将后端 jar 包和两个配置文件挂载到容器内指定位置。
启动命令:
行号 51–56:以 java -jar 命令启动服务,并加载指定配置。
网络配置:
行号 57:在 extnetwork 中分配静态 IP 为 172.19.0.4。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
5. 网络配置
作用:定义一个自定义网络 extnetwork,用于各个服务间的通信。
关键配置:
行号 59–64:定义子网 172.19.0.0/16 和网关 172.19.0.1,确保各服务 IP 地址不冲突。

服务端口

9004->9004/tcp   luckysheet-server
5432->5432/tcp   postgres
8085->80/tcp     nginx

验证

  • redis验证

docker exec -it  容器ID  redis-cli -a '123456'
  • postgres验证

#进入容器
docker exec -ti postgres /bin/bash
#登陆postgres
psql -U postgres
#列出全部数据库
\l
#切换数据库
\c luckysheetdb
#列出全部表名
\dt
#查看表数据
select * from luckysheet;
  • 验证java应用(使用测试url)

curl http://172.19.0.4:9004/luckysheet/test/constant?param=123
  • 验证nginx访问java应用

curl http://172.19.0.101/luckysheet/test/constant?param=123

访问Luckysheet demo

# 静态demo 
http://127.0.0.1
# 协同编辑模式
http://127.0.0.1?share


访问前端页面

协同模式

二、Univer(有付费和水印 弃用)

浏览了市面上很多开源服务,因为对这种项目不是很了解,所以打算部署下来体验一下,其实最好有文档协同,Univer的协同是付费模式,但我们的刚需是在内网共享表格类文件,实现私密数据的同步更新。

官网:https://docs.univer.ai/zh-CN/guides/sheets/getting-started/quickstart

  • 拉取项目包,以及安装依赖资源

先把项目包拉下来再去看官方的安装步骤 项目地址:https://github.com/dream-num/univer

  • wget 因为服务器访问不到github 我这里上传我自己的博客去拉取了

mkdir /usr/local/univer & cd /usr/local/univer
https://github.com/dream-num/univer

按照官网的说法 要从模板开始部署,

从模板开始,如果你想在本地搭建 Univer 应用,可以使用以下命令从模板创建一个新的 Univer 应用

  • 使用npm

执行以下命令需要设备安装有 nodejs >= 18, npm >= 8git

  • 安装node、npm

所以我们要先安装nodejs以及npm 官网链接:https://nodejs.org/zh-cn/download

#拉取二进制文件
wget https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz

#解压文件
tar -xvf node-v22.14.0-linux-x64.tar.xz

#进入目录
cd node-v22.14.0-linux-x64/bin

#测试是否安装成功,正确则返回版本号
./node -v

#添加 node,npm软链
ln -s /usr/local/univer/node-npm/node-v22.14.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/univer/node-npm/node-v22.14.0-linux-x64/bin/npm /usr/local/bin/npm

#测试 cd到~目录
[root@Gmq ~]# node -v
v22.14.0
[root@Gmq ~]# npm -v
10.9.2

继续部署现在我们的node.js和npm就达到了要求

执行以下命令需要设备安装有 nodejs >= 18, npm >= 8git

#更新到最新版本的 degit
npm install -g degit@latest

npx degit dream-num/univer-sheet-start-kit univer-sheet-start-kit
cd univer-sheet-start-kit

#安装之前切换到aliyun的npm镜像源
npm config set registry https://registry.npmmirror.com
#安装  安装报错的话 删除干净再重新安装(rm -rf node_modules package-lock.json)
npm install
npm run dev

访问localhost:5173 就可以访问到表格页面了

经过测试,他的协同权限、以及水印需要开通企业版本才可以实现,开源项目只适用于简易的数据存储 不满足我司的低成本保密要求

高级版本支持(数据库写入、文档协同、多样式插件等等等等)

&、安装node、npm

所以我们要先安装nodejs以及npm 官网链接:https://nodejs.org/zh-cn/download

#拉取二进制文件
wget https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-x64.tar.xz

#解压文件
tar -xvf node-v22.14.0-linux-x64.tar.xz

#进入目录
cd node-v22.14.0-linux-x64/bin


私有化表格部署 Univer、Luckysheet Linux环境下
https://www.gmqgmq.cn//archives/sy-table
作者
啊耿不累
发布于
2025年03月11日
许可协议