Ninniku IT Hub

開源技術,實戰分享

iDempiere ERP · IoT · Linux — 從導入到上線的技術筆記

iDempiere OSGI JavaScript 七擒孟獲:五次失敗與一次攻心
iDempiere

iDempiere OSGI JavaScript 七擒孟獲:五次失敗與一次攻心

南征序曲:蠻荒之地多蠻王 自古蠻荒之地多猛獸,iDempiere OSGI 之地多 JavaScript 蠻王。 上回書說到,丞相以八陣圖之法,教會天下人如何在 iDempiere 中佈署 CustomForm,從 OSGI ClassLoader 的糧道到 ZK MVVM 的陣旗,一路過關斬將,好不威風。正當丞相以為天下太平,準備回成都喝茶之時,探馬來報:「丞相!南蠻又反了!」 南蠻王是誰?JavaScript。 你看那 JavaScript,在瀏覽器裡橫行霸道慣了,到了 ZK Framework 的地盤,照樣不服管教。你想在 OSGI plugin 的 CustomForm 裡載入 ECharts CDN?它不讓。你想用 ZUL 的 <script> 標籤引入自定義 JS?它笑你天真。你想用 <?script?> Processing Instruction 繞道偷襲?它路都給你封了。 丞相深知,蠻王不可力敵,唯有攻心為上。於是丞相率大軍南征,五擒五縱,直到 JavaScript...

2026-03-08 · 閱讀 35 分鐘
iDempiere

iDempiere CustomForm 八陣圖:以 MVVM 兵法統御 ZK 前線

前言:拜相點兵 話說蜀漢建興年間,丞相諸葛亮治國有方,南征北伐,無往不利。唯獨有一事,令丞相夜不能寐——iDempiere CustomForm 開發。 你看那 iDempiere WebUI,表面上是個 ERP 系統,骨子裡卻是 ZK Framework + OSGI 的深水區。想做一個自訂表單?光是「讓畫面出現」這件事,就得過五關斬六將:OSGI ClassLoader 不認你的檔案、ZK 的 ~./ 路徑找不到資源、@NotifyChange 死活不觸發 UI 更新……每一個坑都足以讓你在鍵盤前仰天長嘯:「臣本布衣,躬耕於南陽,苟全性命於亂世,不求聞達於 OSGI。」 但丞相終究是丞相。他花了三天三夜,終於將 CustomForm...

2026-03-08 · 47 分鐘
mergerfs NAS 合併儲存示意圖 Linux

mergerfs 硬碟合體術:天下儲存,分久必合

前言:天下儲存,分久必合 話說天下大勢,分久必合,合久必分。儲存之道,亦復如是。 你手上有兩台 NAS,一台放影片,一台放文件。每次找檔案,得先想:「這玩意兒當初存在曹操那邊還是孫權那邊?」——彷彿在三國地圖上翻來翻去找糧草,還沒找到檔案,人已經先崩潰了。 這時候你需要的,就是 mergerfs。 mergerfs 是一種 Union Filesystem——它不會動你原始硬碟上的任何資料,而是在上面建立一個虛擬層,把散落各處的儲存空間統一調度。簡單說:它就是諸葛亮,不用搬遷任何一座城池,只憑一張地圖就能讓三軍糧草如臂使指。 曹操許昌糧倉 (NAS A) ──┐ ├──→ /media/unified (大本營統一入口) 孫權江東魚米 (NAS B) ──┘ 本文將以三國用兵之法,帶你走過 mergerfs 合併儲存的完整戰術。所有指令皆為實戰驗證,搬去直接用。開戰之前,先備齊軍需: #...

2026-03-06 · 17 分鐘
iDempiere

iDempiere 修煉之路:從練氣期到渡劫期的 47 堂免費心法課

前言:修仙之路,始於腳下 天下學 ERP 者眾,修成正果者寡。 iDempiere 是開源 ERP 界的武林名門,功法深厚、招式齊全。但不少人一看到源碼就退了——幾百萬行 Java、OSGi 框架、Application Dictionary……光聽名字就夠讓凡人窒息。 問題出在哪?沒有一套系統化的修煉心法。 現在,idempiere.dev/learn 端出了一套完整的修仙功法——47 堂課、4 個境界、5 大功法門派,從凡人到飛升,全部免費。對,你沒看錯,免費。這年頭連個 Udemy 課都要 $29.99,人家直接把修仙秘笈攤開來讓你抄。 凡人 → 練氣期(12課) → 築基期(15課)...

2026-02-28 · 15 分鐘
GitHub Fork 開源協作流程圖:從 Fork 到 Pull Request 的武俠風格示意圖 IT Tools

GitHub Fork 門派修煉指南:從無名小卒到開源大俠的六式心法

前言:開源江湖的入門儀式 天下開源之道,知寫 code 者多,知協作者少。 你在 GitHub 上看到一個好專案,心生仰慕,想貢獻一份力。可是你一看——沒有 push 權限。就像你路過少林寺,覺得武功不錯想練兩招,結果人家山門都不讓你進。 這時候你需要的,就是 Fork。 Fork 就是把別人的 repo 完整複製一份到你的帳號下。你對 fork 有完整的讀寫權限,可以自由修改,再透過 Pull Request 把改動提交回原始專案。簡單說:先把秘笈抄一份回家練,練出心得再回山門獻藝。 bxservice/idempiere-rest (upstream,原始門派) │ └── fork...

2026-02-28 · 18 分鐘
Nginx DDoS 防禦概念圖:Nginx 伺服器以多層防護抵禦 DDoS 攻擊 Linux

Nginx 七式防禦術:從零打造 DDoS 防護堡壘

前言:城門守衛的覺悟 天下伺服器之道,知架設者多,知防守者少。 曾幾何時,你的網站在深夜三點被不明流量灌爆,error log 像瀑布一樣往下滾,你只能抱著筆電對螢幕唸經。那一刻你才體悟到:架站只是入門,防守才是修行。 本文基於實戰經驗,分享如何用 Nginx 打造七層防禦工事,讓你的伺服器在 DDoS 洪流中屹立不搖。所有配置皆經過生產環境驗證,拿去直接用。 架構概覽:反向代理是第一道城牆 我們的架構很單純:Nginx 做反向代理,前面接網際網路,後面接多台應用伺服器。 Internet ──▶ Nginx (反向代理) ──▶ 後端服務群 App-Server-A:8443 (ERP 系統) App-Server-B:443 (官網、API、CMS...) App-Server-C:8443...

2026-02-23 · 15 分鐘
iDempiere

iDempiere Technical Guide: How to Add Custom Toolbar Buttons

實戰案例:實作「列印傳票」按鈕。本指南將帶您了解如何使用 OSGi 在 iDempiere 視窗工具列中新增自訂按鈕。 架構概觀 iDempiere 中的自訂工具列按鈕採用 OSGi 宣告式服務(DS)機制。具體做法是將您插件中的 Java 類別註冊為 IAction 服務。當 ADWindowToolbar 載入時,它會讀取 AD_ToolBarButton 資料表中 IsCustomization=Y 的記錄,然後透過 OSGi 查找對應的 IAction 實作,並動態建立按鈕。 graph...

2026-02-10 · 22 分鐘