前提
云终端处理器AMD A4 micro 6400T,四核四线程,主频1Ghz,boost1.6Ghz,2G ram,64G msata。在物理机到达前,先使用模拟器进行模拟部署。
模拟器:VMpro17,base i7-9750H,主频2.6Ghz,分配四核心,2G RAM,64G ROM,安装Ubuntu Server LTS 22.04.4,一切默认,使用完整安装,跳过一切,使用50GB空间,不预选任何选项,安装openssh。
目标
部署docker环境,部署Nginx环境,尝试迁移HiNAS的web
事前准备
添加root密码
sudo passwd root
允许SSH使用root登录
sudo vi /etc/ssh/sshd_config
修改内容PermitRootLogin yes
部署Docker
安装Docker依赖
apt-get install ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加阿里源作为Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

使用apt命令安装Docker
apt-get install docker-ce docker-ce-cli containerd.io

安装部分工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
使用docker -v查看版本

开启守护进程
sudo systemctl enable docker
安装Portainer
我选择使用汉化版本的容器,以便于自己的使用习惯
docker run -d --name portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce

进入localhost:9000,设置好自己的账号密码

简单拉取一个yidadaa/chatgpt-next-web

使用localhost:3000可以看见容器正运行

部署Nginx
apt安装Nginx
sudo apt install nginx

开启守护进程
sudo systemctl enable nginx

预先开启防火墙端口
sudo ufw allow 'Nginx Full'

进入localhost

迁移HiNAS内容
使用SFTP直接导入整个文件夹
包括/var/www/内的文件夹以及/etc/nginx/locations.d文件夹

效果基本可行,但是缺乏PHP环境

安装PHP环境
添加源
sudo add-apt-repository ppa:ondrej/php
安装HiNAS同版本php
sudo apt update
sudo apt install php7.4-fpm php7.4 php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-mysql php7.4-mbstring php7.4-zip php7.4-gd php7.4-curl php7.4-xml php7.4-imagick php7.4-sqlite3
覆盖/etc/php/7.4文件夹
导入default文件进/etc/nginx/sites-available/,执行链接命令
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
同理HiNAS下其它文件

可见web显示正常,web已经整体迁移
如果需要cronweb,修改sudo权限
sudo visudo
添加以下内容
www-data ALL=(ALL) NOPASSWD: /usr/bin/crontab
接下来,Web中的老应用将在剩下的文章中单独编写