Files
Hosted Weblate a2cc0c39d2 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 69.8% (178 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Italian)

Currently translated at 82.8% (2494 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/it/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 83.6% (189 of 226 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 92.0% (2774 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (172 of 172 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 81.6% (40 of 49 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (17 of 17 strings)

Translation: OpenWrt/LuCI/applications/omcproxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsomcproxy/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (91 of 91 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 76.6% (59 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 76.4% (91 of 119 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 75.6% (84 of 111 strings)

Translation: OpenWrt/LuCI/applications/radicale3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale3/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (59 of 59 strings)

Translation: OpenWrt/LuCI/applications/dump1090
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdump1090/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 80.5% (405 of 503 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.4% (193 of 196 strings)

Translation: OpenWrt/LuCI/applications/unbound
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsunbound/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (64 of 64 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/lt/

Translated using Weblate (Russian)

Currently translated at 100.0% (3012 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 95.4% (42 of 44 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.3% (42 of 47 strings)

Translation: OpenWrt/LuCI/applications/advanced-reboot
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadvanced-reboot/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 52.8% (266 of 503 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 61.1% (55 of 90 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 68.2% (174 of 255 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 75.1% (124 of 165 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (139 of 139 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (16 of 16 strings)

Translation: OpenWrt/LuCI/applications/pagekitec
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspagekitec/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 84.6% (11 of 13 strings)

Translation: OpenWrt/LuCI/applications/bcp38
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbcp38/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (178 of 178 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 97.9% (189 of 193 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.7% (2975 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.5% (382 of 422 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/zh_Hant/

Translated using Weblate (Italian)

Currently translated at 11.1% (56 of 503 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/it/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (64 of 64 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (72 of 72 strings)

Translation: OpenWrt/LuCI/applications/ocserv
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsocserv/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 93.3% (28 of 30 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (46 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (31 of 31 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 85.2% (249 of 292 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 50.9% (77 of 151 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 73.2% (134 of 183 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 60.2% (41 of 68 strings)

Translation: OpenWrt/LuCI/applications/chrony
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationschrony/zh_Hant/

Translated using Weblate (Russian)

Currently translated at 100.0% (86 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/ru/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (197 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.9% (182 of 184 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 84.8% (56 of 66 strings)

Translation: OpenWrt/LuCI/applications/sshtunnel
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssshtunnel/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 88.4% (130 of 147 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (21 of 21 strings)

Translation: OpenWrt/LuCI/applications/tor
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstor/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 82.3% (70 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/zh_Hant/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (196 of 196 strings)

Translation: OpenWrt/LuCI/applications/unbound
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsunbound/lt/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (162 of 162 strings)

Translation: OpenWrt/LuCI/applications/ustreamer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsustreamer/lt/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (74 of 74 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 74.3% (84 of 113 strings)

Translation: OpenWrt/LuCI/applications/libreswan
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslibreswan/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 95.5% (192 of 201 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 70.6% (106 of 150 strings)

Translation: OpenWrt/LuCI/applications/strongswan-swanctl
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstrongswan-swanctl/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 97.3% (73 of 75 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 94.9% (94 of 99 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 46.7% (29 of 62 strings)

Translation: OpenWrt/LuCI/applications/apinger
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsapinger/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.9% (182 of 184 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (3012 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 84.9% (225 of 265 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 88.4% (130 of 147 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 95.4% (42 of 44 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 97.9% (189 of 193 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 73.2% (134 of 183 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (172 of 172 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.5% (2968 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (139 of 139 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 85.2% (249 of 292 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 76.9% (137 of 178 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (22 of 22 strings)

Translation: OpenWrt/LuCI/applications/wifihistory
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswifihistory/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.3% (42 of 47 strings)

Translation: OpenWrt/LuCI/applications/advanced-reboot
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadvanced-reboot/zh_Hant/

Translated using Weblate (German)

Currently translated at 100.0% (292 of 292 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/de/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Korean)

Currently translated at 82.5% (2486 of 3012 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ko/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 94.9% (94 of 99 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 80.5% (405 of 503 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 82.3% (70 of 85 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.4% (193 of 196 strings)

Translation: OpenWrt/LuCI/applications/unbound
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsunbound/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 97.3% (73 of 75 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (64 of 64 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/zh_Hant/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (47 of 47 strings)

Co-authored-by: Džiugas Januševičius <dziugas1959@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hyeonjeong Lee <h9101654@gmail.com>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Co-authored-by: ZW <roc_fe@users.noreply.hosted.weblate.org>
Co-authored-by: ssantos <ssantos@web.de>
Signed-off-by: Džiugas Januševičius <dziugas1959@hotmail.com>
Signed-off-by: Hyeonjeong Lee <h9101654@gmail.com>
Signed-off-by: Random <random-r@users.noreply.hosted.weblate.org>
Signed-off-by: SnIPeRSnIPeR <snipersniper@users.noreply.hosted.weblate.org>
Signed-off-by: ZW <roc_fe@users.noreply.hosted.weblate.org>
Signed-off-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsantiblock/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscoovachilli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfwknopd/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsminidlna/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqos/lt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsqos/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsrp-pppoe-server/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssamba4/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstinyproxy/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstransmission/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswatchcat/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationswol/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/zh_Hant/
Translation: OpenWrt/LuCI/applications/antiblock
Translation: OpenWrt/LuCI/applications/coovachilli
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/fwknopd
Translation: OpenWrt/LuCI/applications/minidlna
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/qos
Translation: OpenWrt/LuCI/applications/rp-pppoe-server
Translation: OpenWrt/LuCI/applications/samba4
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/tinyproxy
Translation: OpenWrt/LuCI/applications/transmission
Translation: OpenWrt/LuCI/applications/uhttpd
Translation: OpenWrt/LuCI/applications/upnp
Translation: OpenWrt/LuCI/applications/watchcat
Translation: OpenWrt/LuCI/applications/wol
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard
2026-04-14 22:34:56 +03:00
..
2026-02-04 06:46:30 +01:00
2026-02-04 06:45:51 +01:00
2026-02-04 06:45:51 +01:00
2026-02-04 06:46:30 +01:00

Dockerman JS

Notice

After dockerd v27, docker will remove the ability to listen on sockets of the form

xxx://x.x.x.x:2375 or xxx://x.x.x.x:2376 (or xxx://[2001:db8::1]:2375)

unless you run the daemon with various --tls* flags. That is, dockerd will refuse to start unless it is configured to use TLS. See here here and here.

ucode is not yet capable of TLS, so if you want dockerd to listen on a port, you have a few options.

Issues opened in the luci repo regarding connection setup will go unanswered. DIY.

This implementation includes three methods to connect to the API.

API Availability

rpcd/CGI (Proxy+)JS API Controller
API
File Stream
Console Start
WS Console
Stream endpoints
  • Stream endpoints are docker API paths that continue to stream data, like logs

Dockerman uses a combination of rpcd and ucode Controller so API, Console via ttyd and File Streaming operations are available. dockerd is configured by default to use unix:///var/run/docker.sock, and is secure this way.

It is possible to configure dockerd to listen on e.g.:

['unix:///var/run/docker.sock', 'tcp://0.0.0.0:2375']

when you have a Reverse Proxy configured and to open up the JS API.

Reverse Proxy

Use nginx or Caddy to proxy connections to dockerd which is configured with --tls* flags, or communicates directly with unix:///var/run/docker.sock, which adds the necessary Access-Control-Allow-Origin: ... headers for browser clients. You might even be able to run a docker container that does this. If you don't want to set a proxy up, use a browser plugin.

https://github.com/lucaslorentz/caddy-docker-proxy https://github.com/Tecnativa/docker-socket-proxy

LuCI

Included is a ucode rpc API interface to talk with the docker socket, so all API calls are sent via rpcd, and appear as POST calls in your front end at e.g.

http://192.168.1.1/cgi-bin/luci

All calls to the docker API are authenticated with your session login.

Controller

Included also is a ucode based controller to forward requests more directly to the docker API socket to avoid the rpc penalty, and stream file uploads and downloads. These are still authenticated with your session login. The methods to reach the controller API are defined in the menu JSON file. The controller API interface only exposes a limited subset of API methods.

JS API

A JS API is included in the front-end to connect to API endpoints, and it will detect how dockerd is configured. If dockerd is configured with any

xxx://x.x.x.x:2375 or xxx://x.x.x.x:2376 (or xxx://[2001:db8::1]:2375)

the front end will attempt to connect using the JS API. More features are available with a more direct connection to the API (via Proxy or using browser plugin), like WebSockets to connect to container terminals. WebSocket connections are not currently available in LuCI, or the LuCI CGI proxy.

CGI's job is to parse the request, send the response and disconnect.

Browser plug-in

To avoid setting up a Proxy, and attempt to communicate directly with the API endpoint, whether or not configured with -tls* options, you can use a plug-in. One which overrides (the absence of) Access-Control-Allow-Origin CORS headers (dockerd does not add these headers). For example:

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

https://addons.mozilla.org/en-US/firefox/addon/access-control-allow-origin/

https://addons.mozilla.org/en-US/firefox/addon/cors-unblock/

https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors/

The browser plug-in does not magically fix TLS problems when you have mTLS configured on dockerd (mutual CA based certificate authentication).

Architecture

High-Level Architecture

rpcd and controller

┌──────────────────────────────────────────────────────────────────┐
│                         OpenWrt/LuCI                             │
│                                                                  │
│  ┌─────────────────────┐                                         │
│  │   Browser / UI      │                                         │
│  │  containers.js      │                                         │
│  │  images.js          │                                         │
│  └──────────┬──────────┘                                         │
│             │                                                    │
│             │ 1. GET /admin/docker/container/inspect/id?x=y      │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │  LuCI Dispatcher         │                                    │
│  │  (dispatcher.uc)         │                                    │
│  │  - Parses URL path       │                                    │
│  │  - Looks up action       │                                    │
│  │  - Extracts query params │                                    │
│  └──────────┬───────────────┘                                    │
│             │                                                    │
│             │ 2. Call controller function(env)                   │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │  HTTP Controller         │                                    │
│  │  (docker.uc)             │                                    │
│  │  - container_inspect(env)│                                    │
│  │  - Gets params from env  │                                    │
│  │  - Creates socket        │                                    │
│  └──────────┬───────────────┘                                    │
│             │                                                    │
│             │ 3. Connect to Docker socket                        │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │  Docker Socket           │                                    │
│  │  /var/run/docker.sock    │                                    │
│  │  (AF_UNIX socket)        │                                    │
│  └──────────┬───────────────┘                                    │
│             │                                                    │
│             │ 4. HTTP GET /v1.47/containers/{id}/json            │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │  Docker Daemon 200 OK    │                                    │
│  │  - Creates JSON blob     │                                    │
│  │  - Streams binary data   │                                    │
│  └──────────┬───────────────┘                                    │
│             │                                                    │
│             │ 5. data chunks (32KB blocks)                       │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │  UHTTPd Web Server       │                                    │
│  │  - Receives chunks       │                                    │
│  │  - Writes to HTTP socket │                                    │
│  │  (no buffering)          │                                    │
│  └──────────┬───────────────┘                                    │
│             │                                                    │
│             │ 6. HTTP 200 + data stream                          │
│             V                                                    │
│  ┌──────────────────────────┐                                    │
│  │   Browser                │                                    │
│  │  - Receives data stream  │                                    │
│  │  - Processes response    │                                    │
│  │  - Displays result       │                                    │
│  └──────────────────────────┘                                    │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

Request/Response Flow

Container Export Flow

Browser               Ucode Controller     Docker
  │                      │                 │
  ├─ GET /admin/docker   │                 │
  │   /container/export  │                 │
  │   /{id}?abc123 ─────>│                 │
  │                      ├─ Get param 'id' │
  │                      │ from env.http   │
  │                      │                 │
  │                      ├─ Create socket  │
  │                      │                 │
  │                      ├─ Connect to     │
  │                      │ /var/run/       │
  │                      │ docker.sock ────>
  │                      │                 │
  │                      │ <─ HTTP 200 OK  │
  │                      │                 │
  │                      │ <─ tar chunk 1  │
  │                      │ <─ tar chunk 2  │
  │ <─ HTTP 200 OK ──────│ <─ tar chunk 3  │
  │ <─ tar chunk 1 ──────│ <─ ...          │
  │ <─ tar chunk 2 ──────│ <─ EOF          │
  │ <─ ...               │                 │
  │                      │                 │
  ├─ Done                │                 │
  │                      ├─ Close socket   │
  │                      │                 │

Socket Connection Details

┌──────────────────────────────────────┐
│     UHTTPd (Web Server)              │
│  [Controller Process]                │
└─────────────┬────────────────────────┘
              │
              │ AF_UNIX socket
              │ (named pipe)
              V
┌──────────────────────────────────────┐
│     Docker Daemon                    │
│  /var/run/docker.sock                │
└─────────────┬────────────────────────┘
              │
              │ HTTP Protocol
              │ (over socket)
              V
      Docker API Engine
      - Creates export tar
      - Sends as chunked stream