因为不喜欢docker这种方式,喜欢大虚拟机这种暴力美学,有更好的隔离性,部署架构感觉也更简单清晰,出问题也相对容易排查,同时老哥也不熟悉node相关开发,踩了几个坑,还是安装好了,同时也做了相关记录,希望对一些喜欢这种方式的朋友有帮助(PS:官方社区活跃度呀,回复也太慢了,我感觉基本是自问自答。 ),发这个贴时,还出现了如下提示,哎,要保护热情哦:
废话少说,正文如下:
安装NacoBase
一、安装Rocky Linux X64
(一)存储规划
物理卷PV(物理硬盘) | VG卷组/标准分区 | LV逻辑卷/分区名 | 挂载点 | 容量(Gb) | 格式 | 备注 |
---|---|---|---|---|---|---|
nvme0n1 | 标准分区 | nvme0n1p1 | /boot | 1 | xfs | |
nvme0n1 | rl | swap | 7.85 | swap | ||
nvme0n1 | rl | root | / | 191.14 | xfs | |
(二)主机规划
nocabase:
**IP:**10.10.1.252
**hostname:**nacoserver
OS Version: Rocky-9.5-x86_64
mysql:
**IP:**10.10.1.253
**hostname:**nacodb
OS Version: Rocky-9.5-x86_64
(三)安装过程
Rocky Linux作为Cent OS很好的替代(略).
二、设置Rocky Linux并安要求安装Git、Node.js 20+、Yarn 1.22.x
(一)设置Rocky Linux
1、安装gnome-tweaks,使可以打开窗口最小化、最大化操作
[root@naco ~]# gnome-tweaks
bash: gnome-tweaks: 未找到命令...
安装软件包“gnome-tweaks”以提供命令“gnome-tweaks”? [N/y] y
[root@naco ~]# nautilus -q
(二)安要求安装Git、Node.js 20+、Yarn 1.22.x
# 默认安装的git版本为2.43.5
[root@naco ~]# yum install -y git
#安装node.js
[root@naco ~]# dnf module list nodejs
[root@naco ~]# dnf module enable nodejs:20 -y
[root@naco ~]# dnf install -y nodejs
[root@naco ~]# node -v
v20.18.2
# 安装Yarn 1.22.x
[root@naco ~]# curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
[root@naco ~]# dnf list yarn --showduplicates
[root@naco ~]# dnf install yarn-1.22.22-1
[root@naco ~]# yarn -v
1.22.22
三、安装配置MySQL 8.0.17+
[root@naco ~]# dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 确保 mysql80-community在仓库中已启用
[root@naco ~]# dnf repolist enabled | grep mysql
# 查看允许安装的版本
[root@naco ~]# dnf list mysql-community-server --showduplicates
# 安装MySQL 8.0.18
[root@naco ~]# dnf install mysql-community-server-8.0.18
# 启动服务
[root@naco ~]# systemctl start mysqld
# 配置自动启动
[root@naco ~]# systemctl enable mysqld
# 查看服务状态
[root@naco ~]# systemctl status mysqld
Out of Memory的处理(非必要,重启后正常):
The 'innodb_buffer_pool_size' variable can be set dynamically while the MySQL server is running. In addition, the InnoDB buffer size changes in chunks. It is defined by the 'innodb_buffer_pool_chunk_size' system variable. By default, that value is set to 128Mb.
注意:此时可以克隆一台虚拟机作为最开始所述的数据库服务器nacodb,和数据库有关的配置维护操作,在数据库服务器进行。
# 查询mysql临时密码
[root@nacodb ~]# grep 'temporary password' /var/log/mysqld.log
# 使用临时密码登录mysql
[root@nacodb ~]# mysql -u root -p
# 修改root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
# 查询用户
mysql> SELECT Host, User FROM mysql.user;
# 创建任意来源可访问的远程用户并授权(生产环境不建议)
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 创建指定来源可远程访问用户(生产环境)
CREATE USER 'root'@'指定来源IP' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.1.253' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 开放防火墙端口
[root@nacodb ~]# firewall-cmd --permanent --add-port=3306/tcp
[root@nacodb ~]# firewall-cmd --reload
# 重启mysql服务
[root@nacodb ~]# systemctl restart mysqld
# 测试远程连接 10.10.1.253 为数据库临时地址
[root@nacoserver ~]# mysql -h 10.10.1.253 -u root -p
四、安装NacoBase技术平台
参考官方安装文档:
https://docs-cn.nocobase.com/welcome/getting-started/installation/git-clone
- 安装前须将.env配置文件中最开头涉及docker的配置注释掉
nodejs可能因默认内存不足,启动后一会儿就报错,在执行yarn dev 或 yarn build、yarn start前在终端中导入以下环境变量,8096为8G,可根据实际情况进行调整:
export NODE_OPTIONS=--max_old_space_size=8096
- 数据库服务器IP地址有变动时,可以通过设置.env相关的连接参数,再重启nocobase即可(目前不太清楚怎么重启服务,在终端中ctrl+C,会一直killing中,就暴力重启服务器,简单直接)
- 按本文档安装好后,也可正常按官方源码升级文档进行正常升级,我就从1.6.0升到了1.6.6
- .env配置文件内容完整如下:
TZ=Asia/Shanghai
################# DOCKER #################
#ADMINER_PORT=10101
#DB_MYSQL_PORT=10102
#DB_POSTGRES_PORT=10103
#VERDACCIO_PORT=10104
# VERDACCIO_URL=http://host.docker.internal:10104/
################# NOCOBASE APPLICATION #################
# !!! When `APP_ENV=production`, opening http://localhost:13000/ will show "Not Found".
# !!! It is recommended to use nginx to proxy static files. For example https://github.com/nocobase/nocobase/blob/ee728bd9bfac2eea21c090c9fd7a1b33f636aea4/docker/nocobase/nocobase.conf
APP_ENV=development
APP_PORT=13000
APP_KEY=testting1188976ttr
API_BASE_PATH=/api/
API_BASE_URL=
# console | file | dailyRotateFile
LOGGER_TRANSPORT=console,dailyRotateFile
LOGGER_BASE_PATH=storage/logs
# error | warn | info | debug | trace
LOGGER_LEVEL=debug
# If LOGGER_TRANSPORT is dailyRotateFile and using days, add 'd' as the suffix.
LOGGER_MAX_FILES=14d
# add 'k', 'm', 'g' as the suffix.
LOGGER_MAX_SIZE=
# console | json | logfmt | delimiter
LOGGER_FORMAT=console
# Start application in cluster mode when the value is set (same as pm2 -i <cluster_mode>).
# Cluster mode will only work properly when plugins related to distributed architecture are enabled.
# Otherwise, the application's functionality may encounter unexpected issues.
# The cluster mode will not work in development mode either.
CLUSTER_MODE=
################# DATABASE #################
# postgres | mysql | mariadb | sqlite
DB_DIALECT=mysql
DB_TABLE_PREFIX=noco_
DB_HOST=192.168.66.30
DB_PORT=3306
DB_DATABASE=nacodb
DB_USER=root
DB_PASSWORD='Dbdb@#1254'
DB_LOGGING=on
# DB_UNDERSCORED=false
# sqlite only
# DB_STORAGE=storage/db/nocobase.sqlite
#== SSL CONFIG ==#
# DB_DIALECT_OPTIONS_SSL_CA=
# DB_DIALECT_OPTIONS_SSL_KEY=
# DB_DIALECT_OPTIONS_SSL_CERT=
# DB_DIALECT_OPTIONS_SSL_REJECT_UNAUTHORIZED=true
################# CACHE #################
CACHE_DEFAULT_STORE=memory
# max number of items in memory cache
CACHE_MEMORY_MAX=2000
# CACHE_REDIS_URL=
################# STORAGE (Initialization only) #################
INIT_LANG=en-US
INIT_ROOT_EMAIL=admin@nocobase.com
INIT_ROOT_PASSWORD=admin123
INIT_ROOT_NICKNAME=Super Admin
INIT_ROOT_USERNAME=nocobase
################# ENCRYPTION FIELD #################
ENCRYPTION_FIELD_KEY=
################# NOCOBASE PACKAGE AUTH #################
# service platform username
NOCOBASE_PKG_USERNAME=
# service platform password
NOCOBASE_PKG_PASSWORD=
- 完成升级最新版的截图: