OpenProject與GIT整合

OpenProject能與GitHub、GitLab深度整合,當然也包含一般git server或local git。整合後,專案成員可看到所有檔案內容,我覺得有必要管控權限,畢竟有些人只要看到修改記錄即可,如PM。

既然我的目標只是想讓OpenProject能看到git的修改記錄,於是硬著頭皮改openproject程式,好險不難,硬生生讓我改成只能看到修改記錄。

詳請參考咖啡偶之書。

https://book.kafeiou.pw/books/openproject/page/git

情人節快樂-老牌遊戲柏德之門I、II

前陣子柏德之門III問世,引發眾玩家為了想要跟隊員愛愛,將各種情侶組合(不限種族,性別,年紀),與通關方式翻了個遍。

一想到這幾天大過年的,我每次都會玩一下柏德之門三部曲,這遊戲經由第三方套件–BGT-WeiDU,套件整合了「劍灣傳奇」、「柏德之門I」與「柏德之門II」,最值得一提的是裡面包含了N種額外的劇情,當然也有戀愛的情節(比較隱晦一點),想嘗試戀愛滋味的宅男們,建議一定要玩,而且老電腦都跑得起來哦! 想辦法組裝玩玩吧–提示:GOG GalaxyBG1(the original saga)BG2

玩柏德之門三部曲時候,解析度只有800×600真是惱人,後來到安裝widescreen之後就可以自訂解析度,雖然字還是很小,但可以滿版螢幕,改善很多了。

OpenProject 翻譯

我在進行OpenProject翻譯時,把特殊的部分列出來(後續在咖啡偶之書更新):

Placeholder Users  ->  非專案成員 ── 原本翻譯成佔位符用戶
Repository -> 版本庫  ── 大部分都翻譯成儲存庫,但在Open project很確定是版本控管git or svn

要抓特定檔案裏面特定字串,可執行以下指令

 find . -name '特定檔案' | xargs egrep "特定字串"

nextcloud雲端檔案,新增額外屬性

公司有追蹤「檔案過期」需求,最方便就是賦予檔案新的屬性—過期日,作為nextcloud粉絲,當然由nextcloud著手,萬幸有個app customproperties能達到要求,最後再寫個程式追查一下資料庫資料表oc_properties 過期日資料,就可以完成系統自動通知功能,定期通知檔案主人快到期,讓主人進行延展或是不再追蹤。

但是該app已經有一陣子沒更新了,不支援nextcloud 25以上版本,有人告知可以小改繼續在25、26版使用,真是幸運,我也依樣畫葫蘆,弄了一個支援25、26的版本來,有興趣的可以按此下載,下載後先解開zip可得tar.gz檔案,再解開放在app目錄,並且確認目錄權限正確後,再次刷新nextcloud 未啟用app列表,即可啟用。

onlyoffice再次回歸啟用

我在去年讓nextcloud改用collabora online,原因為onlyoffice官方編譯的社群版本限制只能20人使用,只好用collabora online 無限人版;最近同事又開始抱怨與M$ office相容性不好,這樣會影響我想要讓大家習慣上雲端進行檔案編輯的目標。於是我挖呀挖呀挖,找了找,想要找一款好用的線上編輯office軟體。

首選台灣晟鑫科技https://www.ossii.com.tw/,一般社群版就很好用了,與微軟相容性極高。

但公司需要更多的功能,只好捨棄oxoo office社群版,我又花了些時間回頭看onlyoffice,冀望有人重新編譯無限人版,沒多久還真的找到,藏在一個很低調的github頁面上,直接是容器版本,實在太棒了。

這裡是自己手動編譯的教學文章

我建議的安裝方式與之前一樣,只要改後面的images來源就可以了,請參考這裡

ghcr.io/thomisus/onlyoffice-documentserver-unlimited:7.4.1

點選這裡「隱藏的網址」,要低調阿

不過我在重新回歸onlyoffice時候,發現無法透過在nextcloud的 「onlyoffice 設定畫面」進行設定,甚至無法清除設定,只能使用指令,我只好將相關指令一併紀錄下來。

# 列出onlyoffice設定
docker exec -u www-data nextcloud php occ config:list onlyoffice
# 清除nextcloud設定
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice DocumentServerUrl
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice StorageUrl
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice advanced
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationChat
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationCompactHeader
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationFeedback
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice DocumentServerInternalUrl
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationForcesave
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationHelp
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationReviewDisplay
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationTheme
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customizationToolbarNoTabs
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice customization_macros
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice defFormats
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice demo
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice editFormats
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice enabled
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice groups
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice installed_version
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice jwt_header
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice jwt_secret
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice sameTab
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice settings_error
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice types
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice verify_peer_off
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice versionHistory
docker exec -u www-data nextcloud php occ config:app:delete onlyoffice preview
#設定onlyoffice網址,忽略證書,密碼
docker exec -u www-data nextcloud php occ config:app:set onlyoffice DocumentServerUrl --value=https://xxx
docker exec -u www-data nextcloud php occ config:app:set onlyoffice verify_peer_off --value=true
docker exec -u www-data nextcloud php occ config:app:set onlyoffice jwt_secret --value=密碼

