如何在 Linode 用 Docker 架設 n8n

本文教你如何在 Linode 使用 Docker 自架 n8n,包含環境安裝、Docker Compose 設定、持久化資料、Cloudflare Tunnel HTTPS 安全部署,並加上 Basic Auth 保護,打造零開放 port 的安全自動化環境。
Training a Classifier

程式碼與資料參考來源:https://docs.pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#define-a-convolutional-neural-network 這段程式主要的目的,是建立一個可以讓 PyTorch 模型方便使用的影像資料載入流程。首先,程式定義了一個名為 transform 的轉換流程,這個轉換由兩個步驟組成。第一個步驟 transforms.ToTensor() 是把原本的影像(可能是 PIL Image 或 numpy 陣列)轉成 PyTorch 可以處理的 Tensor 格式,並且把像素值從 0~255 縮放到 0~1 之間。第二個步驟 transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) 則是將每個顏色通道進行標準化,把影像的數值範圍轉換成 -1 到 1 之間,這樣能讓模型在訓練時更穩定、更容易收斂。 接著,batch_size = 4 表示每次從資料集中取出四張圖片,組成一個小批次(batch)來訓練。這樣做可以減少記憶體使用量,並加快訓練速度。 在建立訓練資料集時,使用了 torchvision.datasets.CIFAR10 這個內建的資料集。CIFAR-10 是一個常見的影像分類資料集,裡面有 10 種不同類別的物體(例如飛機、汽車、貓、狗等)。參數 root=’./data’ 代表資料會被存放在專案資料夾中的 data 目錄下;train=True 指定要載入訓練資料;download=True 讓程式在本地沒有資料時自動從網路下載;而 transform=transform 則確保每張影像在載入時都會先經過剛剛定義的轉換流程。 建立好訓練資料集後,trainloader 透過 torch.utils.data.DataLoader 將資料集包裝成可以分批次讀取的形式。這個物件會在訓練時自動提供圖片與標籤。shuffle=True 表示在每個訓練輪次(epoch)開始前,資料都會被隨機打亂,避免模型記住資料的順序而影響學習。num_workers=2 […]
Yolov9 實作練習

內容全參考影片 : https://www.youtube.com/watch?v=tMwyxKttZd0&t=60s 首先建立一個Conda的虛擬環境,之後進入後先下載labelImg。 如果labelImg閃退,建議不用進到虛擬環境,直接去下載LabelImg。 建立一個dataset資料夾 8:1:1 點擊Open Dir打開訓練集的圖片資料夾。 接著要選擇剛剛資料夾中的Label資料夾 要改成YOLO的格式,就可以開始框了 建議開啟這兩個。 接著下載yolov9的專案包,解壓縮後進入資料夾。 我將yolov9-main改為yolov9,依據個人喜好。 接著安裝相關套件,然後進入到PyTorch依據自己的版本下載。 安裝的過程我們可以先將dataset搬到data底下。 接著更改coco.yaml這支檔案我將它改名為datasets.yaml。 train.py 參數解析: 參數 你目前設定值 說明 –weights yolov9-c-converted.pt 預訓練權重(模型初始值) –data data/datasets.yaml 資料集配置(train/val 路徑與類別) –hyp data/hyps/hyp.scratch-high.yaml 超參數設定(學習率、增強等) –epochs 100 訓練回合數 –batch-size 4 每次訓練批次(因為 GPU 6GB 限制) –img 512 訓練圖片大小(寬高) –device 0 使用 GPU 0(RTX 2060) –workers 1 資料載入執行緒數量(Windows 建議設低) –cache […]
CPU 排程演算法之等待時間計算

這次的作業主要是要根據以下四個行程(Processes),分別使用不同的 CPU 排程演算法,計算每個演算法的平均等待時間(Average Waiting Time, WT)。 行程 到達時間 A 分割時間 Burst 優先順序 P1 0 8 3 P2 1 4 1 P3 2 9 4 P4 3 5 2 單位:時間單位 需要計算的排程演算法如下: 一、FCFS 計算等待時間: 平均等待時間:(0 + 7 + 15 + 9) / 4 = 8.75 二、SJF 計算等待時間: 平均等待時間:(0 + 7 + 15 + 9) / 4 = […]
Pytorch Quickstart

