顯示具有 Synology 標籤的文章。 顯示所有文章
顯示具有 Synology 標籤的文章。 顯示所有文章

2025年3月7日 星期五

Docker 開發筆記 - 在 Synology NAS 運行 immich 照片服務與 Symbolic link 管理方式 @ Synology DS723+


周邊有強者好友真不錯,時常分享把一堆服務都搞自建方案,目的不是省錢,而是追求資料握在自己手中的架構。挑選 immich 大概算是公認做得不錯的相簿管理服務,其介面跟 Google Photos 很像,且支援人臉辨識也有依照地圖(OpenStreetMap)顯示照片拍攝位置


而 immich 官方文件有非常方便架設 Docker 的筆記:
在 Synology NAS 上,若有支援 Docker 的,可以在 Container Manager 中新增專案,這時要上傳 docker-composer.yml 檔案,則是在剛剛的教學網站有顯示:
在此先決定了 NAS 上的檔案位置,把 Docker 運行所需的環境擺在 /docker/immich-app 目錄(這是 File Station 看到的路徑),他實際的路徑位置會是 /volume1/docker/immich-app 。


這時 docker-compose.yml 可透過 Container Manager 上傳好,而 example.env 則是透過 File Station 拖拉進去改名成 .env

這時直接在 Container Manager 運行時,應當會踩到問題,因為 library 或 postgres 目錄不存在,這時也繼續靠 File Station 建立,後續 Container Manager 運行就會正常了,正常到最後可以用 NAS_IP:2283 瀏覽起來,可以看到註冊畫面等。

這邊有幾個議題記錄一下:
  1. 使用 NAS 反向代理伺服器,提供 https 連線 immich 服務
  2. 在 immich 使用外部圖庫 (External Library) ,將原本的 Synology Photos 匯入
  3. 在 immich External Library 如何使用 Symbolic link 來管理
首先,NAS 反向代理伺服器的設定還滿簡單的,找一個 port 來服務 https 連線,例如 2284 ,直接把它導向到 2283 ,這樣就搞定收工,未來就有 https://NAS_IP:2284 可用了!


接著,使用外部圖庫部分,這邊跟 Docker 設定有關,必須把額外的資料像掛載進來,例如

    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /var/services/homes/UserID/Photos:/synology-photo:ro

透過把 Synology 在使用者家目錄的位置掛進來,這樣對 immich docker 環境中,就多了 /synology-photo 路徑可以查看資料,這時在 immich 網頁設定上,直接設定外部位置在 /synology-photo ,就可以讓 immich 掃描到照片資料來分析了

然而,對於資料管理上會想要慢慢實驗,例如少量的把目錄資料加入到 immich 外部圖庫,且不需要一直改 YAML volumes?通常對系統熟悉的,就會想試試 symbolic link 架構,還能避免 NAS 上有重複資料佔著空間,然而,symbolic link 在 Docker 環境上有使用限制,有一些討論串:
我這邊的解法,其實是設法先排除 Docker 限制,只要繞過限制後,Symbolic link 還是可以使用的。目前的設計就先在 ~/Photos/ 建立一個目錄,如 immich ,接著在裡面建立 Symbolic link 到上一層 ~/Photos 想要的資料就好,而掛載到 Docker 裡仍維持在 ~/Photos 位置,而 immich 網頁上就設定 /synology-photo/immich 即可。

總結一下 Symbolic link 使用資訊:
  • Docker volumes YAML 設定不變,概念上要把 Symbolic link 來源也包覆到
    • /var/services/homes/UserID/Photos:/synology-photo:ro
  • 建立 /var/services/homes/UserID/Photos/immich 目錄
  • 在 immich 網頁上,將外部圖庫設定在 /synology-photo/immich
  • 未來想動態將資料交給 immich 服務時,就只須在 /var/services/homes/UserID/Photos/immich 內建立向上一層的目錄,確保那些享用 symbolic link 的資料都有在 Docker volumes 內即可

UserID@NAS:~/Photos/immich$ ls -l
lrwxrwxrwx+ 1 UserID users 27 Mar  6 23:25 '2020-01-01' -> '../2020-01-01/'
lrwxrwxrwx  1 UserID users 24 Mar  6 23:28 '2021-02-02' -> '../2021-02-02/'
lrwxrwxrwx  1 UserID users 27 Mar  6 23:28 '2022-03-03' -> '../2022-03-03/'
  
