Digital Ocean 搬遷 Droplet 紀錄
原因
遇到了 ubuntu 24.10 支援終止的問題,才發現之前裝的版本不是 LTS(Long-Term Support),然後因為想切回 old-releases.ubuntu.com 重新升級系統但是沒有成功,也想試試現有架構全部在新環境部署有沒有什麼問題,所以花了一些時間搬家。
How
舊的 droplet 上面跑了5個 container,分別是:
- 這個網站的 Next.js Server
- 這個網站的內容管理系統(CMS)Strapi
- Wakawaka 前端後端各一個
- Ocean Keep Diving 的 Next.js Server
開始盤點有哪些檔案需要搬,因為大部分伺服器的檔案一開始為了版控,都是寫成 shell script 送到伺服器,不會在伺服器端做更改,後台資料則是有 DB 處理,所以看著檔案稍微檢查就可以。
server-script
|-- docker
| |-- iamivanwu-web.tar
| |-- scp-iamivanwu-web-to-server.sh
| `-- command
| |-- load-iamivanwu.sh
| |-- start-iamivanwu.sh
| |-- scp-load-iamivanwu.sh
| `-- scp-start-iamivanwu.sh
`-- nginx
|-- iamivanwu.conf
|-- restart-iamivanwu-nginx.sh
|-- scp-iamivanwu-to-server.sh
|-- scp-error-html-to-server.sh
`-- scp-iamivanwu-restart-nginx-to-server.sh
接下來連到伺服器把該裝的套件都裝好
sudo apt update && sudo apt upgrade -y
apt install -y ca-certificates curl git nginx
# docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" \
> /etc/apt/sources.list.d/docker.list
apt update
apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
systemctl enable --now docker
docker --version
docker compose version
nginx -v
# certbot
apt install -y certbot python3-certbot-nginx
sudo certbot --nginx \
-d iamivanwu.com \
-d www.iamivanwu.com
比上次多是這次裝了 certbot,之前 https 都是靠 cloudflare 幫我處理,但看了安全建議後決定自己處理一遍