2023/9/25 後記,原來是「Collaborative tags」害我不能正常使用onlyoffice設定功能。

jgit clone專案失敗,原來要把帳號密碼存起來才行

自己寫 java 呼叫 jgit 函式庫clone專案,卻失敗,我看到錯誤訊息是沒有帳號密碼;可是程式明明有輸入帳號密碼,後來爬文才發現我有案子有使用LFS,需要設定快取把帳號密碼儲存起來,否則會一直要求輸入帳號密碼造成程式錯誤。

git lfs 需要2.0或是以上才行

git config --global lfs.cachecredentials

原來檔案總管理面的檔案,可以自己排列

一直以來我都以為檔案總管的檔案,只能依照上面的欄位進行排序,但是今天被中國同事教育了一番,我錯了!

這位同事工作需要拍照,再將照片存到電腦,檔案總管選擇「圖示(大中小)」進行手動排序,就可以很容易觀看到差異;原本他使用的電腦可以這樣隨意移動,但是換個電腦就不行。

最後問到我這裡來,我就說不可能,只能針對上面的欄位進行自動排序(信心滿滿);但是該同事啪啪打臉我,拿能自己排序的電腦給我看,最後我汗顏了,真是不能太鐵齒。

後來才發現,這功能是windows xp專有的,也就是xp能夠停用「自動排序」,win7以後基本上不能停用自動排序,於是有神人就弄出可以停用自動排序的設定檔案,請按此下載,解開點兩下就可以了。

安裝wordpress(容器)掛載在子網址(目錄)

安裝wordpress這麼多次,第一次遇到掛載子目錄的需求,也就是安裝完畢,透過反向代理程式,網址看起來像這樣:

https://xxx.xxx.xxx/subfolder

一樣感謝google, 我爬了很多文,說法很多,自己覺得修改檔案這方式很靠譜(非透過web設定)可以避免掛載正式網址時候,若因錯誤很難進入網址改或是到資料庫研究要改哪個table

1.、修改 wp-config.php

 define('WP_SITEURL', 'https://你的網站名稱/你的子目錄');
 define('WP_HOME', 'https://你的網站名稱/你的子目錄');
 #以下是可以不使用ftp就安裝外掛
 define('FS_METHOD', 'direct');

2、修改.htaccess (與wp-config.php都是在wordpress根目錄)

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /你的子目錄/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /你的子目錄/index.php [L]
</IfModule>

3、nginx反向代理

 location /你的子目錄 {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_headers_hash_bucket_size 128;
    proxy_pass http://容器ip(通常127.0.0.1):port/你的子目錄;
  }

4、apache 反向代理

等待遇到實例

wordpreess直接播放mp4改由peertube串流系統

wordpress有個外掛「Super Video Player」能播放mp4影音檔案,但是很耗流量,若放在雲端費用將會很高;因此有必要考慮改用串流方式播放,可以節省一些流量,有個peertube串流系統很棒,也可以安裝容器,我們公司使用到現在,很穩定又好用,安裝方式請按這裡

朋友wordpress網站使用 super video player 播放mp4,可以隱藏下載選項,讓麻瓜使用者不是很容易取得(麻瓜以上就很容易了);若要改成 peertube,則會看到下載選項,這樣朋友就不願意了,於是我爬文爬丫爬,最後發現只要加上一行,也能做到與super video player 一樣,讓麻瓜不容易取得/下載檔案。

[root@firewall ~]# docker exec -it peertube_peertube_1 bash
root@770eb53d9cf6:/app# find .|grep embed.html
./client/dist/standalone/videos/test-embed.html
./client/dist/standalone/videos/embed.html
./client/src/standalone/videos/embed.html
./client/src/standalone/videos/test-embed.html
root@770eb53d9cf6:/app# vi ./client/dist/standalone/videos/embed.html

## 編輯 embed.html ,在head之前加上以下語法,然後退出重新執行peertube容器
# 出處 https://framacolibri.org/t/how-to-disable-context-menu-for-peertube/10998
<style> .vjs-contextmenu-ui-menu { display: none !important; } </style>

## 編輯 embed.html ,body 改成以下這樣
<body id="custom-css" class="standalone-video-embed" oncontextmenu="return false" onselectstart="return false" ondragstart="return false">

另外peertube 連結要嵌在網頁上,只要滑鼠移到影片上,右鍵選「複製嵌入程式碼」,再稍微修改一下即可。


我使用 「aspect-ratio : 16/9」方式自動會依照網頁大小而微調 ,很方便

<iframe src="https://peertube.test.com.tw/videos/embed/1586a669-b649-4e3f-974c-ec4d42a0bf9e" style="aspect-ratio: 16/9;height: 100%; width: 100%;" frameborder="0" width="560" height="315" allowfullscreen="" sandbox="allow-same-origin allow-scripts"></iframe>

2023/08/20

後來發現peertube有個bug,就算網路正常撥放,chrome還是會出現轉圈圈的情況,但firefox不會,我後來發現乾脆先暫時停掉轉圈圈功能,一樣在head前加上一行。(很可惜peertube主要開發者很剛愎自用,以前就交手過了,所以我不會回報這問題,前幾週也有人反應,但都沒受到重視)

.vjs-loading-spinner{display:none!important;}
1 2 3 ... 5