diff --git a/1.1-修改成台北時區.md b/1.1-修改成台北時區.md index 80677f1..a91169f 100644 --- a/1.1-修改成台北時區.md +++ b/1.1-修改成台北時區.md @@ -1,10 +1,14 @@ +# 修改成台北時區 + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Ubuntu 預設時區通常為 UTC,會導致系統時間與台灣本地時間相差 8 小時。以下指令將系統時區設定為台北(Asia/Taipei)。 -# 設定時區 +## 步驟 + +### 1. 設定時區 ```bash sudo timedatectl set-timezone Asia/Taipei diff --git a/1.2-延展系統硬碟.md b/1.2-延展系統硬碟.md index 169d10f..bbc9198 100644 --- a/1.2-延展系統硬碟.md +++ b/1.2-延展系統硬碟.md @@ -1,12 +1,16 @@ +# 延展系統硬碟 + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 當虛擬機磁碟容量在外部(例如 PVE)擴充後,Ubuntu 內部不會自動使用新空間。本文記錄將新增空間一路套用到 LVM 邏輯磁區的流程:調整分割區 → 擴充 PV → 擴充 LV → 擴充檔案系統。 > 注意:`fdisk` 刪除並重建分割區具風險,操作前請先備份重要資料,並確認起始磁區(First sector)維持原值。 -# 1. 確認磁碟大小 +## 步驟 + +### 1. 確認磁碟大小 先用 `lsblk` 查看目前磁碟與分割狀況。 @@ -26,7 +30,7 @@ sda 8:0 0 64G 0 disk sr0 11:0 1 1024M 0 rom ``` -# 2. 調整硬碟大小 +### 2. 調整硬碟大小 用 `fdisk` 刪除舊的 `sda3` 並以相同起始磁區重建為較大的分割區。**刪除分割區時務必選擇保留(N)LVM2 簽章**,否則會破壞磁區。 @@ -66,7 +70,7 @@ The partition table has been altered. Syncing disks. ``` -# 3. 調整 PV 大小 +### 3. 調整 PV 大小 讓 LVM 的實體磁區(Physical Volume)認得擴大後的分割區。 @@ -74,7 +78,7 @@ Syncing disks. sudo pvresize /dev/sda3 ``` -# 4. 調整 LV 大小 +### 4. 調整 LV 大小 將邏輯磁區(Logical Volume)擴充到吃下所有剩餘空間,再擴充其上的檔案系統。 diff --git a/1.3-憑證-x509-問題.md b/1.3-憑證-x509-問題.md index 40a377b..f9354fc 100644 --- a/1.3-憑證-x509-問題.md +++ b/1.3-憑證-x509-問題.md @@ -1,10 +1,14 @@ +# 憑證 x509 問題 + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 當網路環境中有防火牆或代理(例如 Fortinet)對 HTTPS 連線做 SSL 攔截時,Ubuntu 會因為缺少對應的根憑證而出現 x509 憑證錯誤(例如 `docker pull` 失敗)。解決方式是把攔截端的憑證加入系統信任清單。 -# 1. 查詢缺少的憑證 +## 步驟 + +### 1. 查詢缺少的憑證 連線到目標站台並列出完整憑證鏈。 @@ -40,7 +44,7 @@ ng6AGIc94BzGo10X+Ly1YK3zpPiiMx6xx2LNX3XyLUDL3QKMqVJi0G8u -----END CERTIFICATE----- ``` -# 2. 查詢憑證存放的位置 +### 2. 查詢憑證存放的位置 確認系統信任憑證的存放路徑。 diff --git a/1.4-進入-busybox-問題.md b/1.4-進入-busybox-問題.md index 0a18c03..a6f16d6 100644 --- a/1.4-進入-busybox-問題.md +++ b/1.4-進入-busybox-問題.md @@ -1,10 +1,14 @@ +# 進入 busybox 問題 + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 開機時若檔案系統毀損,Ubuntu 會中斷在 BusyBox(initramfs)救援環境,停在 `(initramfs)` 提示字元。本文記錄找出根磁區並修復檔案系統,使系統恢復正常開機的步驟。 -# 1. 列出所有分區 +## 步驟 + +### 1. 列出所有分區 找出根檔案系統所在的磁區。 @@ -12,7 +16,7 @@ blkid ``` -# 2. 修復系統磁區 +### 2. 修復系統磁區 對根磁區執行檔案系統檢查與自動修復(`-y` 表示對所有提示自動回答 yes)。 @@ -20,7 +24,7 @@ blkid fsck -y /dev/mapper/ubuntu--vg-ubuntu--lv ``` -# 3. 離開後,自動進入系統 +### 3. 離開後,自動進入系統 修復完成後離開 BusyBox,系統會繼續完成開機。 diff --git a/1.5-Kernel-Panic:VFS-無法掛載-root-fs.md b/1.5-Kernel-Panic:VFS-無法掛載-root-fs.md index f43e5db..823d121 100644 --- a/1.5-Kernel-Panic:VFS-無法掛載-root-fs.md +++ b/1.5-Kernel-Panic:VFS-無法掛載-root-fs.md @@ -1,12 +1,16 @@ +# Kernel Panic:VFS 無法掛載 root fs + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 當核心(Kernel)升級不完整或映像檔損壞時,開機會出現 `Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block` 而無法掛載根檔案系統。本文記錄修復損壞套件、移除問題核心並重新安裝正常核心的步驟。 > 需在可開機的環境(例如選擇舊版核心開機,或進入救援模式)下執行以下指令。 -# 1. 修復損壞的 Kernel +## 步驟 + +### 1. 修復損壞的 Kernel 修復先前安裝中斷、相依未滿足的套件。 @@ -14,7 +18,7 @@ sudo apt -f install ``` -# 2. 列出所有 Kernel +### 2. 列出所有 Kernel 列出系統中已安裝的核心映像。 @@ -22,7 +26,7 @@ sudo apt -f install dpkg --list | grep linux-image ``` -# 3. 移除低版本到無法移除 +### 3. 移除低版本到無法移除 逐一移除有問題的舊版核心(將 `x.xx.x-xxx` 換成實際版本號),直到無法再移除為止。 @@ -30,7 +34,7 @@ dpkg --list | grep linux-image sudo apt purge -y linux-image-x.xx.x-xxx-generic ``` -# 4. 更新 GRUB 2 +### 4. 更新 GRUB 2 重新產生開機選單。 @@ -38,7 +42,7 @@ sudo apt purge -y linux-image-x.xx.x-xxx-generic sudo update-grub2 ``` -# 5. 更新 Kernel 到現在的版本 +### 5. 更新 Kernel 到現在的版本 更新套件並重新安裝最新核心。 @@ -46,7 +50,7 @@ sudo update-grub2 sudo apt update && sudo apt upgrade -y ``` -# 6. 試著重啟看看是否正常 +### 6. 試著重啟看看是否正常 ```bash sudo reboot diff --git a/1.6-常用工具.md b/1.6-常用工具.md index 96c4d42..04b1123 100644 --- a/1.6-常用工具.md +++ b/1.6-常用工具.md @@ -1,8 +1,16 @@ +# 常用工具 + > 第1章 系統維護 · 來源:Ubuntu 知識庫 -# [Node JS](https://gitea.jsc.idv.tw/knowledges/Ubuntu/wiki/Tool%EF%BC%9ANode-JS) +## 簡介 -# Claude Code CLI +常用命令列工具的安裝方式:Node JS、Claude Code CLI、ccstatusline、Codex CLI、herdr。 + +## 步驟 + +### 1. [Node JS](6.8-Node-JS) + +### 2. Claude Code CLI ```bash curl -fsSL https://claude.ai/install.sh | bash @@ -12,19 +20,19 @@ curl -fsSL https://claude.ai/install.sh | bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc ``` -# ccstatusline:Claude Code CLI 狀態列 +### 3. ccstatusline:Claude Code CLI 狀態列 ```bash apt install -y libatomic1 && npm config set strict-ssl false && npx -y ccstatusline@latest ``` -# Codex CLI +### 4. Codex CLI ```bash curl -fsSL https://chatgpt.com/codex/install.sh | sh ``` -# herdr:AI Agent 管理 +### 5. herdr:AI Agent 管理 ```bash curl -fsSL https://herdr.dev/install.sh | sh diff --git a/1.7-使用舊的右鍵選項.md b/1.7-使用舊的右鍵選項.md index 94c7737..5cb5802 100644 --- a/1.7-使用舊的右鍵選項.md +++ b/1.7-使用舊的右鍵選項.md @@ -1,5 +1,13 @@ +# 使用舊的右鍵選項 + > 第1章 系統維護 · 來源:Windows 知識庫 +## 簡介 + +在 Windows 11 以登錄檔還原傳統(舊版)右鍵選單。 + +## 步驟 + ```powershell reg add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32” /f /ve ``` diff --git a/2.1-netplan.md b/2.1-netplan.md index 3237ef0..958e46a 100644 --- a/2.1-netplan.md +++ b/2.1-netplan.md @@ -1,14 +1,18 @@ +# netplan + > 第2章 網路與儲存 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 netplan 是 Ubuntu 的網路設定工具,以 YAML 描述網路介面。本文記錄多網卡環境下,透過路由權重(`metric`)控制預設對外流量走哪張網卡的設定範例。`metric` 數值越小優先權越高。 設定檔通常位於 `/etc/netplan/`,修改後以 `netplan apply` 套用。 -# 多網路權重設定 +## 步驟 -## 雙 DHCP +### 1. 多網路權重設定 + +#### 雙 DHCP 兩張網卡都使用 DHCP,透過 `route-metric` 讓 `eth1`(100)優先於 `eth0`(200)作為對外路由。 @@ -26,7 +30,7 @@ network: route-metric: 100 ``` -## 靜態 + 動態 +#### 靜態 + 動態 `ens18` 使用靜態 IP(metric 200),`ens19` 使用 DHCP(metric 100),對外流量優先走 metric 較小的 `ens19`。 diff --git a/2.2-53-埠被占用.md b/2.2-53-埠被占用.md index d8363e9..93b83b8 100644 --- a/2.2-53-埠被占用.md +++ b/2.2-53-埠被占用.md @@ -1,10 +1,14 @@ +# 53 埠被占用 + > 第2章 網路與儲存 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Ubuntu 內建的 `systemd-resolved` 會在本機 `127.0.0.53:53` 啟動 DNS stub listener,導致要自行架設 DNS 服務(如 dnsmasq、Pi-hole)時 53 埠被佔用而無法啟動。本文記錄關閉 stub listener、釋放 53 埠的步驟。 -# 1. 取消註解 DNSStubListener 並設定為 no +## 步驟 + +### 1. 取消註解 DNSStubListener 並設定為 no 編輯 systemd-resolved 設定檔。 @@ -28,7 +32,7 @@ DNSStubListener=no #ReadEtcHosts=yes ``` -# 2. 重新建立捷徑 +### 2. 重新建立捷徑 將 `/etc/resolv.conf` 指向 systemd-resolved 實際產生的設定檔。 @@ -36,7 +40,7 @@ DNSStubListener=no sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf ``` -# 3. 重新啟動系統服務 +### 3. 重新啟動系統服務 讓設定生效,53 埠即釋出。 diff --git a/2.3-掛載-SMB.md b/2.3-掛載-SMB.md index 30da905..8e11c97 100644 --- a/2.3-掛載-SMB.md +++ b/2.3-掛載-SMB.md @@ -1,12 +1,20 @@ +# 掛載 SMB + > 第2章 網路與儲存 · 來源:Proxmox VE 知識庫 -# 1. 安裝 CIFS 工具 +## 簡介 + +在 Proxmox VE 主機以 CIFS 掛載 SMB 分享資料夾。 + +## 步驟 + +### 1. 安裝 CIFS 工具 ```bash apt update && apt install -y cifs-utils ``` -# 2. 建立 SMB 驗證檔 +### 2. 建立 SMB 驗證檔 ```bash nano /root/.smbcredentials @@ -26,7 +34,7 @@ domain=WORKGROUP chmod 600 /root/.smbcredentials ``` -# 3. 掛載 SMB 資料夾 +### 3. 掛載 SMB 資料夾 ```bash nano /etc/fstab @@ -52,13 +60,13 @@ nano /etc/pve/lxc/.conf mp0: /mnt/ds918/emby,mp=/emby ``` -# 4. 建立掛載的資料夾 +### 4. 建立掛載的資料夾 ```bash mkdir -p /mnt/ds918/emby ``` -# 5. 重新掛載資料夾 +### 5. 重新掛載資料夾 ```bash systemctl daemon-reload diff --git a/2.4-停用-SMB-服務.md b/2.4-停用-SMB-服務.md index 5a54750..fab608e 100644 --- a/2.4-停用-SMB-服務.md +++ b/2.4-停用-SMB-服務.md @@ -1,18 +1,26 @@ +# 停用 SMB 服務 + > 第2章 網路與儲存 · 來源:Windows 知識庫 -# 停用 SMB1 功能 +## 簡介 + +在 Windows 停用 SMB1 功能與伺服器服務。 + +## 步驟 + +### 1. 停用 SMB1 功能 ```powershell Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol ``` -# 停用開機啟動 +### 2. 停用開機啟動 ```powershell Set-Service -Name LanmanServer -StartupType Disabled ``` -# 立即停止服務 +### 3. 立即停止服務 ```powershell Stop-Service -Name LanmanServer -Force diff --git a/2.5-TGT.md b/2.5-TGT.md index c7b6d83..6899e74 100644 --- a/2.5-TGT.md +++ b/2.5-TGT.md @@ -1,20 +1,28 @@ +# TGT + > 第2章 網路與儲存 · 來源:Debian 知識庫 +## 簡介 + +在 Debian 以 TGT 提供 iSCSI 目標,並將 LVM 虛擬磁碟分享出去。 + 如果使用 PVE 的 CT,版本需要選擇 12.X -# 安裝相關套件 +## 步驟 + +### 1. 安裝相關套件 ```bash apt update && apt install -y tgt lvm2 ``` -# 啟動 TGT 服務 +### 2. 啟動 TGT 服務 ```bash systemctl enable tgt && systemctl start tgt ``` -# 建立 LVM 虛擬磁碟 +### 3. 建立 LVM 虛擬磁碟 ```bash dd if=/dev/zero of=/root/target.img bs=1G count=0 seek=512 @@ -25,7 +33,7 @@ dd if=/dev/zero of=/root/target.img bs=1G count=0 seek=512 - count:? - seek:數量,範例為 512G (bs * seek) -# 設定 TGT 服務到 LVM 虛擬磁碟 +### 4. 設定 TGT 服務到 LVM 虛擬磁碟 ```bash nano /etc/tgt/conf.d/target.conf @@ -39,7 +47,7 @@ nano /etc/tgt/conf.d/target.conf ``` -# 重啟 TGT 服務 +### 5. 重啟 TGT 服務 ```bash systemctl restart tgt && tgt-admin --show diff --git a/2.6-OpenSSH.md b/2.6-OpenSSH.md index 033754d..90bfc7a 100644 --- a/2.6-OpenSSH.md +++ b/2.6-OpenSSH.md @@ -1,6 +1,14 @@ +# OpenSSH + > 第2章 網路與儲存 · 來源:Windows 知識庫 -# 將 OpenSSH 的預設工具改為 Powershell +## 簡介 + +設定 Windows OpenSSH 登入後預設使用的 shell。 + +## 步驟 + +### 1. 將 OpenSSH 的預設工具改為 Powershell ```powershell New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\bash.exe" -PropertyType String -Force diff --git a/2.7-OpenWrt.md b/2.7-OpenWrt.md index 4c70baf..513ac77 100644 --- a/2.7-OpenWrt.md +++ b/2.7-OpenWrt.md @@ -1,32 +1,42 @@ +# OpenWrt + > 第2章 網路與儲存 · 來源:Proxmox VE 知識庫 -# 1. 下載映像檔壓縮檔 +## 簡介 + +在 Proxmox VE 以官方映像檔建立 OpenWrt 虛擬機,作為路由器使用。 + +## 步驟 + +### 1. 下載映像檔壓縮檔 ```bash wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz ``` -# 2. 解壓縮映像檔 +### 2. 解壓縮映像檔 ```bash gzip -d openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz ``` -# 3. 將映像檔移到 ISO +### 3. 將映像檔移到 ISO ```bash cp openwrt-23.05.3-x86-64-generic-ext4-combined.img /var/lib/vz/template/iso ``` -# 4. 建立無硬碟的虛擬機,紀錄虛擬機編號 -# 5. 將映像檔指派到虛擬機 +### 4. 建立無硬碟的虛擬機,紀錄虛擬機編號 + +### 5. 將映像檔指派到虛擬機 ```bash qm disk import 201 /var/lib/vz/template/iso/openwrt-23.05.3-x86-64-generic-ext4-combined.img local-lvm ``` -# 6. 虛擬機選項: 開機順序全部取消 -# 7. 進入虛擬機,修改網路 +### 6. 虛擬機選項: 開機順序全部取消 + +### 7. 進入虛擬機,修改網路 ```bash vi /etc/config/network @@ -36,7 +46,7 @@ vi /etc/config/network service network restart ``` -# 8. 嘗試連線OpenWRT +### 8. 嘗試連線OpenWRT Username: root diff --git a/2.8-DiskStation-Manager.md b/2.8-DiskStation-Manager.md index 29bf38b..6bc7132 100644 --- a/2.8-DiskStation-Manager.md +++ b/2.8-DiskStation-Manager.md @@ -1,6 +1,14 @@ +# DiskStation Manager + > 第2章 網路與儲存 · 來源:Proxmox VE 知識庫 -# 1. 下載引導檔 +## 簡介 + +在 Proxmox VE 以 RR 引導檔建立 Synology DiskStation Manager(DSM)虛擬機。 + +## 步驟 + +### 1. 下載引導檔 從 [Github](https://github.com/RROrg/rr) 的 [Release](https://github.com/RROrg/rr/releases/tag/25.6.5) 下載引導檔 @@ -8,7 +16,7 @@ wget https://github.com/RROrg/rr/releases/download/25.6.5/rr-25.6.5.img.zip ``` -# 2. 解壓縮檔案 +### 2. 解壓縮檔案 解壓縮檔案並移動到 PVE 的 ISO 資料夾 @@ -16,7 +24,7 @@ wget https://github.com/RROrg/rr/releases/download/25.6.5/rr-25.6.5.img.zip unzip rr-25.6.5.img.zip && mv rr.img /var/lib/vz/template/iso/rr-25.6.5.img ``` -# 3. 建立虛擬機 +### 3. 建立虛擬機 3.1. 一般設定,指定 VM ID 並記住,之後加入引導映像檔時需要指定 @@ -46,21 +54,21 @@ unzip rr-25.6.5.img.zip && mv rr.img /var/lib/vz/template/iso/rr-25.6.5.img ![7.png](Images/7.png) -# 4. 加入 RR 引導檔 +### 4. 加入 RR 引導檔 ```bash qm importdisk 100 /var/lib/vz/template/iso/rr-25.6.5.img local-lvm ``` -# 5. 將 RR 引導檔改為 SATA +### 5. 將 RR 引導檔改為 SATA ![8.png](Images/8.png) -# 6. 將 RR 引導檔改為第一開機順位 +### 6. 將 RR 引導檔改為第一開機順位 ![9.png](Images/9.png) -# 7. 設定引導檔 +### 7. 設定引導檔 ![10.png](Images/10.png) @@ -72,21 +80,21 @@ qm importdisk 100 /var/lib/vz/template/iso/rr-25.6.5.img local-lvm ![12.png](Images/12.png) -# 8. 設定引導的主機型號 +### 8. 設定引導的主機型號 ![13.png](Images/13.png) -# 9. 設定引導的系統版本 +### 9. 設定引導的系統版本 ![14.png](Images/14.png) ![15.png](Images/15.png) -# 10. 編譯引導 +### 10. 編譯引導 ![16.png](Images/16.png) -# 11. 啟動引導 +### 11. 啟動引導 ![17.png](Images/17.png) diff --git a/3.1-套件更新設定.md b/3.1-套件更新設定.md index 02c85d3..fa3e21c 100644 --- a/3.1-套件更新設定.md +++ b/3.1-套件更新設定.md @@ -1,6 +1,14 @@ +# 套件更新設定 + > 第3章 虛擬化 · 來源:Proxmox VE 知識庫 -# 更換 Debian 官方套件鏡像 +## 簡介 + +更換 Proxmox VE 的 Debian 與官方套件來源,並更新套件清單。 + +## 步驟 + +### 1. 更換 Debian 官方套件鏡像 ```bash nano /etc/apt/sources.list @@ -14,7 +22,7 @@ deb http://ftp.tw.debian.org/debian bookworm-updates main contrib non-free non-f deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware ``` -# Proxmox VE 官方套件來源 +### 2. Proxmox VE 官方套件來源 ```bash rm /etc/apt/sources.list.d/* && nano /etc/apt/sources.list.d/pve-no-subscription.list @@ -26,7 +34,7 @@ rm /etc/apt/sources.list.d/* && nano /etc/apt/sources.list.d/pve-no-subscription deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription ``` -# 清除快取、更新套件清單 +### 3. 清除快取、更新套件清單 ```bash apt clean && apt update diff --git a/3.2-硬碟直通.md b/3.2-硬碟直通.md index 58d1998..ac87e0e 100644 --- a/3.2-硬碟直通.md +++ b/3.2-硬碟直通.md @@ -1,6 +1,14 @@ +# 硬碟直通 + > 第3章 虛擬化 · 來源:Proxmox VE 知識庫 -# 列出所有硬碟 +## 簡介 + +將實體硬碟以 by-id 直通給 Proxmox VE 的虛擬機。 + +## 步驟 + +### 1. 列出所有硬碟 ```bash ls -l /dev/disk/by-id @@ -13,7 +21,7 @@ lrwxrwxrwx 1 root root 9 Sep 12 23:04 ata-CT2000BX500SSD1_2221E63542A2 -> ../.. ... ``` -# 將硬碟直通給虛擬機 +### 2. 將硬碟直通給虛擬機 ```bash qm set 253 --sata2 /dev/disk/by-id/ata-CT2000BX500SSD1_2221E63542A2 diff --git a/3.3-將PCIe直通給PVE的虛擬機.md b/3.3-將PCIe直通給PVE的虛擬機.md index 443366a..2b44dae 100644 --- a/3.3-將PCIe直通給PVE的虛擬機.md +++ b/3.3-將PCIe直通給PVE的虛擬機.md @@ -1,10 +1,14 @@ +# 將PCIe直通給PVE的虛擬機 + > 第3章 虛擬化 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 PCIe 直通(Passthrough)可讓 PVE 上的虛擬機直接獨佔某個 PCIe 裝置(例如顯示卡、Thunderbolt 控制器)。重點是先在主機啟用 IOMMU,再以 `vfio-pci` 驅動接管裝置、阻止宿主機使用它,最後將裝置指派給虛擬機。本文以 Thunderbolt 控制器為例。 -# Step 1. 修改引導設定檔 +## 步驟 + +### 1. 修改引導設定檔 啟用 IOMMU 需在核心開機參數加入對應設定。 @@ -35,7 +39,7 @@ update-grub && reboot dmesg | grep -e DMAR -e IOMMU ``` -# Step 2. 載入 VFIO 核心模組 +### 2. 載入 VFIO 核心模組 讓系統開機時自動載入 VFIO 相關模組。 @@ -52,7 +56,7 @@ vfio_pci vfio_virqfd ``` -# Step 3. 尋找控制器 ID (以 Thunderbolt 為例) +### 3. 尋找控制器 ID (以 Thunderbolt 為例) 找出要直通裝置的 PCI 位址與硬體 ID。 @@ -63,7 +67,7 @@ lspci -nnk | grep -i thunderbolt - PCI 位址:例如 `00:0d.0` - 硬體 ID:例如 `8086:9a1b` -# Step 4. 阻斷宿主機驅動 +### 4. 阻斷宿主機驅動 為了防止 PVE 宿主機搶先佔用控制器,必須強制它改用 `vfio-pci` 驅動。 @@ -91,7 +95,7 @@ update-initramfs -u -k all && reboot lspci -nnk -s 00:0d.0 ``` -# Step 5. 將裝置新增至虛擬機 +### 5. 將裝置新增至虛擬機 在 PVE 介面為虛擬機加入 PCI 裝置: @@ -101,7 +105,7 @@ lspci -nnk -s 00:0d.0 - [v] ROM-Bar - [v] PCI-Express -# 補充:PVE 可能使用 systemd-boot 而非 GRUB +## 補充:PVE 可能使用 systemd-boot 而非 GRUB 較新的 PVE 安裝可能以 systemd-boot 開機,此時 Step 1 改 GRUB 不會生效,需改設定核心命令列。 diff --git a/3.4-相關參考紀錄.md b/3.4-相關參考紀錄.md index 4583aea..1dc3060 100644 --- a/3.4-相關參考紀錄.md +++ b/3.4-相關參考紀錄.md @@ -1,5 +1,13 @@ +# 相關參考紀錄 + > 第3章 虛擬化 · 來源:Proxmox VE 知識庫 +## 簡介 + +安裝與設定 Proxmox VE 時參考過的文章。 + +## 參考連結 + - [Proxmox VE 初始化硬碟分割區與配置ZFS儲存區(Raidz)](https://www.albert-yu.com/blog/proxmox-ve-%E5%88%9D%E5%A7%8B%E5%8C%96%E7%A1%AC%E7%A2%9F%E5%88%86%E5%89%B2%E5%8D%80%E8%88%87%E9%85%8D%E7%BD%AEzfs%E5%84%B2%E5%AD%98%E5%8D%80raidz/) - [Pimox - Proxmox V7 for the Raspberry Pi](https://github.com/pimox/pimox7) - [Installing Mikrotik RouterOS on Proxmox VE easily](https://www.apalrd.net/posts/2023/tip_routeros/) diff --git a/3.5-解決Windows安裝WSL後死機的問題.md b/3.5-解決Windows安裝WSL後死機的問題.md index 5a79a33..3b43613 100644 --- a/3.5-解決Windows安裝WSL後死機的問題.md +++ b/3.5-解決Windows安裝WSL後死機的問題.md @@ -1,6 +1,14 @@ +# 解決Windows安裝WSL後死機的問題 + > 第3章 虛擬化 · 來源:Proxmox VE 知識庫 -# 在設定檔加上以下內容 +## 簡介 + +在 Proxmox VE 虛擬機的設定檔加入 CPU 參數,解決 Windows 安裝 WSL 後死機的問題。 + +## 步驟 + +### 1. 在設定檔加上以下內容 ``` args: -cpu host,kvm=on diff --git a/3.6-Hyper-V.md b/3.6-Hyper-V.md index 70452b4..e7c55d7 100644 --- a/3.6-Hyper-V.md +++ b/3.6-Hyper-V.md @@ -1,12 +1,20 @@ +# Hyper-V + > 第3章 虛擬化 · 來源:Windows 知識庫 -### 啟用 KVM +## 簡介 + +在 Hyper-V 啟用巢狀虛擬化、MAC 位址偽裝,並建立具 NAT 功能的虛擬交換器,供虛擬機(例如 PVE)使用。 + +## 步驟 + +### 1. 啟用 KVM ```powershell Set-VMProcessor -VMName "" -ExposeVirtualizationExtensions $true ``` -### 偽裝 MAC 地址 for PVE +### 2. 偽裝 MAC 地址 for PVE 因為虛擬機共用同一張網路卡,為了防止流量進到 PVE 後,不再往虛擬機送,因此需要偽裝 MAC 地址 @@ -14,11 +22,11 @@ Set-VMProcessor -VMName "" -ExposeVirtualizationExtensions $true Get-VMNetworkAdapter -VMName "" | Set-VMNetworkAdapter -MacAddressSpoofing On ``` -# 限制虛擬硬碟的讀寫速度(IOPS) +### 3. 限制虛擬硬碟的讀寫速度(IOPS) 一個 IOPS 為 8KB / s,如果要限制虛擬硬碟只能使用 100MB / s 的速度,則 IOPS 應該設定為 12800 (100 * 1024 / 8) -# 加入具 NAT 功能的虛擬交換器 +### 4. 加入具 NAT 功能的虛擬交換器 加入新的虛擬交換器 diff --git a/3.7-WSL:從零開始.md b/3.7-WSL:從零開始.md index cf8d5df..57c8056 100644 --- a/3.7-WSL:從零開始.md +++ b/3.7-WSL:從零開始.md @@ -1,12 +1,20 @@ +# WSL:從零開始 + > 第3章 虛擬化 · 來源:Windows 知識庫 -# 安裝必要元件 (含 ubuntu) +## 簡介 + +在 Windows 安裝並更新 WSL。 + +## 步驟 + +### 1. 安裝必要元件 (含 ubuntu) ```powershell wsl --install ``` -# 更新 (Windows 元件安裝完成,可以直接更新) +### 2. 更新 (Windows 元件安裝完成,可以直接更新) ```powershell wsl --update diff --git a/3.8-WSL:安裝-Ubuntu-26.04.md b/3.8-WSL:安裝-Ubuntu-26.04.md index 0a5d3ef..76d1c8d 100644 --- a/3.8-WSL:安裝-Ubuntu-26.04.md +++ b/3.8-WSL:安裝-Ubuntu-26.04.md @@ -1,12 +1,20 @@ +# WSL:安裝 Ubuntu 26.04 + > 第3章 虛擬化 · 來源:Windows 知識庫 -# 停止 WSL 服務 +## 簡介 + +在 WSL 安裝 Ubuntu 26.04。 + +## 步驟 + +### 1. 停止 WSL 服務 ```powershell wsl --shutdown ``` -# 安裝 Ubuntu 26.04 完成直接啟動 +### 2. 安裝 Ubuntu 26.04 完成直接啟動 ```powershell wsl --install Ubuntu-26.04 diff --git a/3.9-避免虛擬化啟動失敗.md b/3.9-避免虛擬化啟動失敗.md index 852aeee..b833090 100644 --- a/3.9-避免虛擬化啟動失敗.md +++ b/3.9-避免虛擬化啟動失敗.md @@ -1,5 +1,13 @@ +# 避免虛擬化啟動失敗 + > 第3章 虛擬化 · 來源:Raspberry Pi 知識庫 +## 簡介 + +在 Raspberry Pi 啟用 cgroup 記憶體,避免容器/虛擬化啟動失敗。 + +## 步驟 + ```bash sudo nano /boot/cmdline.txt ``` diff --git a/4.1-Docker(Ubuntu).md b/4.1-Docker(Ubuntu).md index e97ceba..9b63dfc 100644 --- a/4.1-Docker(Ubuntu).md +++ b/4.1-Docker(Ubuntu).md @@ -1,10 +1,14 @@ +# Docker(Ubuntu) + > 第4章 容器與編排 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Docker 是容器化平台,用於封裝與執行應用程式。本文記錄在 Ubuntu 上安裝 Docker 與 Docker Compose 的步驟,以及在 PVE 容器(CT)中常見的問題排解。 -# 安裝 Docker +## 步驟 + +### 1. 安裝 Docker 安裝 Docker 引擎與 Docker Compose v2 外掛。 @@ -12,7 +16,7 @@ Docker 是容器化平台,用於封裝與執行應用程式。本文記錄在 apt update && apt install -y docker.io docker-compose-v2 ``` -# 將 Docker 權限賦予目前的使用者 +### 2. 將 Docker 權限賦予目前的使用者 將目前使用者加入 docker 群組,之後即可免 sudo 操作 Docker。 @@ -26,9 +30,9 @@ usermod -aG docker $USER newgrp docker ``` -# 常見問題 +## 常見問題 -## 問題一:PVE 的 CT 安裝後無法啟動容器 +### 問題一:PVE 的 CT 安裝後無法啟動容器 (2015/12/05) 在 PVE 的 LXC 容器中啟動 Docker 容器時出現以下錯誤: @@ -36,7 +40,7 @@ newgrp docker Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: open sysctl net.ipv4.ip_unprivileged_port_start file: reopen fd 8: permission denied ``` -### 解決方法 +#### 解決方法 在 PVE 宿主機上編輯該 CT 的設定檔,加上相容設定。 diff --git a/4.2-Docker(Raspberry-Pi).md b/4.2-Docker(Raspberry-Pi).md index 2cd2fcc..7fd4e04 100644 --- a/4.2-Docker(Raspberry-Pi).md +++ b/4.2-Docker(Raspberry-Pi).md @@ -1,6 +1,14 @@ +# Docker(Raspberry Pi) + > 第4章 容器與編排 · 來源:Raspberry Pi 知識庫 -# 1. 安裝 docker 服務 +## 簡介 + +在 Raspberry Pi 安裝 Docker,並讓一般使用者免 sudo 使用。 + +## 步驟 + +### 1. 安裝 docker 服務 ```bash curl -fsSL https://get.docker.com -o get-docker.sh @@ -10,7 +18,7 @@ curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` -# 2. 將使用者加入 docker 權限與群組,省去 sudo +### 2. 將使用者加入 docker 權限與群組,省去 sudo ```bash sudo usermod -aG docker $USER diff --git a/4.3-K3s.md b/4.3-K3s.md index 20ed5ae..5ce4b87 100644 --- a/4.3-K3s.md +++ b/4.3-K3s.md @@ -1,5 +1,13 @@ +# K3s + > 第4章 容器與編排 · 來源:Raspberry Pi 知識庫 +## 簡介 + +在 Raspberry Pi 以官方腳本安裝 K3s 並確認服務狀態。 + +## 步驟 + ```bash sudo curl -sfL https://get.k3s.io | sh - ``` diff --git a/4.4-k3d.md b/4.4-k3d.md index dbf1615..4be658d 100644 --- a/4.4-k3d.md +++ b/4.4-k3d.md @@ -1,10 +1,14 @@ +# k3d + > 第4章 容器與編排 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 k3d 可在 Docker 中執行輕量級 Kubernetes 發行版 k3s,方便在單機快速建立測試用叢集。本文記錄在 Ubuntu 上安裝 kubectl 與 k3d,並建立叢集的步驟(需先安裝 Docker)。 -# 安裝 kubectl & k3d +## 步驟 + +### 1. 安裝 kubectl & k3d 一次完成:安裝 curl、下載最新版 kubectl 並設為可執行檔、再以官方腳本安裝 k3d。 @@ -16,7 +20,7 @@ apt update \ && curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash ``` -# 建立 1 個伺服器 2 個代理 +### 2. 建立 1 個伺服器 2 個代理 建立名為 `ct` 的叢集(1 個 server、2 個 agent),對外開放 80/443,啟用使用者命名空間相容設定,掛載 Docker socket 並建立本地映像登錄。 @@ -32,7 +36,7 @@ k3d cluster create ct \ --registry-create k3d-ct-registry:5000 ``` -# 驗證節點 +### 3. 驗證節點 確認叢集節點皆已就緒。 diff --git a/4.5-Traefik.md b/4.5-Traefik.md index 810b1c4..a74bcd0 100644 --- a/4.5-Traefik.md +++ b/4.5-Traefik.md @@ -1,10 +1,14 @@ +# Traefik + > 第4章 容器與編排 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Traefik 是一套現代化的反向代理與負載平衡器,常用於統一管理各服務的對外路由與 TLS。本文記錄在 Ubuntu 上以二進位檔搭配 systemd 部署 Traefik 的步驟,並附上範例設定檔。 -# 下載 Traefik 壓縮檔 +## 步驟 + +### 1. 下載 Traefik 壓縮檔 從官方下載指定版本的壓縮檔。 @@ -12,7 +16,7 @@ Traefik 是一套現代化的反向代理與負載平衡器,常用於統一管 wget https://github.com/traefik/traefik/releases/download/v3.7.4/traefik_v3.7.4_linux_amd64.tar.gz ``` -# 解壓縮 +### 2. 解壓縮 只解出 traefik 執行檔並放到 `/usr/local/bin/`。 @@ -20,7 +24,7 @@ wget https://github.com/traefik/traefik/releases/download/v3.7.4/traefik_v3.7.4_ tar zxvf traefik_v3.7.4_linux_amd64.tar.gz -C /usr/local/bin/ traefik ``` -# 建立 Traefik 服務 +### 3. 建立 Traefik 服務 以 systemd 管理服務,可開機自動啟動、崩潰時自動重啟。先建立服務設定檔。 @@ -46,7 +50,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 4. 啟動服務 重新載入 systemd 設定、設為開機自動啟動、啟動服務並檢視狀態。 @@ -54,7 +58,7 @@ WantedBy=multi-user.target systemctl daemon-reload && systemctl enable traefik.service && systemctl start traefik.service && systemctl status traefik.service ``` -# 停止服務 +### 5. 停止服務 停止、取消開機啟動並移除服務設定檔。 @@ -62,7 +66,7 @@ systemctl daemon-reload && systemctl enable traefik.service && systemctl start t systemctl stop traefik.service && systemctl disable traefik.service && rm /etc/systemd/system/traefik.service ``` -# 範例設定檔 +## 範例設定檔 建立設定檔,路徑須與服務檔 `--configFile` 指定的位置一致。 diff --git a/5.1-PostgreSQL.md b/5.1-PostgreSQL.md index eaa34dd..bd8adfb 100644 --- a/5.1-PostgreSQL.md +++ b/5.1-PostgreSQL.md @@ -1,16 +1,20 @@ +# PostgreSQL + > 第5章 資料庫與搜尋 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 PostgreSQL 是常用的開源關聯式資料庫。本文記錄在 Ubuntu 上安裝 PostgreSQL,並開放特定主機與使用者外部連線的步驟。 -# 安裝 PostgreSQL +## 步驟 + +### 1. 安裝 PostgreSQL ```bash apt update && apt install -y postgresql ``` -# 允許外部連線 +### 2. 允許外部連線 編輯用戶端認證設定檔 `pg_hba.conf`(路徑中的 `17` 為 PostgreSQL 主版本號,請依實際版本調整)。 @@ -27,7 +31,7 @@ host gitea gitea 192.168.230.221/24 md5 > 注意:另需確認 `postgresql.conf` 的 `listen_addresses` 已開放對應介面(例如設為 `'*'`),外部連線才會生效。 -# 重啟服務 +### 3. 重啟服務 讓設定生效並檢視狀態。 diff --git a/5.2-SQLServer.md b/5.2-SQLServer.md index 7a714f6..f5c6298 100644 --- a/5.2-SQLServer.md +++ b/5.2-SQLServer.md @@ -1,10 +1,14 @@ +# SQLServer + > 第5章 資料庫與搜尋 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 本文記錄在 Ubuntu 上透過 Microsoft 官方套件庫安裝 SQL Server 2022 的步驟,包含基本設定(密碼、代理、定序),以及命令列工具 sqlcmd 的安裝。 -# 安裝相關套件 +## 步驟 + +### 1. 安裝相關套件 加入套件庫過程需要 curl。 @@ -12,7 +16,7 @@ apt update && apt install -y curl ``` -# 安裝加密簽證 +### 2. 安裝加密簽證 下載並信任 Microsoft 的 GPG 金鑰,供 APT 驗證套件來源。 @@ -20,7 +24,7 @@ apt update && apt install -y curl curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc ``` -# 安裝套件列表 +### 3. 安裝套件列表 加入 SQL Server 2022 的套件庫(套件庫路徑使用 Ubuntu 22.04)。 @@ -28,13 +32,13 @@ curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gp curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list ``` -# 安裝 SQL Server +### 4. 安裝 SQL Server ```bash apt update && apt install -y mssql-server ``` -# 安裝缺少的套件 +### 5. 安裝缺少的套件 若安裝過程缺少 libldap 相依套件,手動下載並安裝。 @@ -42,9 +46,9 @@ apt update && apt install -y mssql-server wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb && dpkg -i libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb ``` -# 設定 SQL Server +### 6. 設定 SQL Server -## 密碼 +#### 密碼 執行初始設定精靈,選擇版本並設定 SA 密碼。 @@ -52,7 +56,7 @@ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.11+ /opt/mssql/bin/mssql-conf setup ``` -## 代理 +#### 代理 啟用 SQL Server Agent(排程作業)後重啟服務。 @@ -60,7 +64,7 @@ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.11+ /opt/mssql/bin/mssql-conf set sqlagent.enabled true && systemctl restart mssql-server ``` -## 定序 +#### 定序 設定定序前須先停止服務。 @@ -84,25 +88,25 @@ systemctl stop mssql-server systemctl start mssql-server ``` -# 連接埠 1433 +### 7. 連接埠 1433 -# 安裝 sqlcmd +### 8. 安裝 sqlcmd sqlcmd 是 SQL Server 的命令列查詢工具。 -## 安裝 sqlcmd 加密簽證 +#### 安裝 sqlcmd 加密簽證 ```bash curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc ``` -## 安裝 sqlcmd 套件列表 +#### 安裝 sqlcmd 套件列表 ```bash curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list ``` -## 安裝 sqlcmd +#### 安裝 sqlcmd ```bash apt update && apt install -y mssql-tools18 unixodbc-dev diff --git a/5.3-Redis.md b/5.3-Redis.md index b4881ac..e1a731b 100644 --- a/5.3-Redis.md +++ b/5.3-Redis.md @@ -1,10 +1,14 @@ +# Redis + > 第5章 資料庫與搜尋 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Redis 是高效能的記憶體式鍵值資料庫,常用於快取與訊息佇列。本文記錄在 Ubuntu 上透過官方 APT 套件庫安裝 Redis 的步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 加入套件庫過程需要這些工具。 @@ -12,7 +16,7 @@ Redis 是高效能的記憶體式鍵值資料庫,常用於快取與訊息佇 apt update && apt install -y lsb-release curl gpg ``` -# 安裝 Redis 簽章 +### 2. 安裝 Redis 簽章 下載官方 GPG 金鑰並轉換為 keyring,供 APT 驗證套件來源。 @@ -26,7 +30,7 @@ curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/ chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg ``` -# 加入 Redis 套件庫 +### 3. 加入 Redis 套件庫 加入官方套件庫(`$(lsb_release -cs)` 會自動帶入目前 Ubuntu 版本代號)。 @@ -34,13 +38,13 @@ chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list ``` -# 安裝 Redis +### 4. 安裝 Redis ```bash apt install -y redis ``` -# 啟動服務 +### 5. 啟動服務 設為開機自動啟動、啟動服務並檢視狀態。 diff --git a/5.4-ElasticSearch.md b/5.4-ElasticSearch.md index 7a09653..cf46941 100644 --- a/5.4-ElasticSearch.md +++ b/5.4-ElasticSearch.md @@ -1,20 +1,24 @@ +# ElasticSearch + > 第5章 資料庫與搜尋 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Elasticsearch 是分散式搜尋與分析引擎,Kibana 則是它的視覺化前端。本文記錄兩種在 Ubuntu 上部署兩者的方式:方法一使用官方壓縮檔手動安裝,方法二使用官方 APT 套件庫安裝。 --- -# 方法一:使用壓縮檔安裝 +## 步驟 -## 下載 Elasticsearch +### 1. 方法一:使用壓縮檔安裝 + +#### 下載 Elasticsearch ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.0-linux-x86_64.tar.gz --no-check-certificate ``` -## 驗證壓縮檔 +#### 驗證壓縮檔 下載官方提供的 SHA512 校驗檔。 @@ -28,13 +32,13 @@ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.0-l shasum -a 512 -c elasticsearch-8.16.0-linux-x86_64.tar.gz.sha512 ``` -## 解壓縮 +#### 解壓縮 ```bash tar -xzf elasticsearch-8.16.0-linux-x86_64.tar.gz ``` -## 設定 Elasticsearch +#### 設定 Elasticsearch 先啟動一次服務,讓系統自動產生完整的預設設定檔。 @@ -65,15 +69,15 @@ http.host: 0.0.0.0 transport.host: 0.0.0.0 ``` -## Elasticsearch 常用指令 +#### Elasticsearch 常用指令 -### 啟動服務 +##### 啟動服務 ```bash elasticsearch ``` -### 關閉服務 +##### 關閉服務 以背景模式啟動並記錄 PID。 @@ -87,13 +91,13 @@ elasticsearch -d -p pid pkill -F pid ``` -### 重設 elastic 帳號密碼 +##### 重設 elastic 帳號密碼 ```bash elasticsearch-reset-password -i -u elastic ``` -### 產生 Kibana 服務金鑰 +##### 產生 Kibana 服務金鑰 供 Kibana 連線 Elasticsearch 使用。 @@ -107,13 +111,13 @@ elasticsearch-create-enrollment-token -s kibana eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC4zMC4xMDQ6OTIwMCJdLCJmZ3IiOiIzYTEyMWIwZTk4N2M0YzE5ODczMzdmNmU0OTk1Y2E3M2RmNmMzZmE5YzlkNzU4ZGYxN2M4YmNlOThjNjBiMjAxIiwia2V5IjoidWpEaVFwTUJDcmJ4NjlvajVsRm86SkpTUmQzdFdRTWVsUlIyUGxHbGg2ZyJ9 ``` -## 下載 Kibana +#### 下載 Kibana ```bash wget https://artifacts.elastic.co/downloads/kibana/kibana-8.16.0-linux-x86_64.tar.gz --no-check-certificate ``` -## 驗證 Kibana 壓縮檔 +#### 驗證 Kibana 壓縮檔 ```bash wget https://artifacts.elastic.co/downloads/kibana/kibana-8.16.0-linux-x86_64.tar.gz.sha512 --no-check-certificate @@ -123,13 +127,13 @@ wget https://artifacts.elastic.co/downloads/kibana/kibana-8.16.0-linux-x86_64.ta shasum -a 512 -c kibana-8.16.0-linux-x86_64.tar.gz.sha512 ``` -## 解壓縮 Kibana +#### 解壓縮 Kibana ```bash tar -xzf kibana-8.16.0-linux-x86_64.tar.gz ``` -## 設定 Kibana +#### 設定 Kibana ```bash sudo nano kibana-8.16.0/config/kibana.yml @@ -148,7 +152,7 @@ elasticsearch.hosts: ["http://0.0.0.0:9200"] elasticsearch.serviceAccountToken: "eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC4zMC4xMDQ6OTIwMCJdLCJmZ3IiOiIzYTEyMWIwZTk4N2M0YzE5ODczMzdmNmU0OTk1Y2E3M2RmNmMzZmE5YzlkNzU4ZGYxN2M4YmNlOThjNjBiMjAxIiwia2V5IjoidWpEaVFwTUJDcmJ4NjlvajVsRm86SkpTUmQzdFdRTWVsUlIyUGxHbGg2ZyJ9" ``` -## 啟動 Kibana +#### 啟動 Kibana ```bash kibana @@ -156,15 +160,15 @@ kibana --- -# 方法二:使用 APT 套件庫安裝 +### 2. 方法二:使用 APT 套件庫安裝 -## 安裝相依套件 +#### 安裝相依套件 ```bash sudo apt install -y apt-transport-https ``` -## 加入套件庫並安裝 +#### 加入套件庫並安裝 加入官方 8.x APT 套件庫。 @@ -178,7 +182,7 @@ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://arti sudo apt update && sudo apt upgrade -y && sudo apt install -y elasticsearch kibana ``` -## 建立 Elasticsearch 服務 +#### 建立 Elasticsearch 服務 建立 systemd 服務設定檔。 @@ -203,7 +207,7 @@ Restart=always WantedBy=multi-user.target ``` -## 啟動 Elasticsearch 服務 +#### 啟動 Elasticsearch 服務 ```bash sudo systemctl daemon-reload @@ -217,7 +221,7 @@ sudo systemctl enable elasticsearch sudo systemctl start elasticsearch ``` -## 建立 Kibana 服務 +#### 建立 Kibana 服務 建立 systemd 服務設定檔。 @@ -242,7 +246,7 @@ Restart=always WantedBy=multi-user.target ``` -## 啟動 Kibana 服務 +#### 啟動 Kibana 服務 ```bash sudo systemctl daemon-reload diff --git a/6.1-Gitea.md b/6.1-Gitea.md index 774c8ca..7acb985 100644 --- a/6.1-Gitea.md +++ b/6.1-Gitea.md @@ -1,10 +1,14 @@ +# Gitea + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Gitea 是一套輕量級、可自行架設的 Git 服務(功能類似 GitHub / GitLab)。本文記錄在 Ubuntu 上以二進位檔搭配 systemd 部署 Gitea 的完整步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 Gitea 進行版本控制操作時需要系統已安裝 git。 @@ -12,7 +16,7 @@ Gitea 進行版本控制操作時需要系統已安裝 git。 apt update && apt install -y git ``` -# 下載 Gitea +### 2. 下載 Gitea 從官方下載指定版本的二進位檔,放到 `/usr/local/bin/gitea`。以下提供兩個版本,擇一執行即可。 @@ -30,7 +34,7 @@ wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/1.26.2/gitea-1.26.2-linu chmod +x /usr/local/bin/gitea ``` -# 新增 git 使用者 +### 3. 新增 git 使用者 基於安全考量,Gitea 以專屬的 `git` 系統帳號執行,而非使用 root。 @@ -45,7 +49,7 @@ adduser \ git ``` -# 建立系統資料夾 +### 4. 建立系統資料夾 分別建立存放自訂檔案、資料、日誌的目錄,以及設定檔目錄 `/etc/gitea`。 @@ -65,7 +69,7 @@ chown -R git:git /var/lib/gitea/ && chmod -R 750 /var/lib/gitea/ chown root:git /etc/gitea && chmod 770 /etc/gitea ``` -# 設定工作目錄環境變數 +### 5. 設定工作目錄環境變數 告訴 Gitea 它的工作目錄位置。 @@ -73,7 +77,7 @@ chown root:git /etc/gitea && chmod 770 /etc/gitea echo 'export GITEA_WORK_DIR=/var/lib/gitea/' >> ~/.bashrc && source ~/.bashrc ``` -# 建立 Gitea 服務 +### 6. 建立 Gitea 服務 以 systemd 管理 Gitea,可開機自動啟動、崩潰時自動重啟。先建立服務設定檔。 @@ -171,7 +175,7 @@ Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea WantedBy=multi-user.target ``` -# 啟動服務 +### 7. 啟動服務 重新載入 systemd 設定、設為開機自動啟動、啟動服務並檢視狀態。 diff --git a/6.10-VS-Code.md b/6.10-VS-Code.md index 7e7da43..8477e05 100644 --- a/6.10-VS-Code.md +++ b/6.10-VS-Code.md @@ -1,10 +1,14 @@ +# VS Code + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 code-server 可在伺服器上執行 VS Code,並透過瀏覽器遠端使用。本文記錄在 Ubuntu 上安裝 code-server 的步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 安裝腳本下載過程需要 curl。 @@ -12,7 +16,7 @@ code-server 可在伺服器上執行 VS Code,並透過瀏覽器遠端使用。 apt update && apt install -y curl ``` -# 安裝 VS Code +### 2. 安裝 VS Code 透過官方安裝腳本安裝 code-server。 @@ -20,7 +24,7 @@ apt update && apt install -y curl curl -fsSL https://code-server.dev/install.sh | sh ``` -# 啟動服務 +### 3. 啟動服務 設為開機自動啟動並啟動目前使用者的 code-server 服務,再檢視狀態。 @@ -28,7 +32,7 @@ curl -fsSL https://code-server.dev/install.sh | sh systemctl daemon-reload && systemctl enable --now code-server@$USER && systemctl start code-server@$USER && systemctl status code-server@$USER ``` -# 預設密碼 +### 4. 預設密碼 首次啟動後,登入密碼會自動產生並寫入設定檔。 diff --git a/6.11-Coder.md b/6.11-Coder.md index 3acddc9..9c51101 100644 --- a/6.11-Coder.md +++ b/6.11-Coder.md @@ -1,10 +1,14 @@ +# Coder + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Coder 是自架的雲端開發環境平台,可在伺服器上建立並管理遠端開發工作區。本文記錄在 Ubuntu 上安裝 Coder,並使用 PostgreSQL 作為資料庫的步驟。 -# 安裝 Coder +## 步驟 + +### 1. 安裝 Coder 透過官方安裝腳本安裝。 @@ -12,7 +16,7 @@ Coder 是自架的雲端開發環境平台,可在伺服器上建立並管理 curl -L https://coder.com/install.sh | sh ``` -# 修改 Coder 綁定的位址 +### 2. 修改 Coder 綁定的位址 ```bash nano /etc/coder.d/coder.env @@ -27,7 +31,7 @@ CODER_HTTP_ADDRESS=0.0.0.0:80 CODER_PG_CONNECTION_URL=postgres://postgres:<密碼>@192.168.3.101:5432/coder?sslmode=disable ``` -# 設定 Coder 服務檔 +### 3. 設定 Coder 服務檔 ```bash systemctl edit coder @@ -42,7 +46,7 @@ User=coder Group=coder ``` -# 啟動服務 +### 4. 啟動服務 設為開機自動啟動並立即啟動服務。 @@ -50,7 +54,7 @@ Group=coder systemctl daemon-reload && systemctl enable --now coder && systemctl status coder ``` -# 設定資料庫 +### 5. 設定資料庫 以 postgres 系統帳號進入 PostgreSQL 互動介面。 @@ -79,7 +83,7 @@ ALTER SCHEMA public OWNER TO coder; GRANT USAGE, CREATE ON SCHEMA public TO coder; ``` -# 設定 Docker Provider +### 6. 設定 Docker Provider 設定 Docker 權限給 Coder diff --git a/6.12-Oh-My-Posh.md b/6.12-Oh-My-Posh.md index ee0f199..ee8d5c3 100644 --- a/6.12-Oh-My-Posh.md +++ b/6.12-Oh-My-Posh.md @@ -1,6 +1,14 @@ +# Oh My Posh + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 安裝 Oh My Posh +## 簡介 + +安裝 Oh My Posh,並在 bash 啟動時自動初始化。 + +## 步驟 + +### 1. 安裝 Oh My Posh ```bash curl -s https://ohmyposh.dev/install.sh | bash -s diff --git a/6.2-GiteaRunner(Ubuntu).md b/6.2-GiteaRunner(Ubuntu).md index 076af95..e5e7a0e 100644 --- a/6.2-GiteaRunner(Ubuntu).md +++ b/6.2-GiteaRunner(Ubuntu).md @@ -1,10 +1,14 @@ +# GiteaRunner(Ubuntu) + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Gitea Runner(act_runner)負責執行 Gitea Actions 的 CI/CD 工作流程,需向 Gitea 主機註冊後才能接收任務。本文記錄在 Ubuntu 上以二進位檔搭配 systemd 部署 Runner 的步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 部分 Actions 工作流程需要 Node.js 環境。 @@ -12,7 +16,7 @@ Gitea Runner(act_runner)負責執行 Gitea Actions 的 CI/CD 工作流程, apt update && apt install -y nodejs ``` -# 下載 Gitea Runner +### 2. 下載 Gitea Runner 從官方下載指定版本的二進位檔,放到 `/usr/local/bin/runner`。 @@ -30,7 +34,7 @@ wget https://gitea.com/gitea/runner/releases/download/v1.0.8/gitea-runner-1.0.8- chmod +x /usr/local/bin/runner ``` -# 註冊 Gitea Runner +### 3. 註冊 Gitea Runner 執行註冊指令,依提示輸入 Gitea 主機位址與註冊權杖(registration token),完成後會在當前目錄產生設定檔。 @@ -38,7 +42,7 @@ chmod +x /usr/local/bin/runner runner register ``` -# 建立 Gitea Runner 服務 +### 4. 建立 Gitea Runner 服務 以 systemd 管理 Runner,可開機自動啟動、崩潰時自動重啟。先建立服務設定檔。 @@ -64,7 +68,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 5. 啟動服務 重新載入 systemd 設定、設為開機自動啟動、啟動服務並檢視狀態。 @@ -72,7 +76,7 @@ WantedBy=multi-user.target systemctl daemon-reload && systemctl enable runner.service && systemctl start runner.service && systemctl status runner.service ``` -# 停止服務 +### 6. 停止服務 停止並移除舊版(act_runner)服務時使用。 diff --git a/6.3-Gitea-Runner.md b/6.3-Gitea-Runner.md index 8523151..a29d40a 100644 --- a/6.3-Gitea-Runner.md +++ b/6.3-Gitea-Runner.md @@ -1,6 +1,14 @@ +# Gitea Runner(Windows) + > 第6章 開發與持續整合 · 來源:Windows 知識庫 -# 從 Github Release Page 下載 Gitea Runner,並重新命名成 act_runner.exe +## 簡介 + +在 Windows 安裝 Gitea Runner,並以 WinSW 註冊為系統服務。 + +## 步驟 + +### 1. 從 Github Release Page 下載 Gitea Runner,並重新命名成 act_runner.exe Github Release Page: https://gitea.com/gitea/act_runner/releases @@ -10,7 +18,7 @@ v0.2.11: https://gitea.com/gitea/act_runner/releases/download/v0.2.11/act_runner Invoke-WebRequest https://gitea.com/gitea/act_runner/releases/download/v0.2.11/act_runner-0.2.11-windows-amd64.exe -OutFile act_runner.exe ``` -# 註冊 Gitea Runner 到 Gitea Server 產生 .runner 檔 +### 2. 註冊 Gitea Runner 到 Gitea Server 產生 .runner 檔 ```powershell $instance="" @@ -32,7 +40,7 @@ $name="" .\act_runner.exe register --no-interactive --instance $instance --token $token --labels $labels --name $name ``` -# 從 Github Release Page 下載 WinSW,並重新命名成 winsw.exe +### 3. 從 Github Release Page 下載 WinSW,並重新命名成 winsw.exe Github Release Page: https://github.com/winsw/winsw/releases diff --git a/6.4-GiteaRunner(Alpine).md b/6.4-GiteaRunner(Alpine).md index 85078ca..4d7080e 100644 --- a/6.4-GiteaRunner(Alpine).md +++ b/6.4-GiteaRunner(Alpine).md @@ -1,6 +1,14 @@ +# GiteaRunner(Alpine) + > 第6章 開發與持續整合 · 來源:Alpine 知識庫 -# 下載 Gitea Runner +## 簡介 + +在 Alpine 安裝 Gitea Runner 並設定為服務。 + +## 步驟 + +### 1. 下載 Gitea Runner ```bash wget https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64 -O /usr/local/bin/act_runner @@ -12,7 +20,7 @@ wget https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2 chmod +x /usr/local/bin/act_runner ``` -# 註冊 Gitea Runner +### 2. 註冊 Gitea Runner 設定參數 @@ -36,7 +44,7 @@ RUNNER_NAME='ct-docker' act_runner register --no-interactive --instance $GITEA_URL --token $REGISTER_TOKEN --labels $RUNNER_LABELS --name $RUNNER_NAME ``` -# 設計 Gitea Runner 服務 +### 3. 設計 Gitea Runner 服務 ```bash nano /etc/init.d/act_runner diff --git a/6.5-Gitlab.md b/6.5-Gitlab.md index d6bee28..4f9d56e 100644 --- a/6.5-Gitlab.md +++ b/6.5-Gitlab.md @@ -1,10 +1,14 @@ +# Gitlab + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 GitLab CE(社群版)是功能完整的自架 Git 平台,內建 CI/CD、Issue 追蹤等功能。本文記錄在 Ubuntu 上透過官方套件庫安裝 GitLab 的步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 安裝套件庫腳本與套件下載過程需要 curl。 @@ -18,7 +22,7 @@ apt update && apt install -y curl curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | bash ``` -# 安裝 Gitlab +### 2. 安裝 Gitlab 安裝時以 `EXTERNAL_URL` 指定對外網址,GitLab 會據此自動完成初始設定。 @@ -26,7 +30,7 @@ curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.d EXTERNAL_URL="https://gitlab.jsc.idv.tw" apt install gitlab-ce ``` -# 取得 root 密碼 +### 3. 取得 root 密碼 安裝後系統會產生隨機的 root 初始密碼,存放於下列檔案,且必須在 24 小時內登入並變更,逾期該檔案會被自動刪除。 diff --git a/6.6-ASP.NET.md b/6.6-ASP.NET.md index acd3584..8b34b02 100644 --- a/6.6-ASP.NET.md +++ b/6.6-ASP.NET.md @@ -1,6 +1,8 @@ +# ASP.NET + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 本文提供以 systemd 部署 ASP.NET(.NET)應用程式的服務檔範本。將大括號標記的欄位替換為實際值即可: @@ -8,7 +10,9 @@ - `{environment_name}`:執行環境,例如 `Production`、`Staging` - `{url}`:服務監聽的位址與連接埠,例如 `http://0.0.0.0:5000` -# 建立 ASP.NET 服務 +## 步驟 + +### 1. 建立 ASP.NET 服務 建立服務設定檔(路徑:`/etc/systemd/system/`),內容如下: diff --git a/6.7-Django.md b/6.7-Django.md index 2b25192..7930715 100644 --- a/6.7-Django.md +++ b/6.7-Django.md @@ -1,18 +1,26 @@ +# Django + > 第6章 開發與持續整合 · 來源:Python 知識庫 -# 安裝 Django +## 簡介 + +安裝 Django、建立專案並啟動。 + +## 步驟 + +### 1. 安裝 Django ```bash pip3 install Django ``` -# 建立專案 +### 2. 建立專案 ```bash mkdir djangotutorial && django-admin startproject mysite djangotutorial ``` -# 啟動專案 +### 3. 啟動專案 在 setting.py 將主機位置加入 ALLOWED_HOSTS diff --git a/6.8-Node-JS.md b/6.8-Node-JS.md index 73123be..170e94a 100644 --- a/6.8-Node-JS.md +++ b/6.8-Node-JS.md @@ -1,18 +1,26 @@ +# Node JS + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 安裝相依套件 +## 簡介 + +以 fnm 安裝並管理 Node.js。 + +## 步驟 + +### 1. 安裝相依套件 ```bash apt update && apt install -y curl unzip ``` -# 下載並安裝 fnm: +### 2. 下載並安裝 fnm: ```bash curl -o- https://fnm.vercel.app/install | bash ``` -# 下載並安裝 Node.js: +### 3. 下載並安裝 Node.js: ```bash fnm install 26 diff --git a/6.9-C#-SDK.md b/6.9-C#-SDK.md index ae81e6b..46071ef 100644 --- a/6.9-C#-SDK.md +++ b/6.9-C#-SDK.md @@ -1,6 +1,14 @@ +# C# SDK + > 第6章 開發與持續整合 · 來源:Ubuntu 知識庫 -# 下載 C# SDK 安裝套件: +## 簡介 + +在 Ubuntu/Debian 安裝 C# SDK(.NET)。 + +## 步驟 + +### 1. 下載 C# SDK 安裝套件: ```bash wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb @@ -10,13 +18,13 @@ wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod. wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb ``` -# 安裝 C# SDK 套件: +### 2. 安裝 C# SDK 套件: ```bash dpkg -i packages-microsoft-prod.deb ``` -# 安裝 C# .NET 10 +### 3. 安裝 C# .NET 10 ```bash apt update && apt install -y dotnet-sdk-10.0 diff --git a/7.1-ccstatusline.md b/7.1-ccstatusline.md index f6d56d8..46deccf 100644 --- a/7.1-ccstatusline.md +++ b/7.1-ccstatusline.md @@ -1,6 +1,14 @@ +# ccstatusline + > 第7章 AI 工具 · 來源:Ubuntu 知識庫 -# 設定 Claude 狀態列使用此風格 +## 簡介 + +設定 Claude Code 的狀態列使用 ccstatusline。 + +## 步驟 + +### 1. 設定 Claude 狀態列使用此風格 ```bash nano ~/.claude/settings.json @@ -19,7 +27,7 @@ nano ~/.claude/settings.json } ``` -# 設定 ccstatusline +### 2. 設定 ccstatusline ```bash npx -y ccstatusline@latest diff --git a/7.2-CLIProxyAPI.md b/7.2-CLIProxyAPI.md index 4437380..1a8870f 100644 --- a/7.2-CLIProxyAPI.md +++ b/7.2-CLIProxyAPI.md @@ -1,14 +1,20 @@ +# CLIProxyAPI + > 第7章 AI 工具 · 來源:Ubuntu 知識庫 -# 安裝套件 [Tool:Node JS](https://gitea.jsc.idv.tw/knowledges/Ubuntu/wiki/Tool%EF%BC%9ANode-JS) +## 簡介 -# 安裝服務 +## 步驟 + +### 1. 安裝套件 [Tool:Node JS](6.8-Node-JS) + +### 2. 安裝服務 ```bash npm install -g cliproxyapi --registry=https://gitea.jsc.idv.tw/api/packages/jiantw83/npm ``` -# 設定服務 +### 3. 設定服務 ```bash nano /etc/systemd/system/cliproxyapi.service @@ -32,7 +38,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 4. 啟動服務 ```bash systemctl daemon-reload && systemctl enable cliproxyapi.service && systemctl start cliproxyapi.service && systemctl status cliproxyapi.service diff --git a/7.3-OpenClaw.md b/7.3-OpenClaw.md index 1e88955..b28e03d 100644 --- a/7.3-OpenClaw.md +++ b/7.3-OpenClaw.md @@ -1,12 +1,20 @@ +# OpenClaw + > 第7章 AI 工具 · 來源:Ubuntu 知識庫 -# 更新系統套件 +## 簡介 + +在 Ubuntu 安裝 OpenClaw,完成初始化並啟動服務。 + +## 步驟 + +### 1. 更新系統套件 ```bash apt update && apt upgrade -y && apt install -y curl wget git unzip ``` -# 安裝 NodeJS +### 2. 安裝 NodeJS ```bash curl -fsSL https://nodesource.com | bash - @@ -16,25 +24,25 @@ curl -fsSL https://nodesource.com | bash - apt install -y nodejs ``` -# 安裝 OpenClaw +### 3. 安裝 OpenClaw ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` -# 驗證 OpenClaw 版本 +### 4. 驗證 OpenClaw 版本 ```bash openclaw version ``` -# 初始化 OpenClaw 系統 +### 5. 初始化 OpenClaw 系統 ```bash openclaw onboard --install-daemon ``` -# 啟動 OpenClaw 服務 +### 6. 啟動 OpenClaw 服務 ```bash sudo loginctl enable-linger $USER @@ -44,7 +52,7 @@ sudo loginctl enable-linger $USER openclaw gateway status --port 18789 ``` -# 設定 OpenClaw 密碼 +### 7. 設定 OpenClaw 密碼 ```bash echo "$(openssl rand -hex 32)" > openclaw-token diff --git a/7.4-OpenCode.md b/7.4-OpenCode.md index 2dc74d1..b3b2e58 100644 --- a/7.4-OpenCode.md +++ b/7.4-OpenCode.md @@ -1,14 +1,18 @@ +# OpenCode + > 第7章 AI 工具 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 -# 下載 OpenCode +## 步驟 + +### 1. 下載 OpenCode ```bash curl -fsSL https://opencode.ai/install | bash ``` -# 建立 OpenCode 服務 +### 2. 建立 OpenCode 服務 設定使用者名稱與密碼 @@ -44,7 +48,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 3. 啟動服務 重新載入 systemd 設定、設為開機自動啟動、啟動服務並檢視狀態。 diff --git a/7.5-PicoClaw.md b/7.5-PicoClaw.md index 9045535..3eec171 100644 --- a/7.5-PicoClaw.md +++ b/7.5-PicoClaw.md @@ -1,14 +1,18 @@ +# PicoClaw + > 第7章 AI 工具 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 PicoClaw 是 Sipeed 推出的工具,可由原始碼自行建置,也可直接以套件快速安裝。本文記錄兩種在 Ubuntu 上的安裝方式,以及 TUI / WebUI 兩種啟動方法。 -# 安裝語言套件 +## 步驟 + +### 1. 安裝語言套件 由原始碼建置需要 Go 與 Node.js 環境。 -## Go +#### Go 下載並解壓縮 Go 到 `/usr/local`。 @@ -26,13 +30,13 @@ wget https://go.dev/dl/go1.26.5.linux-amd64.tar.gz && tar -C /usr/local -xzf go1 echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc && source ~/.bashrc && go version ``` -## NodeJS && NPM +#### NodeJS && NPM ```bash apt update && apt install -y nodejs npm ``` -# 下載原始碼 +### 2. 下載原始碼 從 GitHub 取得原始碼。 @@ -40,7 +44,7 @@ apt update && apt install -y nodejs npm git clone https://github.com/sipeed/picoclaw.git ``` -# 編譯原始碼 +### 3. 編譯原始碼 安裝建置所需的相依套件。 @@ -66,7 +70,7 @@ cd ~/picoclaw && make build-all cd ~/picoclaw && make install ``` -# 啟動 TUI for SSH +### 4. 啟動 TUI for SSH 適合透過 SSH 連線時使用的文字介面。 @@ -74,7 +78,7 @@ cd ~/picoclaw && make install picoclaw-launcher-tui ``` -# 快速安裝 +### 5. 快速安裝 若不想自行建置,可直接下載 deb 套件安裝。 @@ -86,7 +90,7 @@ wget https://github.com/sipeed/picoclaw/releases/download/v0.2.6/picoclaw_x86_64 wget https://github.com/sipeed/picoclaw/releases/download/v0.3.1/picoclaw_x86_64.deb && dpkg -i picoclaw_x86_64.deb ``` -# 啟動 WebUI for Desktop +### 6. 啟動 WebUI for Desktop 適合桌面環境使用的網頁介面,`-public` 開放外部連線。 diff --git a/7.6-補充解決方案內,所有專案的註解,並整理-README.md b/7.6-補充解決方案內,所有專案的註解,並整理-README.md index e44284e..660d407 100644 --- a/7.6-補充解決方案內,所有專案的註解,並整理-README.md +++ b/7.6-補充解決方案內,所有專案的註解,並整理-README.md @@ -1,5 +1,13 @@ +# 補充解決方案內,所有專案的註解,並整理 README + > 第7章 AI 工具 · 來源:Prompt 知識庫 +## 簡介 + +要求 Claude 補齊方案內所有專案的程式註解,並整理 README 的提示詞。 + +## 提示詞 + ``` 請幫我補上這個解決方案內的所有註解,包括: diff --git a/8.1-Emby.md b/8.1-Emby.md index e0baacd..9f9c286 100644 --- a/8.1-Emby.md +++ b/8.1-Emby.md @@ -1,10 +1,14 @@ +# Emby + > 第8章 應用服務 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 Emby 是一套媒體伺服器,可整理並串流家中的影音內容。本文記錄在 Ubuntu 上以官方 deb 套件安裝 Emby Server 的步驟。 -# 下載 Emby +## 步驟 + +### 1. 下載 Emby 從官方下載指定版本的 deb 安裝套件。 @@ -12,7 +16,7 @@ Emby 是一套媒體伺服器,可整理並串流家中的影音內容。本文 wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.8.11.0/emby-server-deb_4.8.11.0_amd64.deb ``` -# 安裝 Emby +### 2. 安裝 Emby 以 dpkg 安裝下載的套件,安裝後 Emby 會自動註冊為系統服務並啟動。 diff --git a/8.2-MeTube.md b/8.2-MeTube.md index 48a42e6..8509a8f 100644 --- a/8.2-MeTube.md +++ b/8.2-MeTube.md @@ -1,10 +1,14 @@ +# MeTube + > 第8章 應用服務 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 MeTube 是 youtube-dl / yt-dlp 的網頁前端,可透過瀏覽器下載影音。本文記錄在 Ubuntu 上由原始碼建置並以 systemd 部署的步驟。 -# 安裝相依套件 +## 步驟 + +### 1. 安裝相依套件 建置前端與後端、處理影音時需要這些套件。 @@ -12,7 +16,7 @@ MeTube 是 youtube-dl / yt-dlp 的網頁前端,可透過瀏覽器下載影音 apt update && apt install -y git nodejs npm curl ffmpeg ``` -# 下載 MeTube +### 2. 下載 MeTube 從 GitHub 取得原始碼。 @@ -20,9 +24,9 @@ apt update && apt install -y git nodejs npm curl ffmpeg git clone https://github.com/alexta69/metube.git ``` -# 安裝 MeTube +### 3. 安裝 MeTube -## 前端 +#### 前端 安裝前端相依套件並建置 Angular 前端。 @@ -30,7 +34,7 @@ git clone https://github.com/alexta69/metube.git cd ~/metube/ui && npm install && node_modules/.bin/ng build ``` -## 後端 +#### 後端 安裝 uv(Python 套件管理工具)並同步後端相依套件。 @@ -44,7 +48,7 @@ cd ~/metube && curl -LsSf https://astral.sh/uv/install.sh | sh && uv sync echo 'source $HOME/.local/bin/env' >> ~/.bashrc && source ~/.bashrc ``` -# 執行 MeTube +### 4. 執行 MeTube 手動執行測試是否正常。 @@ -52,7 +56,7 @@ echo 'source $HOME/.local/bin/env' >> ~/.bashrc && source ~/.bashrc uv run python3 app/main.py ``` -# 建立 MeTube 服務 +### 5. 建立 MeTube 服務 以 systemd 管理服務,可開機自動啟動、崩潰時自動重啟。先建立服務設定檔。 @@ -77,7 +81,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 6. 啟動服務 重新載入 systemd 設定、設為開機自動啟動並啟動服務。 @@ -85,4 +89,4 @@ WantedBy=multi-user.target systemctl daemon-reload && systemctl enable metube.service && systemctl start metube.service ``` -# 連接埠 8081 +### 7. 連接埠 8081 diff --git a/8.3-Vaultwarden.md b/8.3-Vaultwarden.md index 6802cf4..da3ace2 100644 --- a/8.3-Vaultwarden.md +++ b/8.3-Vaultwarden.md @@ -1,10 +1,12 @@ +# Vaultwarden + > 第8章 應用服務 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 +## 步驟 - -# 安裝 Vaultwarden +### 1. 安裝 Vaultwarden ```bash wget -qO- https://vaultwarden-deb.pages.dev/dists/trixie/install.sh | bash diff --git a/8.4-ezBookkeeping.md b/8.4-ezBookkeeping.md index 9c7863a..d3be23c 100644 --- a/8.4-ezBookkeeping.md +++ b/8.4-ezBookkeeping.md @@ -1,10 +1,14 @@ +# ezBookkeeping + > 第8章 應用服務 · 來源:Ubuntu 知識庫 -# 簡介 +## 簡介 ezBookkeeping 是一套自架的個人記帳服務。本文記錄在 Ubuntu 上以二進位檔搭配 systemd 部署,並使用 PostgreSQL 作為資料庫的步驟。 -# 下載 ezBookkeeping +## 步驟 + +### 1. 下載 ezBookkeeping 從官方下載指定版本的壓縮檔並解壓縮,以下提供兩個版本,擇一執行即可。 @@ -16,7 +20,7 @@ wget https://github.com/mayswind/ezbookkeeping/releases/download/v1.4.0/ezbookke wget https://github.com/mayswind/ezbookkeeping/releases/download/v1.5.1/ezbookkeeping-v1.5.1-linux-amd64.tar.gz && tar zxvf ezbookkeeping-v1.5.1-linux-amd64.tar.gz ``` -# 建立 ezBookkeeping 服務 +### 2. 建立 ezBookkeeping 服務 以 systemd 管理服務,可開機自動啟動、崩潰時自動重啟。先建立服務設定檔。 @@ -42,7 +46,7 @@ User=root WantedBy=multi-user.target ``` -# 啟動服務 +### 3. 啟動服務 重新載入 systemd 設定、設為開機自動啟動、啟動服務並檢視狀態。 @@ -50,7 +54,7 @@ WantedBy=multi-user.target systemctl daemon-reload && systemctl enable ezbookkeeping.service && systemctl start ezbookkeeping.service && systemctl status ezbookkeeping.service ``` -# 設定資料庫 +### 4. 設定資料庫 以 postgres 系統帳號進入 PostgreSQL 互動介面。 diff --git a/Home.md b/Home.md index ae772c5..17aa2a7 100644 --- a/Home.md +++ b/Home.md @@ -17,6 +17,10 @@ 安裝 `jsc-wiki` 插件後可直接在 Claude Code 讀取:`/jsc-wiki:wiki` 看目錄與搜尋,或 `/jsc-wiki:system`、`/jsc-wiki:network` 等依領域查詢。 +## 頁面格式 + +每頁固定為:`# 標題` → 章節與來源 → `## 簡介` → `## 步驟`(`### 1.`、`### 2.` 依序編號)→ 選用的補充段落(常見問題、範例設定檔等)。非步驟型頁面以「參考連結」或「提示詞」取代步驟。 + ## 說明 - 內容中的密碼與 token 已改為 `<密碼>`、`` 等占位符,使用時請自行替換。