iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Modern Web

「如何從零到一:打造你的首個 Side Project」系列 第 12

Day 12: 島島阿學的開發經驗分享 - 新功能終於要上線

  • 分享至 

  • xImage
  •  

上線前的測試與修正

功能終於做的差不多了,是時候接受大家的考驗了,感謝大家列了洋洋灑灑一長串待修正內容,開始進入無情的修正機器模式。

https://ithelp.ithome.com.tw/upload/images/20240913/20162644O32zzkSnkn.png

上線前的準備

功能都差不多開發與修正的差不多了,要來考慮一下部署,由於要同時處理伺服器存放與資料庫建置,想說之前都是用一鍵部署的雲端平台服務,一方面想要省錢,一方面也想藉此熟悉Linux系統操作,最後選了租借虛擬主機來做。

如何部署

前端部分,前人就已經完成了,不太需要去煩惱,也不宜去動,只會為自己增加風險與煩惱,於是專心思考後端與資料庫要怎麼處理。

前端部署

前端的部署使用Cloudflare Pages,搭配github action做CICD。
網域也是在Cloudflare購買與設定DNS。

後端部署

原本測試都是用有用過render\vercel,mongodb是用mongodb atlas,由於對於之後流量的不確定性,想說還是盡可能不要太花錢,深怕漏看這些平台的計價資訊,一不小心帳單就爆表。

最後選了租虛擬主機,用來起後端伺服器與資料庫。

  • 容器化

    使用Docker-compose

  • CICD設定

    準備repo與workflow

  • 虛擬主機

    到linode註冊,開一個最便宜的方案

    設定ssh登入

  • 域名轉址設定

    在Cloudflare設定DNS
    需分正式與測試環境子網域

遇到的部署挑戰與解決方案

  • ssh permision denied

    最後是用了不同的action 來解決

  • linode會擋寄信服務

    參考網路上的教學解決:Linode伺服器無法寄送信件

  • google 登入不能接受子域名後面加上/xxx

    DNS設定兩個不同子域名
    Nginx設定根據域名導向不同環境的主機服務

上線的荒唐事

上線後發現手機版RWD有問題

  • 個人資料頁面跑版
  • 手機版登入後的回不了個人頁,因為漢堡選單漏改了

會發生除了前端沒注意到之外,大家在測試也很少用手機版畫面去測,都開著筆電瀏覽器,發現的時候已是半夜一點,於是乎,許久未開發前端的我,再次發起前端挑戰,搞了一個多小時才緊急修了一個堪用版本,再請前端大大之後抽空協助補正。

https://ithelp.ithome.com.tw/upload/images/20240913/20162644Kk8suT2EuP.pnghttps://ithelp.ithome.com.tw/upload/images/20240913/20162644DSYQH0iE59.png

資料庫資料消失

修完後已是昏昏沈沈,再補了幾筆資料,不至於讓頁面空空的之後,終於可以來睡了。

沒想到隔天早上醒來一看,資料都消失了,但查了mongodb服務沒有重啟,也有掛volume,log沒有報錯,到底是為什麼?

不過在db有看到底下的資訊

https://ithelp.ithome.com.tw/upload/images/20240913/20162644vFPUKFG89F.jpg

把遇到的情況丟google,竟然找到類似的狀況,原來我被勒索了...

mongoDB 数据莫名其妙的没了

原來是被掃到虛擬主機IP位置,資料庫被綁架,而且只綁架prod的資料庫,dev的還好好的,真是會挑?

最後發現是因為我在docker-compose yaml 設定公開對外的port,所以可以連到資料庫,關掉就解決了。


這過程蠻有收穫的,部署前的挑戰與問題,到上線前端大大協助合併一整年的commit&解衝突,上線後的荒唐事,都覺得很有意思。

有關Side Project Taiwan的簡介

Side Project Taiwan 的宗旨是藉由Side Project開發來成就自我,透過持續學習和合作,共同推動技術和專業的發展。我們相信每一個參與者,無論是什麼專業,都能在這個社群中找到屬於自己的成長空間。

歡迎所有對Side Project開發有興趣的人加入我們,可以是有點子來找夥伴,也可以是來尋找有興趣的Side >Project加入,邀請大家一同打造一個充滿活力且有意義的技術社群!

Discord頻道連結:https://sideproj.tw/dc


上一篇
Day 11: 島島阿學的開發經驗分享 : 前後端協同開發
下一篇
Day 13: 島島阿學的全新功能介紹- 如何有效運用社群功能
系列文
「如何從零到一:打造你的首個 Side Project」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言