Ninniku IT Hub

開源技術,實戰分享

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

LDAP Manager:當 HR 打來的第 17 通求救電話
iDempiere

LDAP Manager:當 HR 打來的第 17 通求救電話

上回書說到,本工程師耗盡三天青春,親手打造了一個 LDAP 盒子。(詳情請見:LDAP in a Box:一個工程師的創傷後應激與 Docker 化決心)盒子做好了,放在架子上,靜靜等待分公司開張的那一天。只是,生活沒有暫停鍵。LDAP 安靜了,電話沒有。 那通電話 那天下午兩點半,HR 打來了。聲音一如往常地溫柔,問題一如往常地直白:「我要新增一個員工帳號,請問要怎麼操作?」 這是第 17 通了。 工程師在心裡默默計了一下。第一通,他耐心解釋了 ldapadd 指令。第五通,他寫了一份 SOP。第十一通,他把 SOP 印出來貼在 HR 辦公室的牆上。第十七通,HR 的聲音依然溫柔,SOP 大概已經成了佈告欄的裝飾品。 問題不在 HR。HR 沒有錯。HR 每天要面試人、簽合約、安撫新人的焦慮,她憑什麼還要會 LDAP 指令?命令列是給誰設計的?是給在深夜對著螢幕說「再試一次」的人設計的,不是給負責發聘書的人設計的。 非通靈者不應該被強迫通靈。這是工程師的新信條。 所以,這一次,他沒有再解釋指令,而是打開了 iDempiere,準備做一件早該做的事。 Dashboard 登場 iDempiere 打開,主選單裡靜靜躺著一個新條目:LDAP Manager。沒有黑色視窗,沒有游標閃爍,沒有等你打錯指令才冒出來的紅字報錯。點進去,是一個 Dashboard。...

2026-03-15 · 閱讀 6 分鐘
iDempiere

iDempiere 繁體中文語系包:純度 99.99%,比黃金還純,絕不含簡體字段,全面採用台灣在地商務術語。

「本語系包純度 99.99%。剩下 0.01% 是工程師的眼淚,無法去除。」 iDempiere 是開源 ERP 武林中的一代宗師——進銷存、財務、製造、CRM,十八般武藝樣樣精通。但長久以來,它的「繁體中文」翻譯,其實是簡體中文套了一層繁體的皮。台灣使用者每天開 ERP,彷彿穿越到平行時空:明明在台北辦公,系統卻跟你說「激活」、「默認值」、「打印」。 現在,蒜頭廟正式推出 iDempiere 繁體中文語系包——13,591 筆詞條,經 LLM 精煉初篩再加上台灣 ERP 實戰人工校對,一筆一筆把簡體腔清乾淨。 簡體腔恐怖畫廊 舊譯(含雜質版)新譯(純台灣版)鑑定 激活啟用你在激活什麼,寶可夢嗎? 默認值預設值系統默認你同意?台灣沒有默認,只有預設 打印列印我們列印,不打印。打了印表機會壞 帳套會計科目架構帳套是什麼?套房嗎? 信息資訊信息是間諜用語,我們用資訊 組織組織這個沒問題,請繼續...

2026-03-14 · 6 分鐘
Linux

LDAP 搬家後記:一個工程師的創傷後應激與 Docker 化決心

上一篇,我寫了一場搬遷。476 條靈魂,從一台老伺服器,搬進另一台老伺服器。Schema 地獄三連王、DN 大小寫陷阱、還有那個永遠記不住的 ldapmodify 語法。如果你還沒讀過,請先備好胃藥再點這裡。 這篇,是後記。 搬完的那一刻 搬遷成功的那個瞬間,我什麼都沒感覺到。 沒有煙火,沒有啤酒,沒有同事衝過來拍我的肩膀說「幹得好」。只有我一個人,凌晨三點,盯著終端機上的 ldapsearch 回傳了 476 筆結果,然後緩緩地把筆電闔上。 那種感覺不是成就感,是倖存者的空虛。像是打完 Schema 地獄三連 Boss 之後,發現背包裡的補血藥全用光了,而且存檔點在三小時前。 我躺在床上,盯著天花板想了一件事:如果明年又要搬呢?如果客戶也要搬呢?如果有人問我「你可以教我嗎」,我要從哪裡開始教?從 slapd.conf 和 cn=config 的世紀之爭開始嗎? 「這種工作,做一次是英雄,做第二次是傻子。」...

2026-03-14 · 9 分鐘
Linux

LDAP 搬家記:476 條靈魂的大遷徙

序章:老伺服器的最後通牒 事情是這樣的:公司那台跑了不知道幾年的 LDAP 伺服器,終於發出了退休宣言。不是那種優雅的「我累了,讓年輕人上吧」,而是硬碟偶爾發出不祥的喀喀聲,彷彿在說:「再不搬,你們就等著一起陪葬。」 於是,一場涉及 476 條靈魂的大遷徙就此展開——398 個使用者帳號、27 個群組、46 個郵件別名、還有 4 個 OU。聽起來不多?等你真的開始搬,你就會發現 LDAP 這東西,專門在你覺得「應該很簡單吧」的時候給你致命一擊。 而且搬完家之後,你還得面對一個靈魂拷問:「萬一新家也掛了呢?」於是我們不只搬了家,還養了一個分身——Master-Slave 複寫。一個負責幹活,一個負責備胎。完美。 項目值 來源伺服器(舊)192.168.1.100 Master(新)192.168.1.200 Slave(備援)192.168.1.201 Base DNdc=example,dc=com Admin DNcn=admin,dc=example,dc=com...

2026-03-14 · 9 分鐘
iDempiere

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

南征序曲:蠻荒之地多蠻王 自古蠻荒之地多猛獸,iDempiere OSGI 之地多 JavaScript 蠻王。 上回書說到,丞相以八陣圖之法,教會天下人如何在 iDempiere 中佈署 CustomForm,從 OSGI ClassLoader 的糧道到 ZK MVVM 的陣旗,一路過關斬將,好不威風。正當丞相以為天下太平,準備回成都喝茶之時,探馬來報:「丞相!南蠻又反了!」 南蠻王是誰?JavaScript。 你看那 JavaScript,在瀏覽器裡橫行霸道慣了,到了 ZK Framework 的地盤,照樣不服管教。你想在 OSGI plugin 的...

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 分鐘