標籤: microsoft
SmartGit令人驚豔的LFS鎖定功能
我用過幾種GIT客戶端程式, 從tortoiseGit, GitEye, gitkraken,SourceTree,GitHub Desktop, 都長期用過, 但老實說我只用基本功能,因此看不出來差異在哪, 也不在意哪種用戶端程式好或不好.
直到最近,公司有個需求,要版控”機構部門的圖檔”,這原本是PLM宏大系統的功能(整合ERP,文件管制), 但…廠商報價後,就GG了.
於是我想自己找解決方案, 能滿足版控, 又要能滿足檔案鎖定功能, 也參考過網路力推,能管控圖檔的 https://www.perforce.com,
perforce 能版控,也能鎖檔案, 甚至細心列出git,svn,與自身產品的差異(當然是老王賣瓜了)
https://www.perforce.com/blog/vcs/git-vs-svn-what-difference
如果有預算, 我也建議圖檔管控應當要用perforce.
但我個人還是想要用git這個比較熟悉,簡單,無複雜系統的工具.
那問題來了,雖說git的LFS可以進行大檔案版本控管與鎖定,但客戶端工具程式還沒找到好用上手的,
直到SmartGit(20.1版以上)現世,這工具能針對檔案進行直覺的”鎖定”, 就好像用檔案總管一樣,能讓麻瓜容易上手.
雖說tortoiseGit也可以在客戶端就鎖定檔案,但整合度實在差太多了, 很不推薦.

不囉唆,寫心得
- 確認Git伺服器是否援Git LFS 2.0
我使用的gitblit 1.9.3 雖然支援LFS,但不是LFS 2.0就無法鎖定檔案,
慘阿,只好先用吉茶測試
- 安裝git程式,與SmartGit
https://git-scm.com
https://www.syntevo.com/smartgit/
- 建立/克隆專案Repository,並且確認那些要進行LFS管控
#執行cmd, 到專案Repository目錄執行
git lfs install
git lfs locks --local
git lfs locks --verify
## 設定那些檔案需要進行LFS管控
git lfs track *.exe --lockable
git lfs track *.zip --lockable
...


- 修改專案Repository設定
#修改.git\config 以下設定若沒有就自行新增
[lfs "https://server/repo.git/info/lfs"]
...
locksVerify = true
#"https://server/repo.git/info/lfs" 為 remote URL,加上/info/lfs

- 啟用LFS檔案鎖定功能,與背景自動更新LFS最新狀態
SmartGit->Edit->Preference->Low-level Properties
設定
status.lfs.locks=true
status.lfs.locks=true
background.fetch.delay=30
background.periodicalRefresh.delay=30
backgroundTasks.idleDelay=30

SmartGit->Edit->Preference->Backgroup Command->detect remote changes
設定
當專案Repository沒使用的時候, 或是已設定我的最愛的專案Repository 需要定期檢查LFS狀態
#若沒有設定,則不會自動更新狀態, 會無法得知其他人是否鎖定檔案