收工

2024年1月11日 星期四

Synology NAS 使用 Private IP, 自訂網域 與 Wildcard SSL 來提供 HTTPS 服務並完成憑證定期更新與設定 @ DSM 7.2.1, DS723+

之前已經處理過 DS216play 的情況,撰寫過兩篇筆記:

這次在處理 DS723+ / DSM 7.2.1 時,有在追細一點,但整體上的流程 2022年的那篇只做了一半,他並沒有做到自動更新,而當時追的時候也沒追清楚。

簡略的流程:
  1. 參考 2022年的方式,先透過 acme.sh 產出憑證(例如用 Cloudflare 維護 DNS record 時,可以輕鬆呼叫 Cloudflare API 完成 txt record 更新),接著到 Synology 網頁管理 -> 控制台 -> 連線能力 -> 憑證 -> 新增 -> 新增憑證 -> 匯入憑證
  2. 這時匯入完畢後,其實在系統底層可以看到資訊,我原先在 2022年那篇誤認為 /usr/syno/etc/www/certificate/system_default/cert.conf 的描述位置(因為從 Nginx 設定檔有關),細追後,發現真正的位置在 /usr/syno/etc/certificate/_archive/ 某個目錄內
    • 用 cat /usr/syno/etc/certificate/_archive/INFO 可以看到你自己上傳的憑證,假設是在 /usr/syno/etc/certificate/MySelf 這目錄,內有 cert.pem, chain.pem, fullchain.pem, privkey.pem
  3. 這時若把 acme.sh 安置好,可以在 Synology NAS 內某個使用者的家目錄運行,那在他家目錄中就會有 ~/.acme.sh/*.YourDomain_ecc/ 這類位置,內有 ca.cer, '*.YourDomain.cer', '*.YourDomain.key', 'fullchain.cer' 和 '*.YourDomain.pkcs8',這時,就要把 /usr/syno/etc/certificate/MySelf 內的完成同步更新,例如使用 symbolic link 
  4. 後續,就回到 Synology 網頁介面 -> 控制台 -> 任務排程表 -> 新增一則任務並使用 root 權限 -> 設定每月執行一次 -> 在使用者定義指令碼那邊,可以直接呼叫 script (例如包裝成 renew-ssl.sh)在指定使用者家目錄完成憑證更新、接著在把 nginx reload
    • sudo -u YourNASUser bash /var/services/homes/YourNASUser/renew-ssl.sh
    • sudo nginx -t && sudo synopkg restart --service nginx && sudo synosystemctl reload nginx
目前看來,在 (2) 那邊找到的實際儲存位置時,透過 symbolic link 改到取 (3) 的資料,如此在控制台憑證列表可以立即觀看到 acme.sh renew 後的延長期限數字,這邊有提到 '*.YourDomain.pkcs8' 檔案格式,是跟 Synology NAS 使用的格式有關,他在呼叫 acme.sh renew 時,可以多添加 --to-pkcs8 參數來產生。


現況應當還有個隱憂,那就是 /usr/syno/etc/certificate/MySelf/*.pem 可完成自動更新,那 nginx 設定取得的憑證資訊是否也會更新?目前推猜好像不是同步的,且更新時機也還不明,只能等下個期週期後再來看看了。暫時推論是在設定憑證的系統預設時,才從 /usr/syno/etc/certificate/MySelf/*.pem 複製到 /usr/syno/etc/www/certificate/system_default/ 使用

2023年6月11日 星期日

建置 DSM 7.2 可運行的 tmux 工具 @ Synology DS723+, AMD Ryzen R1600, DSM 7.2 ToolChain

前幾天升級 Synology NAS 後,之前用 DSM 7.1 toolchain 編譯出的 tmux ,在 DSM 7.2 運行出包,一跑就顯示 server exited unexpectedly,通常解法是清除 /tmp 下跟 tmux 相關的檔案目錄,只是依舊沒解決問題 Orz 就試試看在 Ubuntu 22.04 + DSM 7.2 ToolChain 重新編譯一下,下載 ToolChain 資訊:
由於 DS723+ 的處理器是 AMD Ryzen R1600 系列,就來下載 AMD x86_64 : r1000-gcc1220_glibc236_x86_64-GPL.txz。基於 DS723+ 有 Docker 可用,這次就全在 Docker 內運行,直接叫一個 Ubuntu 22.04 出來使用:

# apt update -y ; apt upgrade -y ; install sudo vim openssh-server -y ; service ssh restart;

後續遠端進去後,就可以輕鬆建置完畢,最後實測 7.2 toolchain 編譯出來的 tmux 的確就可以正常運行啦。其餘編譯細節就參考 [Linux] cross compile tmux for Synology DS723+ via DSM 7.1 ToolChain - AMD x86 Linux 4.4.180 (r1000) 即可,僅一開始的 toolchain 換掉即可:

2022年11月15日 星期二

pCloud - 使用 Cryptomator 加密資料與 PC app, NAS, Linux Server 管理筆記 @ macOS 13, Ubuntu 18.04, Synology DS216play

圖:Synology - Cloud Sync

大概幾年前起,一直以來都有在跑小程式撈資料,並使用 Dropbox 來共享資料並且備份。像 Dropbox 免費版有的 2GB,更早之前甚至加一位好友有 500MB 時期,甚至還有 edu 校園比賽等病毒行銷,可以輕鬆衝到 10GB, 20GB, 甚至30GB等,這個空間也滿夠用。

現況,則是來試試 pCloud 500GB 終身版,掏錢付費 XD 被推坑後,就開始想想這個空間該怎樣規劃。首先,先來試試 Cryptomator - cryptomator.org 開源的端加密工具!pCloud 本身也有這等檔案加密的付費服務。原理上是上傳前先加密,讓雲端空間服務商無法知道資料內容。而使用 Cryptomator 時,他是透過一個檔案庫概念(可以想像跟 git 底層儲存拆成數個檔案,屬於常見的資料儲存架構),透過 WebDav 或 FUSE 建立一個虛擬空間或目錄,把資料搬進去時,順便完成加密儲存。對終端用戶來說,大概會稍微感覺讀寫資料較慢,其餘感受還好。

整體上的體驗較慢時,通常是直接掛載 pCloud 網路硬碟才會感受到,若是純本地存取 Cryptomator 加密檔案庫時,應該都還能接受的。除非是在搞 build code 等大量零碎檔案、不停更動等,才會感到不堪使用。


圖:Cryptomator PC app

使用原理上,就是先建立個 Cryptomator 加密檔案庫,接著把此資料上傳到 pCloud 即可搞定。剩下的就是存取資料的問題規劃,屬於 pCloud 在各類系統的存取方式:
  • 在 macOS 上,直接安裝 pCloud 官方提供的 PC app 最方便
  • 在 Ubuntu 18.04 server 機器上,透過 github.com/pcloudcom/console-client ,可用指令完成掛載 pCloud 網路空間進來
  • 在 Synology NAS 上,透過 pCloud WebDav API 溝通方式,可靠 Cloud Sync 完成資料同步
如此可以達到 pCloud (雲端) 有一份資料、NAS (Synology) 內也有一份資料、Macbook Pro (masOS) 也有一份資料等,三處會透過 pCloud 雲服務機制同步中。此外,若跟 NAS 在同一個區網內,倒也可以考慮純靠 NAS 同步,再靠 Samba 把 NAS 的資料掛進來使用,如此 PC 不需要額外安裝 pCloud app 處理同步。

當然,若主力有 macOS + iCloud ,也可以替代掉 pCloud 角色,沒錯,只是 iCloud 2TB 而已,通常拿來備份無止盡的照片影片了。

存取 pCloud 用法:
  1. 使用 WebDav Protocol: https://webdav.pcloud.com ,使用時無法開啟兩段式登入(2FA)或簡訊驗證,否則會無法登入
    • 在 Synology NAS 上,可以用 Cloud Sync 搭配 WebDav Protocol 來同步資料下來
  2. 使用 github.com/pcloudcom/console-client 上,需要花點心力依照專案上簡介編譯出工具來使用,同理,預設不支援兩段式登入驗證(2FA),但有人有改 code 讓他支援: github.com/dberlin/console-client
  3. 安裝 pCloud PC app ,這時可以純靠 Sync 功能,把想要的目錄進行同步即可,不一定要整包 pCloud 500GB 都下載回來使用
    • 例如負責創 Cryptomator 加密資料庫且經常更新的那台電腦可以安裝,其他台電腦不一定要安裝 pCloud PC app
在 Ubuntu server 透過指令存取 Cryptomator 加密資料庫:
  1. 首先,透過 JavaRutime/JAR 環境運行 github.com/cryptomator/cli
    • $ java -jar cryptomator-cli-0.5.1.jar --vault myVault=/pCloud/CStore/myVault/ --password myVault=MyPassword --bind 127.0.0.1 --port 12345
  2. 接著再靠 mount 指令,掛載 davfs 使用
    • $ mkdir -p /media/myVault
    • $ echo | sudo mount -t davfs -o username=,user,gid=1000,uid=1000 http://localhost:12345/myVault /media/myVault
  3. 如此,就能透過 /media/myVault 存取加密資料
目前美中不足的就是 NAS 透過 WebDAV 存取 pCloud 這步無法做2FA,令人感到不安心,但在雲台機器上,可以把 pCloud 掛在進來當網路硬碟真的很佛,像是原本一台 20GB 空間的機器,瞬間就擴增到 500GB 等級,並且把資料整理後就能塞進 pCloud 備份,很舒服的。對應使用 Dropbox 缺點就是 Dropbox 空間上,若有 5GB ,那 server 上就得佔系統空間 5GB 給他同步資料,而 server 本身並不需要多存一份 5GB 來用。

使用 Cryptomator 的最大缺點,就是任何要存取資料的電腦環境都需要安裝 Cryptomator 對應軟體,也使得 pCloud 網頁版變成沒用了,必須把 Cryptomator 完整的加密資料庫都下載到本地端才可以瀏覽。這時就得花點心思規畫要如何透過 Cryptomator 切資料儲存機制了

其他資訊:

2018年7月1日 星期日

[NAS] Private IP Server 與 Let's Encrypt Wildcard SSL 憑證 / HTTPS 服務

家裡擺了一台 Synology NAS 躲在防火牆後面,一直都是用 private ip 在服務的,以前 Let's Encrypt 有免費的 SSL 憑證服務,但驗證方式需要讓對方連到 server ,一直無法在 private ip server 啟用,可惜了點!然而,Let's Encrypt 開放 Wildcard SSL 憑證服務,採用 DNS TXT Record 驗證,這時就可以上場了!

我的 NAS 是幾年前買的 Synology DS216play ,他的 CPU 挺麻煩的,讓我額外安裝軟體都很不便利,原先想採用 certbot 來做事,安裝了 python3、pip 和 virtualenv 後,最後還是卡關,卡在安裝軟體還需要 compiler 來編譯,擺爛三個月後,我改用了 https://github.com/Neilpang/acme.sh

acme.sh 的使用很方便:

$ wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh
$ chmod a+x acme.sh
$ ~/acme.sh --issue -d *.changyy.org --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please


如此後續再添加 TXT record 後,在執行

$ ~/acme.sh --renew -d *.changyy.org --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

就搞定了!剩下的步驟只是覆蓋憑證檔案跟重啟 web server :

$ grep certificate /etc/nginx/nginx.conf
    ssl_certificate           /usr/syno/etc/certificate/system/default/fullchain.pem;
    ssl_certificate_key       /usr/syno/etc/certificate/system/default/privkey.pem;
$ ls /usr/syno/etc/certificate/system/default/
cert.pem  chain.pem  fullchain.pem  privkey.pem


最後,我把 DNS 擺在 cloudflare 託管,還可以用 API 去處理 DNS TXT Record 更新,連續動作如下:

$ ls ~/.acme.sh/
$ wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/dnsapi/dns_cf.sh -O ~/.acme.sh/dns_cf.sh
$ chmod 755 ~/.acme.sh/dns_cf.sh
$ CF_Key=YOUR_API_KEY_AT_PROFILE CF_Email=YOUR_CLOUDFLARE_EMAIL_ACCOUNT ~/acme.sh --issue --dns dns_cf -d *.changyy.org
$ sudo cp ~/.acme.sh/\*.changyy.org/\*.changyy.org.cer /usr/syno/etc/certificate/system/default/cert.pem
$ sudo cp ~/.acme.sh/\*.changyy.org/\*.changyy.org.key /usr/syno/etc/certificate/system/default/privkey.pem
$ sudo cp ~/.acme.sh/\*.changyy.org/ca.cer /usr/syno/etc/certificate/system/default/chain.pem
$ sudo cp ~/.acme.sh/\*.changyy.org/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pem
$ sudo synoservicecfg --restart nginx


如此一來,就可以安排 crontab 用 root 每月跑一次了,另一個好處是可以在 NAS 執行完,再把憑證丟到一些 VPS 維運的機器上

# cat /root/lets-ssl-renew.sh
#!/bin/sh
CF_Key=YOUR_API_KEY_AT_PROFILE CF_Email=YOUR_CLOUDFLARE_EMAIL_ACCOUNT /root/acme.sh --issue --dns dns_cf -d *.changyy.org  && cp /root/.acme.sh/\*.changyy.org/\*.changyy.org.cer /usr/syno/etc/certificate/system/default/cert.pem && cp /root/.acme.sh/\*.changyy.org/\*.changyy.org.key /usr/syno/etc/certificate/system/default/privkey.pem && cp /root/.acme.sh/\*.changyy.org/ca.cer /usr/syno/etc/certificate/system/default/chain.pem && cp /root/.acme.sh/\*.changyy.org/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pem && synoservicecfg --restart nginx && echo "SSL-Renew-Done" > /root/ssl-renew.log || echo "SSL-Renew-Failed" > /root/ssl-renew.log
echo date >> /root/ssl-renew.log

2017年5月31日 星期三

[Linux] cross compile tmux for Synology DS216play via DSM 6.1 Tool Chains - STMicroelectronics Monaco Linux 3.10.102 @ Ubuntu 16.04 64bit

連假最後一天跑來把玩一下 cross compiler ,想說未來應該會越來越常用 NAS 做事,覺得裡頭沒有個 tmux/screen 很煩,然而,等了很久還是沒人為 DS216play 編譯 tmux ,一直很搞不懂,直到我翻了這張表出來:

https://www.synology.com/en-global/knowledgebase/DSM/tutorial/General/What_kind_of_CPU_does_my_NAS_have

System Model CPU Model Cores Threads FPU Package Arch RAM
DS216play STM STiH412 Dual Core 2 Yes Monaco DDR3 1 GB

好的,看起來有點冷門的 STM STiH412/Monaco 囧,不過找一些討論串才知道,由於要讓 DS216play 可以做一些多媒體影音的事,所以,就別抱怨了 XD

下載 Tool chains: https://sourceforge.net/projects/dsgpl/files/DSM%206.1%20Tool%20Chains/STMicroelectronics%20Monaco%20Linux%203.10.102/

$ wget https://sourceforge.net/projects/dsgpl/files/DSM%206.1%20Tool%20Chains/STMicroelectronics%20Monaco%20Linux%203.10.102/monaco-gcc493_glibc220_hard-GPL.txz/download -O monaco-gcc493_glibc220_hard-GPL.txz
$ tar -xvf monaco-gcc493_glibc220_hard-GPL.txz
$ tree -L 1 arm-unknown-linux-gnueabi/
arm-unknown-linux-gnueabi/
├── arm-unknown-linux-gnueabi
├── bin
├── build.log.bz2
├── include
├── lib
├── libexec
└── share


前置環境:

$ sudo apt install make python gcc
$ chmod 755 $HOME/arm-unknown-linux-gnueabi $HOME/arm-unknown-linux-gnueabi/include $HOME/arm-unknown-linux-gnueabi/lib $HOME/arm-unknown-linux-gnueabi/bin $HOME/arm-unknown-linux-gnueabi/share


編譯 ncurses:

$ wget ftp://invisible-island.net/ncurses/ncurses.tar.gz
$ tar -xvf ncurses.tar.gz
$ cd ncurses-5.9
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin CC=$HOME/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CFLAGS="-I$HOME/arm-unknown-linux-gnueabi/include"  ./configure --host arm-unknown-linux-gnueabi --prefix=$HOME/arm-unknown-linux-gnueabi
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin make
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin make install


編譯 libevent:

$ wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
$ tar -xvf libevent-2.1.8-stable.tar.gz
$ cd libevent-2.1.8-stable
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin CC=$HOME/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CFLAGS="-I$HOME/arm-unknown-linux-gnueabi/include"  ./configure --host arm-unknown-linux-gnueabi --prefix=$HOME/arm-unknown-linux-gnueabi
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin CC=$HOME/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CFLAGS="-I$HOME/arm-unknown-linux-gnueabi/include"  make
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin make install


編譯 tmux:

$ wget https://github.com/tmux/tmux/releases/download/2.5/tmux-2.5.tar.gz
$ tar -xvf tmux-2.5.tar.gz
$ cd tmux-2.5
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin CC=$HOME/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CFLAGS="-I$HOME/arm-unknown-linux-gnueabi/include -I$HOME/arm-unknown-linux-gnueabi/include/ncurses" LDFLAGS="-L$HOME/arm-unknown-linux-gnueabi/lib" ./configure --host arm-unknown-linux-gnueabi --prefix=$HOME/arm-unknown-linux-gnueabi
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin make
$ file tmux
tmux: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, not stripped


or:

$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin CC=$HOME/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc CFLAGS="-I$HOME/arm-unknown-linux-gnueabi/include -I$HOME/arm-unknown-linux-gnueabi/include/ncurses" LDFLAGS="-L$HOME/arm-unknown-linux-gnueabi/lib" ./configure --host arm-unknown-linux-gnueabi --prefix=$HOME/arm-unknown-linux-gnueabi --enable-static
$ PATH=$PATH:$HOME/arm-unknown-linux-gnueabi/bin make
...
...
cmd-string.o: In function `cmd_string_split':
cmd-string.c:(.text+0x820): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
cmd-string.c:(.text+0x760): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
$HOME/arm-unknown-linux-gnueabi/lib/libevent.a(evutil.o): In function `test_for_getaddrinfo_hacks':
evutil.c:(.text+0x1be8): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
$HOME/arm-unknown-linux-gnueabi/lib/libevent.a(evutil.o): In function `evutil_unparse_protoname':
evutil.c:(.text+0x1554): warning: Using 'getprotobynumber' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
$HOME/arm-unknown-linux-gnueabi/lib/libevent.a(evutil.o): In function `evutil_parse_servname':
evutil.c:(.text+0x14a0): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
$ file tmux
tmux: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, not stripped


收工

2015年4月5日 星期日

人生第一台 NAS - Synology DS215j 與 DiskStation 初體驗


假日閒聊時,發現家人正困惑著資料儲存的問題,四五年前買的筆電、桌機有的硬碟大概才 256GB、512GB 而已,隨著數位相機、手機拍照的盛起,有越來越多資料不知該怎樣處理,甚至許多歷史因素懶得處理 Orz 想著想著,看來是個時機點,買一台 NAS 了!周邊有花錢買 NAS 的,有八成以上有抓 BT 的習慣,少數是本身就是拍照的愛好者,有的甚至就是用外接硬碟來備份,為此也困惑許久,最後就當作嘗鮮吧 XD

至於為何買 Synology ?單純看到前同事用這系列,而型號只是單純買 2015 年的產品。雖然我自己土砲一下要裝個 server 也不是難事,只是時間寶貴啊,花一點錢試試看別人的產品,一台機殼、主機板,算起來跟自己去組一台要花的成本相當,差只差在自己組裝的硬體規格會比較好,可以接的硬碟會比較多,但通常也不會比專門做 NAS 的省電,並且整體空間設計也很難比別人好看。

 

使用心得還不賴!以前也開發過這類產品,例如一個 embedded linux 搭配 Web UI 來提供服務,但直到我試了 Synology DiskStation 的介面,真的輸人輸太多!Synology 真的做得很好 :P 過去開發產品容易執著在技術上,而使用者其實更在意絕對是 UIUX 的部分。

安裝完硬碟且接上網路後,只要是在同一個無線網路 AP 下,直接用瀏覽器輸入 find.synology.com 即可連線到,透過 DNS 的機制 UIUX 做的真的不錯,十分親民。而 Mobile app 也是一樣的道理,下載完專屬的 app 後,可以透過本地網路的瀏覽方可找到機器。而機器的設定全部都走 Web UI ,沒點幾下就都搞定了!



不少服務擴充:





整體上,對我這個產品的門外漢來說,做的真的不錯,分數有 90 分以上 :P 目前使用上都還順利,若真的要挑惕的話,大概是我買的這台是兩顆碟,已備份技術來看,就是會損失一顆硬碟的空間(買兩顆 1TB,一顆備份,真正只能用 1TB空間),另外則是我在 MBP 2012 機器上,透過 FileZilla 走 FTP 傳資料時,若一口氣開 10 個連線,平均 5~10分鐘會出現連線 timeout 的現象,不確定是 MBP 跑不動,還是 NAS 連線數應付不來。