From ee0ccc8071372d829d247bb0cd584d264f787106 Mon Sep 17 00:00:00 2001 From: waxgourd Date: Tue, 2 Jan 2024 11:11:49 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A6=96=E6=AC=A1=E6=8E=A8=E5=87=BAd?= =?UTF-8?q?dnsto=E3=80=81mi-scale=E3=80=81mpd=E3=80=81portainer;=202?= =?UTF-8?q?=E3=80=81=E5=AE=8C=E5=96=84emby=E5=8F=8Asamba-easy-nas=E7=9A=84?= =?UTF-8?q?docs=E5=8F=8Aconfig=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 +++- ddnsto/CHANGELOG.md | 3 + ddnsto/README.md | 25 ++++++ ddnsto/config.yaml | 20 +++++ ddnsto/icon.png | Bin 0 -> 1715 bytes ddnsto/logo.png | Bin 0 -> 1715 bytes ddnsto/translations/en.yaml | 7 ++ ddnsto/translations/zh-Hans.yaml | 7 ++ emby/CHANGELOG.md | 3 + emby/config.json | 2 +- mi-scale/CHANGELOG.md | 2 + mi-scale/DOCS.md | 100 +++++++++++++++++++++++ mi-scale/README.md | 15 ++++ mi-scale/apparmor.txt | 96 ++++++++++++++++++++++ mi-scale/config.json | 96 ++++++++++++++++++++++ mi-scale/icon.png | Bin 0 -> 10992 bytes mi-scale/logo.png | Bin 0 -> 9378 bytes mpd/CHANGELOG.md | 3 + mpd/DOCS.md | 62 ++++++++++++++ mpd/README.md | 11 +++ mpd/config.yaml | 43 ++++++++++ mpd/icon.png | Bin 0 -> 11628 bytes mpd/logo.png | Bin 0 -> 10454 bytes mpd/translations/en.yaml | 14 ++++ mpd/translations/zh-Hans.yaml | 14 ++++ portainer/CHANGELOG.md | 2 + portainer/DOCS.md | 10 +++ portainer/README.md | 13 +++ portainer/apparmor.txt | 59 +++++++++++++ portainer/config.json | 50 ++++++++++++ portainer/icon.png | Bin 0 -> 3080 bytes portainer/logo.png | Bin 0 -> 3080 bytes portainer/translations/en.yaml | 16 ++++ portainer/translations/zh-Hans.yaml | 16 ++++ samba-easy-nas/DOCS.md | 5 +- samba-easy-nas/config.yaml | 4 +- samba-easy-nas/translations/zh-Hans.yaml | 4 +- 37 files changed, 710 insertions(+), 10 deletions(-) create mode 100644 ddnsto/CHANGELOG.md create mode 100644 ddnsto/README.md create mode 100644 ddnsto/config.yaml create mode 100644 ddnsto/icon.png create mode 100644 ddnsto/logo.png create mode 100644 ddnsto/translations/en.yaml create mode 100644 ddnsto/translations/zh-Hans.yaml create mode 100644 mi-scale/CHANGELOG.md create mode 100644 mi-scale/DOCS.md create mode 100644 mi-scale/README.md create mode 100644 mi-scale/apparmor.txt create mode 100644 mi-scale/config.json create mode 100644 mi-scale/icon.png create mode 100644 mi-scale/logo.png create mode 100644 mpd/CHANGELOG.md create mode 100644 mpd/DOCS.md create mode 100644 mpd/README.md create mode 100644 mpd/config.yaml create mode 100644 mpd/icon.png create mode 100644 mpd/logo.png create mode 100644 mpd/translations/en.yaml create mode 100644 mpd/translations/zh-Hans.yaml create mode 100644 portainer/CHANGELOG.md create mode 100644 portainer/DOCS.md create mode 100644 portainer/README.md create mode 100644 portainer/apparmor.txt create mode 100644 portainer/config.json create mode 100644 portainer/icon.png create mode 100644 portainer/logo.png create mode 100644 portainer/translations/en.yaml create mode 100644 portainer/translations/zh-Hans.yaml diff --git a/README.md b/README.md index ecc03e2..cc1b657 100644 --- a/README.md +++ b/README.md @@ -48,4 +48,20 @@ MyIP一个更好的 IP 工具箱。可以查看IP、IP 信息(代理前后) ✓ [Zigbee2MQTT](zigbee2mqtt/) : -官方Zigbee2MQTT家庭助理插件 \ No newline at end of file +官方Zigbee2MQTT家庭助理插件 + +✓ [portainer](portainer/) : + +比较流行的docker管理工具 + +✓ [MPD](mpd/) : + +HA中有名的播放器 + +✓ [ddnsto](ddnsto/) : + +优秀的外网访问内网的插件 + +✓ [mi-scale](mi-scale/) : + +小米体脂称插件 \ No newline at end of file diff --git a/ddnsto/CHANGELOG.md b/ddnsto/CHANGELOG.md new file mode 100644 index 0000000..371cab7 --- /dev/null +++ b/ddnsto/CHANGELOG.md @@ -0,0 +1,3 @@ +## 3.0.5 + + - 首次发布。 \ No newline at end of file diff --git a/ddnsto/README.md b/ddnsto/README.md new file mode 100644 index 0000000..cbaedd8 --- /dev/null +++ b/ddnsto/README.md @@ -0,0 +1,25 @@ +# 冬瓜甄选addons: DDNSTO + +## 关于 + +非DDNSTO官方发布的第三方插件。 + + + +## 来源 + +https://github.com/TomCzHen/ddnsto-hassio + + + +原作者写明: + +**注意: 本插件并非 DDNSTO 官方发布。** + +配置使用请查看 [https://doc.linkease.com/zh/guide/ddnsto/](https://doc.linkease.com/zh/guide/ddnsto/) + + + +评价: + +认真做好的带汉化的插件! \ No newline at end of file diff --git a/ddnsto/config.yaml b/ddnsto/config.yaml new file mode 100644 index 0000000..28eb840 --- /dev/null +++ b/ddnsto/config.yaml @@ -0,0 +1,20 @@ +name: "DDNSTO" +slug: ddnsto +version: "3.0.5" +description: "DDNSTO 是一款稳定、快速、简单易用的内网穿透工具" +url: https://gitcode.com/waxgourd/addons +# codenotary: wghaos@163.com +startup: services +init: false +apparmor: false +arch: + - aarch64 + - amd64 +host_network: true +options: + user_token: + device_id: 0 +schema: + user_token: match([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) + device_id: list(0|1|2|3|4|5|6|7|8|9) +image: "tomczhen/ddnsto-hassio-{arch}" \ No newline at end of file diff --git a/ddnsto/icon.png b/ddnsto/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..25f75ce0cf7a501b59150c9e41e274f497f6008b GIT binary patch literal 1715 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 +[Mi Body Composition Scale](https://www.mi.com/global/mi-body-composition-scale/) | XMTZC02HM | Mi Scale +[Mi Body Composition Scale 2](https://c.mi.com/thread-2289389-1-0.html) | XMTZC05HM | Mi Body Composition Scale 2 + +急着出,汉化后续调整!!!(冬瓜备注) + +# Setup + +1. Retrieve the scale's MAC address from the [Xiaomi Mi Fit app](https://play.google.com/store/apps/details?id=com.xiaomi.hm.health&hl=en&gl=US), or alternatively, you can also use the `bluetoothctl` tool on Linux and type `scan on` to scan for BLE devices (`sudo hcitool lescan` might also work). The device should be named `MIBFS` or similar.
+Showing the MAC address in the Xiaomi Mi Fit app + + +1. Open Home Assistant and navigate to the "Add-on Store". Click on the 3 dots (top right) and select "Repositories". +2. Enter `https://github.com/lolouk44/hassio-addons` in the box and click on "Add". +3. You should now see "Lolouk44 Add-Ons" at the bottom list. +4. Click on "Xiaomi Mi Scale", then click "Install". +5. Under the "Configuration" tab, change the settings appropriately (at least MQTT parameters, user properties, and MAC address), see [Parameters](#parameters). +6. Start the Add-on. + +## Important: +If using the Add-On outside of Home Assistant Operating System / through a docker container, make sure the dbus is shared with the container running Home Assistant. This is typically done by adding the following line in your docker run command: +`-v /var/run/dbus/:/var/run/dbus/:ro` +or the following lines in your docker-compose file: +``` + volumes: + - /var/run/dbus/:/var/run/dbus/:ro +``` + +## Parameters +Option | Type | Required | Description +--- | --- | --- | --- +HCI_DEV | string | No | Bluetooth hci device to use. Defaults to `hci0` +BLUEPY_PASSIVE_SCAN | bool | No | Try to set to true if getting an error like `Bluetooth connection error: Failed to execute management command ‘le on’` on a Raspberry Pi. Defaults to `false` +MISCALE_MAC | string | Yes | MAC address of your scale +MQTT_PREFIX | string | No | MQTT topic prefix, defaults to `miscale` +MQTT_HOST | string | Yes | MQTT server, defaults to `127.0.0.1` +MQTT_USERNAME | string | No | Username for MQTT server (comment out if not required) +MQTT_PASSWORD | string | No | Password for MQTT (comment out if not required) +MQTT_PORT | int | No | Port of your MQTT server, defaults to 1883 +MQTT_DISCOVERY | bool | No | Whether you want MQTT discovery for Home Assistant, defaults to `true` +MQTT_DISCOVERY_PREFIX | string | No | MQTT discovery prefix for Home Assistant, defaults to `homeassistant` +DEBUG_LEVEL | string | No | Logging level. Possible values: 'CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'. Defaults to 'INFO' +USERS | List | Yes | List of users to add, see below + + +Auto-gender selection/config: this is used to create the calculations such as BMI, Water/Bone Mass, etc. +Here is the logic used to assign a measured weight to a user: +- If the weight is within the range of a user's defined values for GT and LT, then it will be assigned (published) to that user. +- If the weight matches two separate user ranges, it will only be assigned to the first user that matched. So don't create overlapping ranges! + +User Option | Type | Required | Description +--- | --- | --- | --- +GT | int | Yes | Greater Than - Weight must be greater than this value; this will be the lower limit for the weight range of the user +LT | int | Yes | Less Than - Weight must be less than this value; this will be the upper limit for the weight range of the user +SEX | string | Yes | Gender of the user (male / female) +NAME | string | Yes | Name of the user +HEIGHT | int | Yes | Height (in cm) of the user +DOB | string | Yes | Date of Birth of the user (in yyyy-mm-dd format) + +Note: the weight definitions must be in the same unit as the scale (kg, Lbs, or jin). + + +# Home Assistant Setup +In the `mqtt:` block, enter as many blocks as users configured in your environment variables. +If you already have an `mqtt:` and/or `sensor:` block, do not create another one but simply add the "missing" bits under the relevant block header. +Note: Only weight entities are automatically added via the MQTT discovery. + + +```yaml +mqtt: + sensor: + - name: "Example Name Weight" + state_topic: "miscale/USER_NAME/weight" + value_template: "{{ value_json['weight'] }}" + unit_of_measurement: "kg" + json_attributes_topic: "miscale/USER_NAME/weight" + icon: mdi:scale-bathroom + # Below lines only needed if long term statistics are required + state_class: "measurement" + + - name: "Example Name BMI" + state_topic: "miscale/USER_NAME/weight" + value_template: "{{ value_json['bmi'] }}" + icon: mdi:human-pregnant + unit_of_measurement: "kg/m2" + # Below lines only needed if long term statistics are required + state_class: "measurement" +``` + +Example of the Lovelace card in HA 🠲 Example of the details of the Lovelace card in HA + + + +# Acknowledgements +Thanks to @syssi (https://gist.github.com/syssi/4108a54877406dc231d95514e538bde9) and @prototux (https://github.com/wiecosystem/Bluetooth) for their initial code. Special thanks to [@ned-kelly](https://github.com/ned-kelly) for his help turning a "simple" Python script into a fully fledged Docker container. Thanks to [@bpaulin](https://github.com/bpaulin), [@fabir-git](https://github.com/fabir-git), [@snozzley](https://github.com/snozzley), [CodeFinder2](https://github.com/CodeFinder2) [@MariusHerget](https://github.com/MariusHerget) for their PRs and collaboration. diff --git a/mi-scale/README.md b/mi-scale/README.md new file mode 100644 index 0000000..8a12d16 --- /dev/null +++ b/mi-scale/README.md @@ -0,0 +1,15 @@ +# 冬瓜甄选addons: 小米体脂称 + +## 关于 + +小米体脂称汉化版,通过低功耗蓝牙(BLE)连接到小米体脂秤,从设备读取体重测量值,包括体重指数(BMI)、基础代谢、内脏脂肪、瘦体重、体脂、水量、骨量、肌肉量、蛋白质含量、体型、体重类别和代谢年龄。 + +## 来源 + +汉化借鉴 + +https://github.com/5high/hassio-addons/tree/master/mi-scale + +原版引用 + +https://github.com/lolouk44/hassio-addons diff --git a/mi-scale/apparmor.txt b/mi-scale/apparmor.txt new file mode 100644 index 0000000..5d8afb7 --- /dev/null +++ b/mi-scale/apparmor.txt @@ -0,0 +1,96 @@ +#include + +profile xiaomi_mi_scale flags=(attach_disconnected,mediate_deleted) { + #include + + # Capabilities + network, + capability, + file, + + # ### + # included from https://github.com/edgexfoundry-holding/device-bluetooth-c/blob/main/docker-ble-policy + # ### + dbus (send, receive) bus=system peer=(name=org.bluez, label=unconfined), + dbus (send, receive) bus=system interface=org.freedesktop.DBus peer=(label=unconfined), + + # ### + # included from https://github.com/jdstrand/snapd/blob/4befc00e3318a3231e96b38b575bf6e637ddad6c/interfaces/builtin/bluez.go + # ### + dbus (receive, send) + bus=system + interface=org.bluez.* + peer=(label=unconfined), + dbus (receive, send) + bus=system + path=/org/bluez{,/**} + interface=org.freedesktop.DBus.* + peer=(label=unconfined), + dbus (receive, send) + bus=system + path=/ + interface=org.freedesktop.DBus.* + peer=(label=unconfined), + + + # ### + # included from https://developers.home-assistant.io/docs/add-ons/presentation#apparmor + # ### + signal (send) set=(kill,term,int,hup,cont), + + # Receive signals from S6-Overlay + signal (send,receive) peer=*_xiaomi_mi_scale, + + # S6-Overlay + /init ix, + /bin/** ix, + /usr/bin/** ix, + /run/{s6,s6-rc*,service}/** ix, + /package/** ix, + /command/** ix, + /etc/services.d/** rwix, + /etc/cont-init.d/** rwix, + /etc/cont-finish.d/** rwix, + /run/{,**} rwk, + /dev/tty rw, + + # Bashio + /usr/lib/bashio/** ix, + /tmp/** rwk, + + # Access to options.json and other files within your addon + /data/** rw, + + # Access to mapped volumes specified in config.json + /share/** rw, + + + # ### + # included from https://gist.github.com/disconnect3d/d578af68b09ab56db657854ec03879aa + # (docker-default profile which would usually be used for this container) + # ### + signal (receive) peer=unconfined, + signal (send,receive) peer=docker-default, + + deny @{PROC}/* w, # deny write for all files directly in /proc (not in a subdir) + # deny write to files not in /proc//** or /proc/sys/** + deny @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1-9][^0-9][^0-9][^0-9]*}/** w, + deny @{PROC}/sys/[^k]** w, # deny /proc/sys except /proc/sys/k* (effectively /proc/sys/kernel) + deny @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w, # deny everything except shm* in /proc/sys/kernel/ + deny @{PROC}/sysrq-trigger rwklx, + deny @{PROC}/kcore rwklx, + + deny mount, + + deny /sys/[^f]*/** wklx, + deny /sys/f[^s]*/** wklx, + deny /sys/fs/[^c]*/** wklx, + deny /sys/fs/c[^g]*/** wklx, + deny /sys/fs/cg[^r]*/** wklx, + deny /sys/firmware/** rwklx, + deny /sys/kernel/security/** rwklx, + + + # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container + ptrace (trace,read) peer=docker-default, +} \ No newline at end of file diff --git a/mi-scale/config.json b/mi-scale/config.json new file mode 100644 index 0000000..f67dc2a --- /dev/null +++ b/mi-scale/config.json @@ -0,0 +1,96 @@ +{ + "name": "Xiaomi Mi Scale", + "version": "0.3.6", + "slug": "xiaomi_mi_scale", + "description": "通过蓝牙(BLE)读取小米体脂秤的测量值", + "url": "https://github.com/alexbelgium/hassio-addons", + "image": "wghaos/mi-scale", + "arch": ["armhf", "armv7", "aarch64", "amd64", "i386"], + "startup": "application", + "boot": "auto", + "host_dbus": true, + "panel_admin": false, + "host_network": true, + "apparmor": true, + "privileged": ["NET_ADMIN", "SYS_ADMIN"], + + "options": { + "HCI_DEV": "hci0", + "BLUEPY_PASSIVE_SCAN": false, + "MISCALE_MAC": "00:00:00:00:00:00", + "MQTT_PREFIX": "miscale", + "MQTT_HOST": "127.0.0.1", + "MQTT_USERNAME": "user", + "MQTT_PASSWORD": "passwd", + "MQTT_PORT": 1883, + "MQTT_RETAIN": true, + "MQTT_DISCOVERY": true, + "MQTT_DISCOVERY_PREFIX": "homeassistant", + "MQTT_TLS_CACERTS": "Path to CA Cert File", + "MQTT_TLS_INSECURE": false, + "DEBUG_LEVEL": "error", + + "USERS": [ + { + "NAME": "Bob", + "SEX": "male", + "GT": 60, + "LT": 80, + "HEIGHT": 180, + "DOB": "1980-01-01" + }, + { + "NAME": "Mary", + "SEX": "female", + "GT": 40, + "LT": 60, + "HEIGHT": 160, + "DOB": "1990-01-01" + }, + { + "NAME": "Timmy", + "SEX": "male", + "GT": 20, + "LT": 40, + "HEIGHT": 120, + "DOB": "2010-01-01" + }, + { + "NAME": "Baby Sally", + "SEX": "female", + "GT": 1, + "LT": 20, + "HEIGHT": 50, + "DOB": "2020-01-01" + } + ] + + }, + "schema": { + "HCI_DEV": "str?", + "BLUEPY_PASSIVE_SCAN": "bool?", + "MISCALE_MAC": "str", + "MQTT_PREFIX": "str?", + "MQTT_HOST": "str", + "MQTT_USERNAME": "str?", + "MQTT_PASSWORD": "str?", + "MQTT_PORT": "int?", + "MQTT_RETAIN": "bool?", + "MQTT_DISCOVERY": "bool?", + "MQTT_DISCOVERY_PREFIX": "str?", + "MQTT_TLS_CACERTS": "str?", + "MQTT_TLS_INSECURE": "bool?", + "DEBUG_LEVEL": "str?", + + "USERS": [ + { + "NAME": "str", + "SEX": "str", + "GT": "int", + "LT": "int", + "HEIGHT": "int", + "DOB": "str" + } + ] + } +} diff --git a/mi-scale/icon.png b/mi-scale/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0a115a07a3b5f2c7b90ffd60a794c11ac41d92c8 GIT binary patch literal 10992 zcmaiaWmFqo)OB!&K(XQ!4Q@q>r?|Vjy9IYIE+s&5C=SI76brPtyF=09*5dx=dDr@W ze81kwOlGZnCpY(=GiUF8&P=SDiYyK$872S#z>$}e(tw{s|2xo8;orSt=A!@r!J5C8 zo~MSn4~?6LtBt*rHI1jAn>CHKue}Wb;JZ?jZJ$9`{W=eSz}JU{j(4foz>Ukr)7sk`*kqUz@tCUsab7f#-) zy7aXsCt3F#cW#~V`tg&n*i;O19en2|#!CBmghtgH|KPT|uhxr=VvEy_eHQ;ye1Ci5 z$8~~$k@@bS-4SJ;5bWPh@00hXE0xW85u-X=dgJ95%N~-X#dmq@>Ee_4ufpn|^2NKk-KT?Jpj`Uvw^WzYTYtY% z(G+$)j1iL*>rPfqI%z8@=F2l)CuXULMq}-Gh&kV0t$*5o8FFPz7yp;@>YC4c)E?3c zL0t^GUKKFO8G-Eho{WH-D{-u-owGTk%bOFM`INM)P1(ntWl!~Gj+Xz1>>YiPG6qK{ zBn@{sfw}?;bP&?LO;%5Mg5rPgf%+c^J#yXzYO0x~H*#(CA#^}9oD#cc$L7bs{}9@iEn1@@Lf5d6q zjs540a<+TZy|d_rK`O9s3#|4TVB0eYhd|?sX%4hx##;E7vzGLSto1CJtARDh0i{cr zX<$yIFOzmr_R@v1J?jXIHIu=QHsS1#3gPP+gnK&l+6T-!<^aUO@|9kN1pUFUipsRB z#;l@5I+~2`;yPu;SuBy-r?s;_89b+$GTCFakn(hUpdyYeg#F)e1F|j|dcKw#cN9oS zT9@HK$^%So$9C7HLcu=cdEIl;;vY8z9rlE8I&vyFwv zS1IW%$pWbF``751C{o2Pan3*As6!F#5}76wKu7)=S+m|I>OJxj2YHYolfHJAcAaW# zXuqIRx%3AS5iy+=^A`VaDzYeJQIa*?AR;4B- zDp(>PD|6zpVHEfx09zK!Lxf{JCi~-PUvxiA`Jd4jWWM}m_Ap!(s~ww0q<02^H33E% z7g0F|K|?gZ6hC?l(79E;Q`4s!2BVHJYVZVV?#Mjos}(W=ifXZY4|oy8HT!KjwYMie zF0K;p$ZDj>-gA|=VL_b#{#fR^#6I~TS0N$J%BtggBF5;;xm>x9hJef7qVTq{c-=Y% zP_Oa^k09EweELM_ChCOd%OCkuoO!P=r2Hmv>doyq&I1^~9op?Te`GAj2+(Lnh+{3$sB{DjH>w%= zLf#FTm6(xB@jVoN{F1eVETPP?D=UOl-tsF2B_nN`mm?C-gE>AfaBXhoU8)B8lDp3! z`8uzi8eq8^^zK+m+%rm#7^(Ol%!?xx`};%f9k$dzqB{Kq3PI=Xd&ab$U(s9VNdr_4 zL^SUc`Zx{+l`p2nNR*0`#g`4xwZ(7?CIX>9-odc7bun^ zK2RrvG`E_+KM(O{UL~g7-;C6^0oCMUzd6n!8v=LdvdZSyJeX)$HFfRB>a$sDXVK3nPiLE}gJxns#QA8^@iq>o9)z}}&9}>y$GOX9eJZatrdY3r$gPX;p)vjb ziI4Pmt1T<`#2GW6K4m*LC#j;e>|G4aR8R5P0ZHlG8Cs`u!RvivgtUHXzE+!{$O7F+B6YM)_o1N=R@X8yJroI(m}6jx@liCt$bk9% zXSu^WWXW2+!Rq=o3~;vO>o;8P$sX;uD{M!4F*Ye@W)Ti`0l*j`Aknb)pFO3xLd5S8 zXVwi`l2w|y(Wn$@$TIKbv$d);ymeD7?F(Chh6@IqLL(BYSAz6RxN(Nxt;(q6n2%8H zb{XVwYwU$*0B1D_mp@NP_x0q7ZuQl)*EE^(eK^#gNEpm>H2@?E7=7_&=+}EnREOvm z+PX8bQdPHG`CGwg!rpUk;y-aSx=Q2xc1PsXY40q!k<3zg8tiEPUjMeo{pteU6KO^f z`h)Ml>1S68%eYBN3G{aAPPHluf>BR)jU<1D8Pqdm%K&-J3z$8fIi48TZCL~ ztKLAv#c?D((FK9_JuOL=6h3$i4G`3}$#khTHGN%3SLH%Sc_ArY4f)lqvF^So*t|eP zmPJ>gim6`njxye*WbD-I2spaU`Lnj8GC!_WAZiQw*2yb>B4>?BdXsZ8Wdh9^pFHgA zTO@VTKlu8((iZG}kk7=23Cu_M*Mnw2%xn}*|AWdjN2)<^*y`8(9Jm7&dP9V42XGLkTp^xX{3xE-a1t2r~L_9 z-&>4&ZFd=uQfxmO!N=DPf2zOQ(4qRng4bBrM0y)Q^iTgw-XGId|QmaRw{ z!LQiv2jvc)1cWDZS14a$lBSB}h&cE>kBOP2--C;$GRf8gH6w3Ly?bB_o4@_W!Nobl zz_LH1sR~Xw>o+S|Jk3c+=K6>pj?s?ir0TNgR$8UM3^A-Vza!)Ie_wcHc|#&7>PkAF zDIuqMQPF}OF@*ZZYf&MP2H6qgwv0%+^I$lDvgn&dMMicF{;)$6xz_c;7*UEBJtS?f z(Iqaj_R%v14?RV5YFi*RxXGy;H8(Ly1?WZ8?`6$?@{Q`+`NwgI`~sagPEINxfs`{| ziCYuCD`8&m){0hpQN%D=ash2(b%5`Fjq9Jv>hq3$NZj2*>)YEQ>h)^*N5$9f#EXN1 zp_j|yknE1LQvLM+LXM_v{(66^$6WtJkfo9-<~$!;^f6g2BQZL+fWLIgWWXCm{-M=y z7v|b|8-dDmPiONmEaMP^;(&+tNhtuLL(iUqS;3hV=h0TW_H-&Dv=}@$XNd4+nvlvz0YD;@4_)9{V|jP5kG$Ru$i)i2&=CD=cNM-JOC&?}O)vJk z!Zfwk^%l!?#bda3GEO4^yO(F>g4dz~9Q%9nXZ8u?1MPliaywX62b)S#NAh$|xVrce zWNp(hrz?qtA}N*5(4Kw6N|RM5keyEz(W^cWuJG@J5@3AZ{J1FH=hy=f;jq7VrEHEv zOZIR^$s8358^Cc)@ni_q_OT5nltYFG4#a%9#^YxbvfCRM*$(ksoXsdk}5mm}k;V_7a}N?d-j+K@ba ziq4Cd4sn$jjzKpf1(2J^0CV%7ejzOm9Ls6IR(JWtPlJCiLfgSsbL+uXn^QnV%Pk~h zal(y{GoID!W+JrnNvXYr>qij*s~G}nyuU>R)fC;2assYQLO|h_opKtxMrOyZ z5vOE5B@wbU;rqTmdAnpKRl`YHb*%}R1(NrB$R=qOZTw7#wc~*5T`A^W?(MU{JTBcu zE)!LL8`u7=hN3~=7qN1iIlJ7Kp3-;N=*<1vx@&V0T?P6tkJa~kGFKJ+)0*0UrEDSo zEnsH`cGzgv0k7#lhyWQ%oJCP`cM zxd^9CXYrbkW2iAcqGt$dXe*w{!e5YTEyC>`qNZk3Kvn`O%3qX=3*+tA82}+z+S-h= z0asUbwtoIcPSwg#Hs$bB$=f#!r6QB&veELObGOOs9Za7)h69f3S!z?MJ@F{t@ZN=( z%l6gD^~Z?Ij41od!qY4Jm$JXE&f^<=FEusyOijMdjxWP(Cac*YJn@Sydzk~B$B4l+3XD{5h|2^I3f%%x>Y~Di4~f= zXpE2R8i{p-`Cl1MePn(vBIIjAV5||}@@*g*2NpUPO3O&T{oXbtQ&!%+c(y2;Yd(B2dO%So`%Fk8`?Gm-bI@Y`XTQEKnyw`93E=MGso|MQ@R~_z(C6#6 zmh5v&<#P^jt?45yc1Bdw(o~hA1Ak~@xig&(GruZEqkG5uUC)CXW$~{U9-is>FOkvb zwSr>92{P;p^gf8vtnxO_c9yc{PNyn`6^c5e7!%dvVR&D%Q6@$3PHyY+C~t&63%4o- zJ@G$wwq`EY1I)jC?s7U>Be!Lg8A7h^ItoM!KbS(yX{u}K+f*Rv>TI;pg2-|eg)sz5 zk@nj1+$n|6G4UZ&H-p0rsnzH*Nhr`FiSN&wAr~EnbOP@W=~3QEJjPoGB_O^S7n(GG zJGUIIDgeN2Hx-;8M&Fy=q+K~^Vo@S=t@iYLX{OzTj#8R!%D?fN&Ish|YNNOamf3(J zJh+6_zAtYb5L2NJCG=_zM53TTwDcP>@$vJqb##5rx4*hYN|W;VzPv*66JCErwNR9m z0=)kBDeNjwgSTL~$>~D?0NlR+4uo`8Tyl6Lny0+7G}f^FD0qv zyK-u57(>74_c9@*ZEPHrqd0kzu(!89U&|Jdn!+V#MZJrL^3iEGL;G#=ao`X9kmR+jZC;IH4Ltzw71^rhz2$B78fLXHpf@?l!K^FmB` z!sUSvp7TnoKIdmjs?Tali>1}aPp`M8lctauC_%)`ab0)PAa#h*DS@S;{S|#84mmmb zmx2Q7yJ#yQpz~@*@owsq7&3q`6sHG;3sjnW5fmZ@2lD;gNON=$1A1E`+GXq9Upr4( z5yiFZy#}cX$~ECL|4XA82oOBQ*_{NbA^Y?YL@VWq2S#Tut#=l#XRF>5oM?f1WCAtN zrci-^lsec$Rp53k(-|%Rpa)PeC;e?&Jx_HT^okGqV@=z~Mq46oti4FavU?Ny0ayYBqfZlq`A97tHAcu=oL?7rcXxA=cAf}(*a2IV z2oj{x^=w!G($Gqqru(q2t}azMP#w>Jj?=0)-o$hS8smpIpOI~Ox=exe+;?1#ZiHOh z`POy;K?#o(HbHzZm1&3oyxytHpl&dFo0yQ$y=oMA3kT4=1K5%Sbp9J*_5C-@6bqd> z_57gg?c*cP5DBk)rRkSIZAdM(Y)xkNp)zQU)^Bm45(=Q8joZZ%=&OjR=rjAG*9P)b z;NxlQp9nlL!S5)A8Y5Zj>+8w3V+Sibkr0uCfas$ zeZpycSKV`6$0jCTkU~eonn_6kggrryj*bNkk%1#Er;ntT8P@uuzZR7B)`As!vDUE( zyZ{wD8VbK%T762O8%72O{wC-R3ZOp`fKUa{xuL0P$Uw`fs;0tdhP8U>bvq~jv!8+w z9#BJp;SL==7xFfG%cW!eWw5lgwA(D<85^KFbHU-ilPK_R+|<}HNafT zM*zDQDD6=6zZfBnZ;1%9&|mm|+^(w4lFo^whbUnheE+AHU831Qy3L3YP{x`*LW1zr z;=IZW)%ZnvOyIA;loW}XXu}398`Rw3 z)AqS8wHVtZ;IFpOd6upOd&v8YLp3OdT(UJDj_31^>JZ($wtNsa`$6&tA6&n`{0RSFn zGGS0scld~8oQ zAruJ&f@#phWq`;b%|CwJ4WjjbHPs7UGzq`~*a49&@p;_a*>Gu9ubwy4CvIGJf=f$Vlu(7za3#iw!^1=7W)Y{An;!RI13bCiB&TbRx%!FU}o1HsGAGikUTU*g4gv!dw z;Eqg6k3Mc{fNFq2qNa6=oS6!x3F)8 zN}E-xY6pzI3xC+dlAbEFuCUZ*gxhAs!E@SPw^$R!(=7?4NgJlg8UNivV3g3u?mp4b z)rGU@RqUP}DCnf=0#=C4%gclDqVyU}MUeKONN54&N})-?ynmXK$vlC`aN7*oG#TSr zO`vDzy>Dl%vV8OAjh?Y_e-svp3?d?kA#fu(Uz%IJ74=96I;k7Joy+9SgQFne`a59^ zW@36!UM)`|MvHvyPYM5Bm3len>Eckjh7AU7YZE~8!rhoh9^1swu(z)d`4`toc3DD) z>l$o%y?D%uBa=MqaQ^bO_^h%(m-y?(IhD-gmMN*!{$jAr>QvdLFOPMp#M-2tRBwnrV z0W}sKj!byiEnd3$e<%B727yUZhh|I9G1(2!;&MH*T+8J2ek)skuAa67qGyoL< zVwflpPlh{9uV}DHq|BcCLoH&r5r@y@%Fr2Mx&ni5erCn9eCLeuw=;*q#OyyddL3i{8H5zMN2hi}zdB2#`ux9@Oi zk!y6YczJnK72C?;PpBWyI`AZcaL_=nbYF4N*ZF2`mS7$fM2RPI0g#za^40+5j9d8m zy`6Vx9<(?*^-xgvEL9h|3ZhQhF>`Top%)>;06D!fw0H zgDi>enc(a0-QIo&pTav+C03SFWJ~N;m-TRKeLVvM#GiJ*VJ$M&ztL&+OiW~&mivy5 zSd12>8}t&s`jswM?WuzLZ*KTK+9+y`+GgHgWF5m)( zS~wuveOUiSxYCj+QygYc6CF>&DKlO~P#l~5OGG$?S11<+7HNYTIyg=zpw;7z5308lAF4)p(Z z4Sf05KsJ6E0BAyctcCW}cx{H%B5geKn(dtac6@0>)mwQz#tPcJOshl@i9dC=x&EGfg897= z&iIa_1iEZrT*@}Pit>uC-D+a}Uj~BP&XdQEK3=vQYVe;WDU=%dsnj0$)yE;3E0mCbYL4x}GN|@dA4n@;;p+LmdmVk_K z60j7OtA0ilJjj9IXvFYJH&1A|YqP-*ze`58(KyszA+&uF17c;kG8Xz@xl(ba)6mwo z{A`w4n^ZS<{>mT+Qm@pihpQEK7WPsp(&*^{p=2FA&Ca!@C5hr`(hxk%=kb zj@S@f0^MRMv5Fwgs6kT@C1 zekT*V4$Z+}lpH8^+(x}dr?}^$)(~)A3_JI+Z>+p-$IwJ53|7%c?vDu+ONNtw!|1t> zw|Dz?F}=^yWZ9X1^?dt+5$xE0^Y?Emqs3Fqe@a?8Sh9@l_|+kUx6cg*3JZ;FzWF2= ziX>&*vGB?9xX`NPCD$H*owh4fV_qXCnR010U*!*{IUxHY7V`rkt2#QnGIrn3k~WZG zN~Rc}2%-e39jLu4xg0REpEt6D=QTwLTw1^iG&lE`jVGsU;ULp;C;oVwre#Zg6-WEl zX}ccxTn=Y}`;0zLUgkLg(J2@c2aQVTL-5+Bl5_HEt223?3L0GZ>`1`Qd%cYBU>kG? zT-bPdOx%9e-$ENXSc1vsEO052kIEEGF`fkPJ1Y`; zDGNAL`t#FY6>(W~$u1MwHY2J;6hRl9e2qAb%1D*+*-JC`h`3SfYsdL(xZY4>PS7Sw zfg}ZrQD2LDUhmpVuAA#<3f#uo!k6owYxx)gDpdttBgpw{h3(b%BtnwlP+k#fKY;WA z!vK0Ibw_hY`*$T}Wo0!~ArpYz&enuZ&d$6+vIMG1($kV(lTOdiE$!{?Q#MrmsKt*!#+?UBm6H( zQLHZaz!N-pQc)?aVy+~1NCT%%2;@yBhw0JkE&1DMLhuRF#WiUU3D`*vbWd|nPm8Qu zYxHwGN1)ih74%dh7^V>i*LHBiZ0zLGQVAflv$jUby{uSU#|yb?AKBYur1C!~3e)rf zSr3suz70hM$S*D~BG3%&Uy9>~7Y3W*CmCCmK(|w6ss3|C@pQ~oWw8NuF5<}983!>j zF6!uD}u@S>FnRir_Wo%H5xnnP6$7_A)U`NjOa+_x+aE)*{az;Wdh7C;lU1ht^d) zKC+=UA*)>M->)yXw_4u^-U8xOXJ==>WM}_+c=!;wAxjz!pYwEyIuO~e*+Bi%b*W;e znf`)=$jlzD6cAZpGEexH4p4O5PD6I7czk@^?Yeqn`_{7d-@c7i$WrnbYvuGRz8vK{ z7@h*CahVOCbU>-HKwpJ41t&@_<;ThV^U**I6oZmQYN6Kp>T2JhJe7ADSL9Ww_{fs* zxbHSLGJ3)cC7Tj`JI9u;z&U?>tqKHl$bp94XL^6MIf59RRtI)>txl}ejDQegWa>dC zFgpBC7Uyb*Uw0-*4)zKl91%229E6yhly|TB3WdysnBv>H-E5^NecH9rlqdQGXZ3+( zD0K;0%b}2$b9lZWjtm??kU(6@%g=xDE}w0qbMjpeUf%z*1{`|8_OYt12P@a56bD z5zLAne(pZ8>b}kl%5$1oJrmleoV+y2%gK2R09@x^iQe2BbsI`mgWG zJsZcm8mEqkIwO3zKEOfz;pyo~7gQ<$hzW*Q|B9SfUB}19o{IMUUJ0U$28A;H<+;7k zm^kzJOn44`^KTzcPEHD}c(SMwW1biHcF}2VL?$15ZfrVT-#vo#+CEda%`&O8Yq zKls7E^Wqm4vP1^tCI9sFR5jZC&V96z!yrQ&(F`9P@{geFejk_2V|WG zBme*>MJ}=P1J2rZ)>28=4uao#0D!!- Lic~GwEc|}}%^C#K literal 0 HcmV?d00001 diff --git a/mi-scale/logo.png b/mi-scale/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9e6973992ebe192f76e1d08c1c325d27d9faa7 GIT binary patch literal 9378 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 literal 0 HcmV?d00001 diff --git a/mpd/CHANGELOG.md b/mpd/CHANGELOG.md new file mode 100644 index 0000000..1992c99 --- /dev/null +++ b/mpd/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.7.2 - 2022-08-17 + +* 首次推出 diff --git a/mpd/DOCS.md b/mpd/DOCS.md new file mode 100644 index 0000000..6c15805 --- /dev/null +++ b/mpd/DOCS.md @@ -0,0 +1,62 @@ +# 配置项说明: + +下面是插件作者的建议: + +```yaml +media_folder: /media/mpd/media +playlist_folder: /media/mpd/playlists +volume_normalization: false +httpd_output: false +``` + +### 音量标准化 + +启用内置的音量标准化功能。 + +### httpd输出 + +启用 httpd 音频输出。 + +### 媒体文件夹 + +此选项允许你指定自定义媒体文件夹。 + +### 播放列表文件夹 + +此选项允许你指定自定义播放列表文件夹。 + +### 详细 (可选项) + +`MPD` 详细日志参数。 + + +### 自定义配置 (可选项) + +**如果指定此选项,则忽略所有其他选项。** + +此选项允许你为 MPD 指定自定义配置文件。 +为了将所有 MPD 文件保存在一个位置,己将路径前缀限制为“/share/MPD ”。 +请使用插件的默认 [MPD.conf](https://github.com/poeschl/hassio-addons/blob/main/mpd/root/etc/mpd.conf )作为参考。 +如果你的配置有问题,请查阅官方文档[MPD Docs](https://www.musicpd.org/doc/html/user.html#configuration),找解决方法。 + +# 故障排除 + +### `RTIOThread could not get realtime scheduling, continuing anyway: sched_setscheduler` + +此错误显示在任何非 glibc 系统(如 Alpine Linux)上。MPD 应该在没有它的情况下工作。 +更多请看这里: [MPD Issue](https://github.com/MusicPlayerDaemon/MPD/issues/218) + +### `Failed to open '/data/database/mpd.db': No such file or directory` + +当数据库不存在时,此错误在第一次启动时显示。它将在第二次运行时出现。 + +# MPD + +要从HA连接,请使用以下配置: + +```yaml +media_player: + - platform: mpd + host: 243ffc37-mpd + port: 6600 +``` diff --git a/mpd/README.md b/mpd/README.md new file mode 100644 index 0000000..7e786f0 --- /dev/null +++ b/mpd/README.md @@ -0,0 +1,11 @@ +# 冬瓜甄选addons: MPD + +## 关于 + +[MPD](https://www.musicpd.org)是一款免费的开源音乐播放器。它可以播放音频文件、组织播放列表并维护音乐数据库。本插件中包含有简易的WEB前端[YMPD](https://ympd.org/)。 + + + +## 来源 + +https://github.com/Poeschl/Hassio-Addons/tree/main/mpd diff --git a/mpd/config.yaml b/mpd/config.yaml new file mode 100644 index 0000000..ed7540f --- /dev/null +++ b/mpd/config.yaml @@ -0,0 +1,43 @@ +name: MPD +version: 1.7.2 +slug: mpd +panel_icon: mdi:music-circle +description: >- + 音乐播放器守护进程是一个免费和开源的音乐播放器。它播放音频文件,组织播放列表和维护音乐数据库 +url: https://gitcode.com/waxgourd/addons +ingress: true +ingress_port: 6680 +arch: + - armv7 + - armhf + - aarch64 + - amd64 + - i386 +image: ghcr.nju.edu.cn/poeschl/ha-mpd-{arch} +init: false +audio: true +devices: + - /dev/snd +map: + - share:rw + - media:rw +ports: + 6680/tcp: null + 6600/tcp: 6600 + 8000/tcp: null +ports_description: + 6680/tcp: Web Frontend (Not needed with ingress feature) + 6600/tcp: MDP Connection + 8000/tcp: HTTPd Connection (if enabled) +options: + media_folder: /media/mpd/media + playlist_folder: /media/mpd/playlists + volume_normalization: false + httpd_output: false +schema: + media_folder: match(/share/.+|/media/.+|(smb|nfs)://.+) + playlist_folder: match(/share/.+|/media/.+|(smb|nfs)://.+) + volume_normalization: bool + httpd_output: bool + verbose: bool? + custom_config: match(/share/mpd/.+)? diff --git a/mpd/icon.png b/mpd/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0063045927fe6b2cdbcbb61daa0324446c07f827 GIT binary patch literal 11628 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 literal 0 HcmV?d00001 diff --git a/mpd/logo.png b/mpd/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fd42286764978bc058e6adc9f2d4c1acfb614e2c GIT binary patch literal 10454 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 + +profile portainer_addon flags=(attach_disconnected,mediate_deleted) { + #include + + capability, + file, + signal, + mount, + umount, + remount, + network udp, + network tcp, + network dgram, + network stream, + network inet, + network inet6, + network netlink raw, + network unix dgram, + capability setgid, + capability setuid, + + +# S6-Overlay + /init ix, + /run/{s6,s6-rc*,service}/** ix, + /package/** ix, + /command/** ix, + /run/{,**} rwk, + /dev/tty rw, + /bin/** ix, + /usr/bin/** ix, + /usr/lib/bashio/** ix, + /etc/s6/** rix, + /run/s6/** rix, + /etc/services.d/** rwix, + /etc/cont-init.d/** rwix, + /etc/cont-finish.d/** rwix, + /init rix, + /var/run/** mrwkl, + /var/run/ mrwkl, + /dev/i2c-1 mrwkl, + /dev/fuse mrwkl, + /dev/sda1 mrwkl, + /dev/sdb1 mrwkl, + /dev/nvme0 mrwkl, + /dev/nvme1 mrwkl, + /dev/mmcblk0p1 mrwkl, + + # Data access + /data/** rw, + + # suppress ptrace denials when using 'docker ps' or using 'ps' inside a container + ptrace (trace,read) peer=docker-default, + + # docker daemon confinement requires explict allow rule for signal + signal (receive) set=(kill,term) peer=/usr/bin/docker, + +} diff --git a/portainer/config.json b/portainer/config.json new file mode 100644 index 0000000..5d42cc8 --- /dev/null +++ b/portainer/config.json @@ -0,0 +1,50 @@ +{ + "arch": [ + "aarch64", + "amd64", + "armv7" + ], + "backup_exclude": [ + "backups", + "docker_config/cli-plugins" + ], + "codenotary": "wghaos@163.com", + "description": "轻松管理您的Docker环境", + "docker_api": true, + "hassio_api": true, + "image": "ghcr.nju.edu.cn/alexbelgium/portainer-{arch}", + "ingress": true, + "ingress_port": 1337, + "ingress_stream": true, + "init": false, + "map": [ + "share:rw", + "ssl" + ], + "name": "Portainer", + "options": { + "certfile": "fullchain.pem", + "keyfile": "privkey.pem", + "password": "homeassistant", + "ssl": false + }, + "panel_icon": "mdi:docker", + "ports": { + "8000/tcp": null, + "9099/tcp": 9000 + }, + "ports_description": { + "8000/tcp": "Edge Agent Api (Enable when managing remote edge agents)", + "9099/tcp": "Web UI port" + }, + "schema": { + "certfile": "str", + "keyfile": "str", + "password": "str?", + "ssl": "bool" + }, + "slug": "portainer", + "udev": true, + "url": "https://gitcode.com/waxgourd/addons", + "version": "2.19.4-3" +} diff --git a/portainer/icon.png b/portainer/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3e7635b7253fd616befd31c488900dcb52357c74 GIT binary patch literal 3080 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 literal 0 HcmV?d00001 diff --git a/portainer/logo.png b/portainer/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3e7635b7253fd616befd31c488900dcb52357c74 GIT binary patch literal 3080 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 literal 0 HcmV?d00001 diff --git a/portainer/translations/en.yaml b/portainer/translations/en.yaml new file mode 100644 index 0000000..383947d --- /dev/null +++ b/portainer/translations/en.yaml @@ -0,0 +1,16 @@ +--- +configuration: + certfile: + name: certfile + description: >- + ssl certificate, must be located in /ssl. + password: + name: password + description: >- + define admin password. If kept blank, will allow manual restore of previous backup. At least 12 characters. + keyfile: + name: keyfile + description: >- + sslkeyfile, must be located in /ssl. + ssl: + name: ssl \ No newline at end of file diff --git a/portainer/translations/zh-Hans.yaml b/portainer/translations/zh-Hans.yaml new file mode 100644 index 0000000..a39a73c --- /dev/null +++ b/portainer/translations/zh-Hans.yaml @@ -0,0 +1,16 @@ +--- +configuration: + certfile: + name: 证书文件 + description: >- + SSL证书,必须位于/ SSL目录下。 + password: + name: 密码 + description: >- + 定义admin密码。如果保持空白,将允许手动恢复以前的备份。至少12个字符。 + keyfile: + name: 密钥 + description: >- + ssl密钥,必须位于/SSL目录下。 + ssl: + name: ssl \ No newline at end of file diff --git a/samba-easy-nas/DOCS.md b/samba-easy-nas/DOCS.md index c2a46f4..12e2fbc 100644 --- a/samba-easy-nas/DOCS.md +++ b/samba-easy-nas/DOCS.md @@ -25,9 +25,8 @@         允许那些IP地址或IP段可以访问本服务。非特殊需求可不做修改。 ### 网络适配器: -        用于绑定特定的网络适配器,如虚拟网络适配器较多的情况下在访问不到本服务,则可以调整一下网卡的先后次序。 +​ 这里填写samba使用的网络适配器,x86一般为enp2s1,其他的end0,最好net info命令查看一下。 ### 本地存储器: -        挂载的本地存储器的路径,可根据个人需求更改。 支持文件系统“NTFS、FAT32、FAT16、EXT3、EXT4“等。 - +        挂载的本地存储器(填写sda1或sdb1),查看host主机中挂载的盘位于/dev。 支持文件系统”FAT32、FAT16、EXT3、EXT4“等。 diff --git a/samba-easy-nas/config.yaml b/samba-easy-nas/config.yaml index bd64aad..611de35 100644 --- a/samba-easy-nas/config.yaml +++ b/samba-easy-nas/config.yaml @@ -128,9 +128,7 @@ options: - fc00::/7 interfaces: - end0 - - eth0 - - wlan0 - - virtbr0 + - enp2s1 schema: username: str password: password diff --git a/samba-easy-nas/translations/zh-Hans.yaml b/samba-easy-nas/translations/zh-Hans.yaml index a105fc8..65d0bf2 100644 --- a/samba-easy-nas/translations/zh-Hans.yaml +++ b/samba-easy-nas/translations/zh-Hans.yaml @@ -27,8 +27,8 @@ configuration: interfaces: name: 网络适配器 description: >- - 这里填写samba使用的网络适配器. + 这里填写samba使用的网络适配器,x86一般为enp2s1,其他的end0,最好net info命令查看一下. localdisks: name: 本地存储器 description: >- - 挂载的本地存储器的路径. \ No newline at end of file + 挂载的本地存储器(填写sda1或sdb1),查看host主机中挂载的盘位于/dev. \ No newline at end of file