**SmartGit 一套單機版最便宜約100美金左右
結論,這樣的設定很複雜,目前還不好用,若能安裝時就一件設定,那就很好了
超簡單安裝nextcloud共筆功能collabora online Part II (v 2.4.17 )
我以前文章「超簡單安裝collabora online」敘述如何讓nextcloud搭配online document server達到線上編輯功能 ; 後來發現Onlyoffice 更好用, 版面格式比較不會跑掉,就變心改用onlyoffice。
隨著公司越來越多人使用onlyoffice ,沒想到onlyoffice免費版有10人開啟檔案的上限,預算考量,只能另想辦法。
我回過頭來看collabora online , 雖是免費,但官方編譯一樣有20人數限制;照這樣子應該真的要去拍桌,跟老闆說要加錢購買onlyoffice。
可是偶然間發現有個群組, 協助編譯開源版collabora online,並且解除20人限制, 甚至編譯成 docker 版本, 真是佛心來的。
以下請參考github與docker網站:
https://github.com/tiredofit/docker-collabora-online
https://hub.docker.com/r/tiredofit/collabora-online/tags
官方文件很少。但不囉嗦, 我測試後直接寫如何安裝。
- compose 文件
wget https://github.com/tiredofit/docker-collabora-online/raw/master/examples/docker-compose.yml
mv docker-compose.yml.traefik docker-compose.yml
vi docker-compose.yml
#改成醬
#紅色字需要修改
version: '3.7'
services:
collabora-online-app:
image: tiredofit/collabora-online:2.4.17
container_name: collabora-online-app
hostname: collabora-online.test.com
expose:
- 9980
ports:
- "9980:9980"
cap_add:
- MKNOD
- NET_ADMIN
privileged: true
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:collabora-online.test.com
- traefik.port=9980
- traefik.protocol=http
- traefik.docker.network=proxy
- traefik.backend=collabora-online-app
volumes:
- ./logs:/logs
environment:
- CONTAINER_NAME=collabora-online-app
- ADMIN_USER=admin
- ADMIN_PASS=collabora-online
# 允許哪些網站存取
- ALLOWED_HOSTS=cloud.test.com,xxx.test.com
- ENABLE_TLS=FALSE
- ENABLE_TLS_REVERSE_PROXY=TRUE
restart: always
#2023/6/14
#2.4.17這版本pdf下載會出問題,因此更換2.4.34版,但是無法啟用成功,出現:
#ERROR: Cannot create container for service collabora-online-app: Conflict
#若要換新版本,需docker-compose down; docker rm collabora-online;
#修改yml檔案,改成新的版本號碼2.4.34後,再重新docker-compose up -d才能執行成功
- 反向代理(apache 2)
以下主機名稱需與compose文件相同
<VirtualHost *:443>
ServerName collabora-online.test.com:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLCertificateFile /etc/letsencrypt/live/collabora-online.test.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/collabora-online.test.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/collabora-online.test.com/fullchain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLEngine on
SSLHonorCipherOrder on
AllowEncodedSlashes NoDecode
ProxyPreserveHost On
# static html, js, images, etc. served from coolwsd
# browser is the client part of Collabora Online
ProxyPass /browser http://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser http://127.0.0.1:9980/browser
# WOPI discovery URL
ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/cool/(.*)/ws$" ws://127.0.0.1:9980/cool/$1/ws nocanon
# Admin Console websocket
ProxyPass /cool/adminws ws://127.0.0.1:9980/cool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /cool http://127.0.0.1:9980/cool
ProxyPassReverse /cool http://127.0.0.1:9980/cool
# Compatibility with integrations that use the /lool/convert-to endpoint
ProxyPass /lool http://127.0.0.1:9980/cool
ProxyPassReverse /lool http://127.0.0.1:9980/cool
</VirtualHost>
- 反向代理(nginx)
server { listen 443 ssl; server_name collaboraonline.example.com; ssl_certificate /path/to/certificate; ssl_certificate_key /path/to/key; # static files location ^~ /browser { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $http_host; } # Capabilities location ^~ /hosting/capabilities { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/cool/(.*)/ws$ { proxy_pass http://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/(c|l)ool { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /cool/adminws { proxy_pass http://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } }
- nextcloud 設定
要安裝Collabora Online

設定URL,以後開檔案將導入到 Collabora Online-server 達到線上作業功能

完成了

- 檢查運行狀況
需輸入compose上面的管理者帳號與密碼
https://collabora-online.test.com/browser/dist/admin/admin.html
- 上傳字型,需要登入到容器,加上額外字型的設定

docker exec -it <容器名稱> bash
vi etc/coolwsd/coolwsd.xml
<remote_font_config>
<url desc="URL of optional JSON file that lists fonts to be included in Online" type="string" default="">https://cloud.test.com/apps/richdocuments/settings/fonts.json</url>
</remote_font_config>

- 若nextcloud安裝pdf viewer 請停用,否則會衝突

- 唯讀請設定浮水印
這很重要,若公司被稽核,稽核員通常要求只能線上看ISO文件、程序書,且考慮版本無法管控,預設不可以下載

另外要設定安全機制WOPI,一樣是修改 coolwsd,只允許相關ip才能存取
docker exec -it <容器名稱> bash
vi etc/coolwsd/coolwsd.xml
#########################################################
<alias_groups desc="xxxxxx" mode="groups">
<group><host desc="hostname to allow or deny." allow="true">192.168.1.1</host></group>
<group><host desc="hostname to allow or deny." allow="true">cloud.test.com</host></group>
</alias_groups>
chrome 離線下載
有時候離線下載滿重要的, 尤其地區為大陸
- 國際版下載
https://www.google.com/chrome/?system=true&standalone=1&platform=win64
- 大陸版下載
https://google.cn/chrome/?system=true&standalone=1&platform=win64
關於回收,撤銷,與延遲發信
聽縮Micro$oft exchange server有個特異功能, 能回收或撤銷信件, 但是其它mail server 並沒有阿, 而且麻瓜都以為用了outlook就好像吃了大補丸一樣, 自動就有回收功能, 真的很難解釋.
在這邊推薦大家收發信用免費的 thunderbird , 然後加裝”延遲發信”外掛 , 就可以讓信件等等再發出去, 解決麻瓜常常沒搞清楚就把信寄出去了.
https://addons.thunderbird.net/zh-tw/thunderbird/addon/send-later-3/?src=search


Proxmox VE安裝免費網域主控站Turnkey Domain Controller
微軟的網域主控站超級好用, 很適合用來管理, 甚至交給非IT人員,如管理部同仁協助作業
網域主控好用,若只用來群組權限控管, 帳號密碼控管, 建議安裝免費的網域管理伺服器Turnkey Domain Controller就好了.
另外, 像我使用自製的容器郵件伺服器(docker-postfix-ad) ,須綁定微軟網域伺服器認證 ,也很適合安裝Turnkey Domain Controller.
TurnkeyLinux 有一大堆免費的軟體, 且支援Proxmox VE , 有vm版本, lxc版本,及vmware版, 琳瑯滿目.
安裝Turnkey Domain Controller 相當簡單,只要下載iso檔案,安裝成一個vm就好了, 當然也有lxc版本,但我並沒有測試過.
詳細請參閱 https://www.youtube.com/watch?v=PMUUuXmtFc8
安裝完畢, 用我筆電的RSAT工具, 就能管理網域主控站了
以下為安裝之後, 要注意的部分
- 設定ip
安裝完畢, 因為沒有設定ip, 所以無法使用瀏覽器登入, 請輸入指令 confconsole, 並且設定ip



- 設定完IP, 使用瀏覽器登入
http://ip
登入後點選“Samba conf via Webmin(login first)


- 進入Webmin, 需先開放網路介面接聽功能, 否則電腦無法加入網域
Servers -> Samba Windows File Sharing -> Unix Networking

- 將Network interfaces 改為 Automatic
*Automatic

- 修改後要重啟samba server
Restart Samba Servers

- 修改要加入網域之電腦dns ,
第一dns請改成 Turnkey Domain Controller 的IP
第二dns必須設定, 輸入1.1.1.1 這類可查詢的dns server , 因Turnkey Domain Controller預設沒有dns server, 所以無法正常解析.

電腦dns設定正確, 就能成功找到網域主控站, 並且加入囉

目前安裝版本為 16.2 , 樹系2008R2, 經測試win11 22h2無法加網域, 將在17.0 樹系2012R2獲得解決.
win10/11 專業版安裝 RSAT 微軟遠端伺服器管理工具
- 應用程式->選用功能->檢視功能

- 輸入rsat , 並且安裝 RSAT: Active Directory Domain Service和輕量型目錄服務工具

- 開始安裝, 安裝完畢重開機

- 以管理者身分(Run as Administrator)執行終端機 , 或是 powershell, 輸入
#runas /netonly /user:<網域>\administrator "mmc /server=<網域主機ip>"
#範例
runas /netonly /user:kafeiou\administrator "mmc /server=10.192.130.226"
- 接下來就會跑出一個mmc程式, 裡面是空的, 請自己加上Active Diredctory使用者和電腦 , 就可以使用了



win7,win2008 , outlook 2010支援TLS 1.1 TLS 1.2連線
最近升級mail server , 也停用了 TLS 1.0 , TLS 1.1 , 同時也引發win7,windows 2008, office 2010不支援問題,因此需要手動升級.
以上兩步驟, 就可以讓outlook 2010支援新版連線了.
詳請參考以下文章
outlook 關於ldap通訊錄的處理經驗
公司是小公司, 所以我都自架郵件伺服器, 使用postfix mail server + 微軟的網域主控站做認證.
同事的通訊錄就使用ldap連到網域主控,快速設定通訊錄 一直以來相安無事, 若是遇到亂碼,就改用戶端windows系統支援UTF-8
但是最大的問題是, 若是筆電拿到外面去, ldap就無法連線, 就算用不到ldap通訊錄, 收發信的時候, 也常常出現ldap無法連線的錯誤, 很是困擾.

後來發現能修改預設通訊錄檢查方式, 就能避掉外出人員, 收發信的問題.

預設值是”從全域通訊錄清單開始“, 我們改成”從聯絡人資料夾開始“, 開啟通訊錄,也改成”Outlook通訊錄“

outlook 2010以後檔案上限50GB(ost, pst)
IT的噩夢之一, 同事堅持不刪除郵件, 也不願意封存, 過了一段時間信件量超過50GB, 甚至達到200GB以上容量, 這時候要將outlook封存已經不可能了, 因為outlook會爆掉.

後來我發現有個做法, 先刪除爆掉的帳號, 再重建, 並且設定imap只離線保留1年的信件,

待outlook同步完畢, 我們另開一個新的pst檔案, 將已同步的信件複製過去, 等同仁確認複製完畢,
直接刪除原本信件, 然後依序慢慢拉大離線保留的月份, 這期間pst若快爆掉了, 需要關掉outlook ,將快爆的pst改名, 而原本的pst檔可用乾淨的pst取代之.
如此循環, 即可將郵件全部移至pst, 然後…就可以理直氣壯, 跟同事說要強制封存, 並且每年要來找我們, 一起確認封存的檔案也沒有爆掉(50GB)