Synology Synology相關 Synology Docker相關 Synology Docker相關 Synology 安裝Portainer 管理Docker 安裝Docker和Portainer 套件中心搜尋 docker ,DSM7.2之後已改名 Container Manager ,安裝套件   docker資料夾新增 portainer   進入Synology Shell內切換root帳號執行 docker run -d --name=portainer \ -p 8000:8000 \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /volume1/docker/portainer:/data \ --restart=always \ 6053537/portainer-ce:latest     確認容器已經執行   進入Portainer, http://IP:9000 點擊連接右邊編輯圖示   輸入你的Synology IP並更新環境   安裝完成 Synology 使用Docker架設LibreNMS 運行環境 DSM 7.2 安裝 LibreNMS 確認已安裝 Portainer ,在docker內新增資料夾librenms並且在裡面分別新增data、db、redis資料夾 修改資料夾權限使docker能夠寫入執行 chmod 755 /volume1/docker/librenms -R 進入Portainer,點選堆棧(Stack),並添加堆棧 名稱填寫 librenms ,並貼到 編輯器中,指令內PUID和PGID於Shell內執行id並自行替換 user1@synology:~$ id uid=1026(user1) gid=100(users) services: db: image: mariadb:11.4-noble #LTS Long Time Support Until May 29, 2029. container_name: LibreNMS-DB command: - mariadbd - --innodb-file-per-table=1 - --lower-case-table-names=0 - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: - /volume1/docker/librenms/db:/var/lib/mysql:rw environment: TZ: Asia/Taipei MARIADB_RANDOM_ROOT_PASSWORD: yes MARIADB_DATABASE: librenms MARIADB_USER: librenmsuser MARIADB_PASSWORD: librenmspass restart: on-failure:5 redis: image: redis:7.2-alpine container_name: LibreNMS_REDIS healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] volumes: - /volume1/docker/librenms/redis:/data:rw environment: TZ: Asia/Taipei restart: on-failure:5 librenms: image: librenms/librenms:latest container_name: LibreNMS healthcheck: test: ["CMD-SHELL", "nc -z 127.0.0.1 8000 || exit 1"] interval: 10s timeout: 5s retries: 3 start_period: 90s hostname: librenms cap_add: - NET_ADMIN - NET_RAW ports: - target: 8000 published: 28083 protocol: tcp depends_on: - db - redis volumes: - /volume1/docker/librenms/data:/data:rw environment: TZ: Asia/Taipei PUID: 1026 PGID: 100 SESSION_SECURE_COOKIE: true DB_HOST: db DB_NAME: librenms DB_USER: librenmsuser DB_PASSWORD: librenmspass DB_TIMEOUT: 120 MEMORY_LIMIT: 512M MAX_INPUT_VARS: 1000 UPLOAD_MAX_SIZE: 128M OPCACHE_MEM_SIZE: 128 REAL_IP_FROM: 0.0.0.0/32 REAL_IP_HEADER: X-Forwarded-For LOG_IP_VAR: remote_addr CACHE_DRIVER: redis SESSION_DRIVER: redis REDIS_HOST: redis LIBRENMS_SNMP_COMMUNITY: librenmsdocker LIBRENMS_WEATHERMAP: false LIBRENMS_WEATHERMAP_SCHEDULE: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours restart: on-failure:5 dispatcher: image: librenms/librenms:latest container_name: LibreNMS-DISPATCHER hostname: librenms-dispatcher cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis volumes: - /volume1/docker/librenms/data:/data:rw environment: TZ: Asia/Taipei PUID: 1026 PGID: 100 DB_HOST: db DB_NAME: librenms DB_USER: librenmsuser DB_PASSWORD: librenmspass DB_TIMEOUT: 120 DISPATCHER_NODE_ID: dispatcher1 SIDECAR_DISPATCHER: 1 MEMORY_LIMIT: 512M MAX_INPUT_VARS: 1000 UPLOAD_MAX_SIZE: 128M OPCACHE_MEM_SIZE: 128 REAL_IP_FROM: 0.0.0.0/32 REAL_IP_HEADER: X-Forwarded-For LOG_IP_VAR: remote_addr CACHE_DRIVER: redis SESSION_DRIVER: redis REDIS_HOST: redis LIBRENMS_SNMP_COMMUNITY: librenmsdocker LIBRENMS_WEATHERMAP: false LIBRENMS_WEATHERMAP_SCHEDULE: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours restart: on-failure:5 syslogng: image: librenms/librenms:latest container_name: LibreNMS_SYSLOGNG hostname: librenms-syslogng healthcheck: test: ["CMD-SHELL", "nc -z 127.0.0.1 514 || exit 1"] interval: 10s timeout: 5s retries: 3 start_period: 90s cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis ports: - target: 514 published: 514 protocol: tcp - target: 514 published: 514 protocol: udp volumes: - /volume1/docker/librenms/data:/data:rw environment: TZ: Asia/Taipei PUID: 1026 PGID: 100 DB_HOST: db DB_NAME: librenms DB_USER: librenmsuser DB_PASSWORD: librenmspass DB_TIMEOUT: 120 SIDECAR_SYSLOGNG: 1 MEMORY_LIMIT: 512M MAX_INPUT_VARS: 1000 UPLOAD_MAX_SIZE: 128M OPCACHE_MEM_SIZE: 128 REAL_IP_FROM: 0.0.0.0/32 REAL_IP_HEADER: X-Forwarded-For LOG_IP_VAR: remote_addr CACHE_DRIVER: redis SESSION_DRIVER: redis REDIS_HOST: redis LIBRENMS_SNMP_COMMUNITY: librenmsdocker LIBRENMS_WEATHERMAP: false LIBRENMS_WEATHERMAP_SCHEDULE: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours restart: on-failure:5 snmptrapd: image: librenms/librenms:latest container_name: LibreNMS_SNMPTRAPD healthcheck: test: ["CMD-SHELL", "nc -z 127.0.0.1 162 || exit 1"] interval: 10s timeout: 5s retries: 3 start_period: 90s hostname: librenms-snmptrapd cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis ports: - target: 162 published: 162 protocol: tcp - target: 162 published: 162 protocol: udp volumes: - /volume1/docker/librenms/data:/data:rw environment: TZ: Asia/Taipei PUID: 1026 PGID: 100 DB_HOST: db DB_NAME: librenms DB_USER: librenmsuser DB_PASSWORD: librenmspass DB_TIMEOUT: 120 SIDECAR_SNMPTRAPD: 1 MEMORY_LIMIT: 512M MAX_INPUT_VARS: 1000 UPLOAD_MAX_SIZE: 128M OPCACHE_MEM_SIZE: 128 REAL_IP_FROM: 0.0.0.0/32 REAL_IP_HEADER: X-Forwarded-For LOG_IP_VAR: remote_addr CACHE_DRIVER: redis SESSION_DRIVER: redis REDIS_HOST: redis LIBRENMS_SNMP_COMMUNITY: librenmsdocker LIBRENMS_WEATHERMAP: false LIBRENMS_WEATHERMAP_SCHEDULE: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours restart: on-failure:5 scheduler: image: librenms/librenms:latest container_name: LibreNMS_scheduler volumes: - /volume1/docker/librenms/data:/data:rw # 請與主容器掛載的路徑一致 environment: - SIDECAR_CRON=1 - DB_HOST=db - DB_NAME=librenms - DB_USER=librenmsuser - DB_PASSWORD=librenmspass - PUID=1026 - PGID=100 - TZ=Asia/Taipei depends_on: - db - redis - librenms restart: on-failure:5 部屬堆棧 成功後右上角應會顯示堆棧部署成功 等待幾分鐘安裝,確認所有服務已經執行 輸入IP和設定的PORT,例如 http://Synology IP:28083 ,進入LibreNMS 安裝頁面 建立管理員後完成安裝 若出現419 Page Expired先清除快取 點選LibreNMS容器並進入終端 php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear 重新整理網頁後再次登入 若輸入網址後直接跳過安裝頁面到登入畫面請手動新增使用者 點選LibreNMS容器並進入終端新增使用者 lnms user:add --role=admin user1 重新整理網頁後再次登入 進行組態驗證確認無錯誤設定,若有依照建議修正 開始監控Synology設備 開啟SNMP功能 LibreNMS新增 Synology設備,輸入IP和community 查看已新增的設備 Synology 使用Docker架設Vaultwarden密碼管理 Vaultwarden為官方的 Bitwarden 社群版本,使用SQLite非常輕量,適合個人架設使用 運行環境 DSM 7.1 安裝Vaultwarden 確認已安裝 Portainer ,在docker資料夾新增 vaultwarden ,裡面新增 vw-data 進入Portainer,新增堆棧(Stack)並部屬 services: app: image: vaultwarden/server:latest container_name: vaultwarden restart: always volumes: - /volume1/docker/vaultwarden/vw-data:/data/ environment: - ADMIN_TOKEN=1qaxxwsx3xx ports: - 8080:80 Vaultwarden需要https才能使用,Synology內 登入入口 > 進階 > 反向代理 新增你的網域和通訊埠 進入 http://ip:12345/admin ,修改Domain URL和管理員token後儲存 管理員token在docker部屬時的ADMIN_TOKEN參數 進入 https://domain:12345/ ,創建使用者,登入後完成架設 Chrome新增擴充功能 安裝 Bitwarden - 免費密碼管理工具 後,點選自架輸入伺服器URL並登入 進入其他網站,會顯示登入功能 Synology 使用 Docker 架設 immich相簿 immich是一套開源的相簿系統,可當作替代Google相簿,提供手機APP,並有地圖標記和人臉辨識等功能 官方Demo   運行環境 DSM 7.1   安裝immich 確認已安裝 Portainer ,在docker資料夾新增 immich-app ,裡面新增 library 和 postgres 資料夾   從官方下載docker-compose.yml和.env檔案 https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/example.env   修改下載的docker-compose.yml和.env檔案 編輯 example.env 並改名為 .env # You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=/volume1/docker/immich-app/library # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=/volume1/docker/immich-app/postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List # TZ=Asia/Taipei # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=postgres # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich UPLOAD_LOCATION和DB_DATA_LOCATION為剛剛在docker 內建立的資料夾的路徑 TZ改成Asia/Taipei DB_PASSWORD 密碼可自行更改   進入Portainer,新增堆棧(Stack) 將docker-compose.yml內容貼到 Stack編輯器,並上傳剛剛修改的 .env 檔案   上傳後確認以下環境變量正確,並將編輯器內的 - .env 改成 - stack.env   修改完成後部屬,第一次下載容器需等待一段間,所有容器成功開啟後即可登入 http://192.168.0.250:2283/ 初始化安裝 Synology 安裝 Speedtest 下載Speedtest wget https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-aarch64.tgz -O speedtest.tgz 解壓縮並移動到系統執行路徑 tar -zxvf speedtest.tgz mv speedtest /usr/local/bin/ 直接執行測速 speedtest       Synology - 洗白+開啟photo人物辨識 運行環境 黑群暉SDM7.1.1 洗白設定 安裝VMM 安裝virtual machine manager套件,下載跟主機相應版本的Virtual DSM 新增虛擬機選擇Synology Virtual DSM,點選免費授權後開機 使用synology assistant搜尋新建立的虛擬機,紀錄序號及mac 將主機更改為虛擬機的序號和mac Synology設定 sudo -i mkdir /tmp/boot cd /dev mount -t vfat synoboot1 /tmp/boot/ nano /tmp/boot/user-config.yml root@synology:/dev# nano /tmp/boot/user-config.yml lkm: prod directboot: "false" model: "DS920+" build: "42962" sn: "xxx" <<填入虛擬機序號 layout: qwerty . . . cmdline: netif_num: "1" mac1: xxx <<填入虛擬機mac 登入synology網頁,進入資訊中心,確認序號和mac已經更改 安裝active backup for business測試,登入synology帳號如果啟用成功即完成,以上為洗白功能開啟 開啟photo人物辨識 於套件中心確認photo版本,下載對應補丁替換 libsynophoto-plugin-model.so libsynophoto-plugin-model.so_.1.-10 synopkgctl stop SynologyPhotos cp -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so-bak cp -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0 /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0-bak cd /tmp wget --no-check-certificate https://github.com/jinlife/Synology_Photos_Face_Patch/releases/download/1.3.3-0330/libsynophoto-plugin-model.so wget --no-check-certificate https://github.com/jinlife/Synology_Photos_Face_Patch/releases/download/1.3.3-0330/libsynophoto-plugin-model.so.1.0 cp -f libsynophoto-plugin-model.so /var/packages/SynologyPhotos/target/usr/lib/ cp -f libsynophoto-plugin-model.so.1.0 /var/packages/SynologyPhotos/target/usr/lib/ chmod +x /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so chmod +x /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0 chown SynologyPhotos:SynologyPhotos /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so chown SynologyPhotos:SynologyPhotos /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0 synopkgctl start SynologyPhotos 瀏覽器打開Synonlogy Photos,啟用人物相簿後重建索引即可 Synology - 安裝 WireGuard 客户端 套件中心設定 新增社群 https://synopackage.com/repository/spk/all ,安裝Wiregurad 主機設定 修复套件权限 sudo sed -i 's/package/root/g' /var/packages/WireGuard/conf/privilege 在etc目录下创建wireguard文件夹 mkdir /etc/wireguard/ 进入Wireguard文件夹 cd /etc/wireguard/ 新建 conf 配置文件 touch gw0.conf 给于配置文件权限 chmod 775 gw0.conf 建立客戶端金鑰 wg genkey | tee client1_privateKey | wg pubkey > client1_publicKey 設定gw0.conf [Interface] PrivateKey = eEUEA8BW5RKWfUxXdAxZrotuKdZ5JZD9WQyVY= (client1_privateKey) Address = 10.9.0.5/24 (server端設定ip) MTU = 1400 PostUp = iptables -t nat -A POSTROUTING -o eth0 -s 10.9.0.0/24 -j MASQUERADE (可選,wg up後啟用nat) PostDown = iptables -t nat -D POSTROUTING -o eth0 -s 10.9.0.0/24 -j MASQUERADE (可選,wg down後刪除nat) [Peer] PublicKey = Rh1yTxxVzswNMlhBClPH7KB2jrrIOZUexE= (server端公鑰) AllowedIPs = 10.9.0.0/24,192.168.0.0/24 (wg網段和允許網段) PersistentKeepalive = 25 (須設定) Endpoint = ip:port 启动 WG服务 wg-quick up gw0 停止 WG服务 wg-quick down gw0 查看 WG状态 wg show gw0 開機自啟 # 开启 sudo wg-autostart enable gw0 # 关闭 sudo wg-autostart disable gw0 Synology 使用2.5G網卡 安裝網卡驅動 確認網卡型號,大多都適用 bb-qq作者的RTL8152/8153/8156/8157/8159套件 套件架構代號 對應 CPU 處理器平台 代表型號範例 v1000 AMD Ryzen V1000 / R1000 系列 DS923+, DS723+, DS1522+, RS2423+ r1000 AMD Ryzen R1600 雙核處理器 DS1621+, DS1821+, RS2421+ epyc7003 AMD EPYC 7003 系列企業級處理器 SA6400, RS422+, HD6500 geminilake Intel Celeron J4125 / J4025 DS920+, DS720+, DS220+, DS224+ apollolake Intel Celeron J3455 / J3355 DS918+, DS718+, DS218+, DS418play denverton Intel Atom C3000 系列 DS1618+, DS1819+, DS2419+ braswell Intel Celeron N3150 / N3050 DS916+, DS716+, DS216+II avoton Intel Atom C2000 系列 (C2538 等) DS1515+, DS1815+, DS415+, RS2416+ broadwell / broadwellnk Intel Xeon D-1500 系列 DS3617xs, FS3400, FS3600 purley / grantley Intel Xeon Scalable / E5 系列 FS6400, DS3615xs, FS3017 下載你的型號跟版本,在Synology 套件中心手動安裝 第一次安裝會顯示錯誤,登入Synology SSH terminal執行以下命令 sudo install -m 4755 -o root -D /var/packages/r8152/target/r8152/spk_su /opt/sbin/spk_su sudo chmod a+rx /opt /opt/sbin 再次安裝確認成功,作者有建議重啟NAS 確認2.5G網卡已載入   開機啟動網卡設定 NAS重啟有可能網卡驅動不會自動啟用,可以在任務排程加入開機後執行網卡驅動重啟 事件觸發開機 使用者選root新增以下指令 sleep 30s /usr/syno/bin/synopkg restart r8152