程式碼來源:https://docs.pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html nn 是用來「定義網路結構」的模組。 DataLoader 幫你自動把 dataset 切成一批一批(batch)。在每個 epoch 打亂(shuffle)資料。 torchvision.datasets 這是 PyTorch 針對「影像資料集」的工具庫。常見的像 MNIST, CIFAR10, ImageNet 都可以直接用這個模組下載與載入。 ToTensor() 用來把影像(通常是 PIL Image 或 NumPy 陣列)轉成 PyTorch 的 Tensor 格式。同時會自動把像素值從 [0, 255] 轉成 [0.0, 1.0]。 training_data 訓練資料 datasets.FashionMNIST:這是 PyTorch 內建的 Fashion-MNIST 資料集,它是一組 灰階 28×28 的衣物影像(共有 10 類,像是 T-shirt、鞋子、包包等)。可以視為「MNIST(手寫數字)」的進階版。 root=”data”:指定資料儲存的資料夾名稱(PyTorch 會自動在這個資料夾裡建立結構)。若資料不存在,會在 “data/” 底下建立子資料夾並下載。 train=True:表示這是訓練集(training set),FashionMNIST 總共有: download=True:若本地端還沒有資料集,就自動幫你從官方網站下載。 transform=ToTensor():將每張影像轉換成 […]
Android LocationApp

這是一個練習定位權限的App,我將重要的部分記錄下來。 LocationUtils.kt hasLocationPermission function 回傳一個 Boolean→ true 或 false,代表有沒有定位權限。 這是 Google 提供的 Fused Location Provider API,能整合 GPS、Wi-Fi、藍牙與行動網路的定位來源,讓定位更準確且省電。_fusedLocationClient 用來執行「請求位置更新」、「停止更新」、「取得最後位置」等操作。 requestLocationUpdates ⚠️ 注意:這裡用了 @SuppressLint(“MissingPermission”),代表你必須在呼叫這個函式前,確認已取得權限(也就是前面 LocationDisplay 檢查的部分)。 意思是保證外層一定會先檢查 hasLocationPermission() 才會進來,所以不用再提醒我 MissingPermission。 這個函式會每秒更新一次位置(因為下面設定了 1000 毫秒),然後將新位置傳給你的 LocationViewModel。 當系統取得新的定位資訊時,會呼叫 onLocationResult。 lastLocation 是最新的 Location 物件(包含緯度與經度)。 LocationData 是我們定義的資料類別,用來包裝座標。 呼叫 viewModel.updateLocation(location) → 把資料傳給 ViewModel 更新 UI。 這行讓 app 持續監聽位置變化。 hasLocationPermission LocationUtils 要持有 Context,才能呼叫系統 API(如 […]
Mac Docker 惡意軟體?

參考:MacOS 將 Docker 檢測為惡意軟體問題 🔧 修復com.docker.vmnetd問題 當你在 macOS 上啟動 Docker Desktop 時,可能會遇到如下錯誤訊息: 「未打開 ‘com.docker.vmnetd’,因為它包含惡意軟體。」 這是因為 macOS 的 Gatekeeper 誤判 Docker 的網路代理元件為惡意程式。以下步驟可以手動修復該問題,讓 Docker 能正常運作。 使用終端機手修復 📌 步驟一:刪除現有的 Helper Tools 打開「終端機」,輸入以下指令來移除出錯的元件: 系統會要求你輸入密碼,請輸入你的 Mac 登入密碼(輸入時畫面不會顯示字元,屬正常現象)。 📌 步驟二:重新複製官方檔案 從 Docker Desktop 應用程式中,重新將正確的 com.docker.vmnetd 複製回系統目錄:
WordPress 架站與伺服器設定教學紀錄

【一、執行環境設定】 【二、Nginx + PHP + MariaDB 設定】 【三、安裝與設定 WordPress】 【四、SSL 憑證與 HTTPS 設定】 【五、DNS 設定】 【六、佈署 WordPress 主題與外掛】 【七、安全性與效能設定】 【八、常用伺服器管理指令】 功能 指令 重啟 Nginx sudo systemctl restart nginx 重啟 PHP-FPM sudo systemctl restart php8.3-fpm 查看 Nginx 錯誤日誌 sudo tail -n 100 /var/log/nginx/error.log 執行佈署腳本(個人撰寫指令) /opt/wp-deploy/deploy.sh 查看 WordPress debug sudo tail -n 100 /var/www/yourdomain.com/wp-content/debug.log 測試 SSL 自動續期 […]
Nginx + Certbot 為 WordPress 網站設定 HTTPS

本教學將說明如何透過 Certbot 申請 Let’s Encrypt 免費 SSL 憑證,並整合至 Nginx,成功為你的 WordPress 網站啟用 HTTPS。 📌 前置準備 步驟一:建立 Nginx 設定檔 使用 nano 編輯對應網域的 Nginx 設定檔: 設定內容範例如下(HTTPS 區塊會由 Certbot 自動補上): 啟用站點: 步驟二:使用 Certbot 啟用 HTTPS 使用以下指令安裝 SSL 憑證並自動設定 Nginx: 若成功,會出現類似以下訊息: 步驟三:檢查 Nginx 設定 確認設定檔是否正確: 重新載入 Nginx: 步驟四:確認 HTTPS 連接埠(443)已開啟 檢查 443 port 是否啟用中: 若防火牆未開啟 443,請加入防火牆規則: 可再次確認 UFW 狀態: 步驟五:確認網站正常運作 […]