完成自架 Ghost Blog

完成自架 Ghost Blog

Hello, world self-hosted Ghost blog! 終於完成了。

EC2 實例管理:

  • 學習了如何連接和管理 AWS EC2 實例。
  • 了解了基本的 Linux 服務器管理。

登入,創建 EC2

用終端機登入 EC2 的機器:

chmod 400 your-key-pair.pem ssh -i {your_name.pm} ubuntu@{IP}

Ghost 安裝和配置:

  • 學習了如何在 Ubuntu 服務器上安裝 Ghost CMS。
  • 了解了 Ghost 的基本配置和管理。

Nginx 設置:

  • 學習了如何安裝和配置 Nginx 作為反向代理。
  • 了解了 Nginx 配置文件的結構和基本語法。

域名管理:

  • 學習了如何在 Cloudflare 上管理域名 DNS 設置。
  • 了解了 A 記錄和 CNAME 記錄的作用和配置方法。

SSL 證書配置:

  • 學習了如何使用 Let's Encrypt 和 Certbot 獲取和安裝 SSL 證書。
  • 了解了 HTTPS 的重要性和基本原理。

故障排除:

  • 學習了如何診斷和解決 DNS 解析問題。
  • 了解了如何閱讀和理解錯誤信息,並採取相應的解決措施。

安全性考慮:

  • 學習了基本的網站安全措施,如使用 HTTPS 和正確配置防火牆。

命令行操作:

  • 增強了使用 Linux 命令行的技能,包括文件編輯、服務管理等。

網絡基礎知識:

  • 加深了對 DNS、HTTP/HTTPS、代理等網絡概念的理解。

工具使用:

  • 熟悉了多種工具的使用,如 Ghost CLI、Certbot、dig 等。

Git 的使用方式

cp -r ~/ghost-site/content/themes/ ./themes/

cp ~/ghost-site/config.development.json config.development.json 

# 复制自定义插件(如果有)

cp -r ~/ghost-site/content/ ./content/

cp -r ~/ghost-site/content/apps ./apps/


之後要複製回 ghost-site 的話:

cp -r ~/ghost-custom/themes/* ~/ghost-site/content/themes/

cp ~/ghost-custom/config.development.json ~/ghost-site/config.development.json

# 如果您有自定义插件

cp -r ~/ghost-custom/content/* ~/ghost-site/content/

cp -r ~/ghost-custom/apps/* ~/ghost-site/content/apps/

Read more

掌握幣圈脈動,告別 FOMO 的資訊自動化流程嘗試

掌握幣圈脈動,告別 FOMO 的資訊自動化流程嘗試

幣圈訊息瞬息萬變,是否常常覺得很 FOMO 呢? 常常一個小時不看新聞就可能錯過了新的趨勢或是有用的消息。因此,我嘗試打造一條「獲取資訊自動化流程」。我希望透過以下幾個步驟,將「從 RSS 收集內容 → 摘要與翻譯 → 儲存 → 在發文時快速取得重點資訊」的流程自動化或半自動化,讓我在想要發佈 Twitter (X) 貼文時,能有即時且經過整理過的資訊可供參考。 整體流程概述 目標流程:RSS → Apify → OpenAI → Airtable → Chrome Extension → 快速分享 * 取得 RSS 新聞來源:定期自動抓取最新文章列表。 * 解析並擷取內文(Apify):從原始頁面擷取重點文字段落。 * 整理與生成摘要(OpenAI):運用 AI 將冗長文章化為精簡摘要。 * 儲存到 Airtable:將標題、連結、摘要等資訊結構化存放,方便後續查詢。 * Chrome

最常見的 Git 工作流程 - GitHub Flow

一種簡單的工作流程,適用於快速開發和持續部署的小型專案。 流程 1. 始終從 Main 分支創建功能分支:bashCopy codegit checkout main git checkout -b feature/my-feature 2. 在功能分支中開發,並隨時提交: git add . git commit -m "Implement feature" 3. 開發完成後推送到遠端 git push origin feature/my-feature 4. 發起 Pull Request 並進行代碼審查: * 在 GitHub 上創建 Pull Request。 * 通過代碼審查(Code Review)。 5. 審核完成後合併到

測試驅動開發 (TDD) 與單元測試、整合測試的概念簡述

在現代軟體開發中,測試已成為不可或缺的一部分。不僅能幫助開發者捕捉錯誤,還能促進代碼的模組化和可維護性。本文將深入探討單元測試、整合測試的區別,以及測試驅動開發 (TDD) 的核心流程和實踐技巧,幫助你快速掌握測試的精髓。 也許 AI 程式碼生成工具,最能快速優化寫測試的開發時間。多少來學習一點測試相關的知識。 * 理解單元測試 (Unit Test) 和整合測試 (Integration Test) 的區別。 * 熟悉測試驅動開發 (TDD) 的概念。 單元測試 vs 整合測試 * 單元測試: * 適合測試邏輯簡單且內部不依賴外部資源的功能,例如算法、數據處理函式等。 * 主要用於開發階段,快速檢查某段程式碼的邏輯。 * 整合測試: * 適合測試業務邏輯需要依賴外部模組(例如資料庫、第三方 API)時的交互行為。 * 用於確認系統內部的協作是否無誤,通常在測試環境下執行。 特徵單元測試 (Unit Test)整合測試 (Integration Test)測試範圍單個模組或函式多個模組或系統的整合依賴性獨立,不依賴其他模組或外部資源需要依

PM 加速開發:ChatGPT 到 Cursor 再到 Windsurf 的體驗比較

我是技術背景出身的產品經理,十年前曾是一名寫 Objective-C 的 iOS 工程師。近年來,我利用零碎時間,結合 AI 工具,進行產品發想與概念驗證,並打造一些功能型網站。自 2024 年 6 月起,我的體驗大致可分為三個階段,以下是我的學習與心得分享。 第一階段:ChatGPT 助力,但流程繁瑣 最早是用 ChatGPT 協助產 Code,我一筆一筆貼到我的程式碼下。我要詢問怎麼改動的話,也要將程式碼貼回 ChatGPT,在大量的複製貼上等待的過程,非常慢跟耗時,瀏覽器也會隨著大量的文檔開始變慢。這時候,我從不會到能做出一個聊天機器人網頁,大概花一個禮拜。我也是在這個階段學會了如何用 Vercel 快速部署架站,還有基本的 Git 指令。遇到一點問題常常會卡關很久,要邊做邊學。 第二階段:Claude 加速開發流程 Claude