安裝bookstack書架

我的軟體工程概念很差,最近遇到一個案子,我想要找人一起,但是那個同事主管說要寫提案,了解後才會分配資源。

於是我想到了「SRS(Software Request Spec)軟體需求規格」當作提案,但是又不想要用傳統的word檔案書寫(很難維護),於是上網找了一下軟體需求與功能規格書的範例,終於找到滿意的書寫格式-使用gitbook

https://mason1762.gitbook.io/samxinbakery/gong-neng-ge

可惜gitbook自架很麻煩,於是我又找到相似而且可以自架、開源的系統-bookstack
bookstack宣稱是wiki軟體,也可以當知識管理,以書架、書本為基本架構的系統
https://demo.bookstackapp.com/books

安裝方式很簡單,我這次寫在網誌裡,也沒放在svn系統(https://docs.kafeiou.pw/!/#iammis),而是直接現學現賣,把安裝方式寫在自架的bookstack上。

https://book.kafeiou.pw/

另外有個很棒bookstack網站建議大家參考一下 BUBU 知識庫 & 秉迅資訊.Studio

java Servlet 取得遠端ip

原來不是這麼簡單

private static final String[] VALID_IP_HEADER_CANDIDATES = { 
  "X-Forwarded-For",
  "Proxy-Client-IP",
  "WL-Proxy-Client-IP",
  "HTTP_X_FORWARDED_FOR",
  "HTTP_X_FORWARDED",
  "HTTP_X_CLUSTER_CLIENT_IP",
  "HTTP_CLIENT_IP",
  "HTTP_FORWARDED_FOR",
  "HTTP_FORWARDED",
  "HTTP_VIA",
  "REMOTE_ADDR" 
};

public static String getClientIpAddress(HttpServletRequest request) {
  for (String header : VALID_IP_HEADER_CANDIDATES) {
    String ipAddress = request.getHeader(header);
    if (ipAddress != null && ipAddress.length() != 0 && !"unknown".equalsIgnoreCase(ipAddress)) {
      return ipAddress;
    }
  }
  return request.getRemoteAddr();
}

moodle 有email通知功能,居然要額外安裝測試外掛

只好安裝,才能測試是否設定成功

https://moodle.org/plugins/local_mailtest?nonjscomment=1&comment_itemid=1527&comment_context=50&comment_component=local_plugins&comment_area=plugin_general&comment_page=1

當然通知是可以關閉的

Administration -> General -> Messaging -> Notification settings

nextcloud誤刪檔案,還原失敗

慘,我的錯。

解決方式:
1. 到nextcloud該使用者目錄,找出<user>/files_trashbin/files 複製到 <user>/files
2. 執行 php occ files:scan –all

若出現 Exception during scan: “files/xxx”) is locked 則進入資料庫,刪除資料表資料 DELETE FROM oc_file_locks WHERE 1;

刪除之後,再次執行 php occ files:scan –all 還原檔案後,原本分享的狀態可能會不見,要自己重新設定了。

nextcloud 聯盟功能Federation

先講結論,nextcloud聯盟功能分享的目錄,並不會把檔案傳到對方服務器。(這樣就無法達到檔案兩邊都有的需求)

如何正確啟用聯盟功能

1. 啟用「Federation」app
2. 在管理介面->分享頁面,做好設定以及加入遠端服務器


3. 設定檔加上「allow_local_remote_servers = true」

修改 config/config.php

或是下指令

occ config:system:set allow_local_remote_servers --value true --type bool

4. 同步位址簿(需加入crontab定期執行)

occ dav:sync-system-addressbook 
occ federation:sync-addressbooks

5. 分享目錄給遠端的聯盟使用者

6. 遠端使用者將會接收到分享目錄的請求

1 2 3 4 ... 73