All Projects → lisaac → luci-in-docker

lisaac / luci-in-docker

Licence: AGPL-3.0 license
LuCI running in docker, use for manager config files for other containers.

Programming Languages

javascript
184084 projects - #8 most used programming language
lua
6591 projects
HTML
75241 projects
CSS
56736 projects
shell
77523 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to luci-in-docker

luci-app-vssr
A new SSR SS V2ray Trojan luci app bese luci-app-ssr-plus
Stars: ✭ 22 (-69.44%)
Mutual labels:  luci
luci-app-dnscrypt-proxy2
LuCI support for dnscrypt-proxy version2 https://github.com/DNSCrypt/dnscrypt-proxy
Stars: ✭ 25 (-65.28%)
Mutual labels:  luci
openwrt-package
No description or website provided.
Stars: ✭ 182 (+152.78%)
Mutual labels:  luci
aliyundrive-webdav
阿里云盘 WebDAV 服务
Stars: ✭ 5,371 (+7359.72%)
Mutual labels:  luci-app
luci-openwisp
OpenWISP configuration interface implemented as LuCI extensions
Stars: ✭ 21 (-70.83%)
Mutual labels:  luci
istore
一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store for OpenWRT
Stars: ✭ 483 (+570.83%)
Mutual labels:  luci
NueXini Packages
Packages for OpenWrt【每日更新luci-app OpenWrt Packages】
Stars: ✭ 269 (+273.61%)
Mutual labels:  luci-app
Openclash
A Clash Client For OpenWrt
Stars: ✭ 4,680 (+6400%)
Mutual labels:  luci
nft-qos
QoS over Nftables (This packages is merged upstream, please visit openwrt/packages and openwrt/luci for more detail)
Stars: ✭ 45 (-37.5%)
Mutual labels:  luci
xiaomi-r3g-openwrt-builder
OpenWrt builder for any supported routers using Docker. Scheduled to run weekly
Stars: ✭ 25 (-65.28%)
Mutual labels:  luci
OpenAppFilter
基于OpenWrt的App过滤(上网管控)模块,支持抖音、斗鱼、王者荣耀、腾讯视频等上百款App过滤
Stars: ✭ 32 (-55.56%)
Mutual labels:  luci
Actions-OP
Autobuild openwrt using github actions | 自动编译你的专属openwrt固件
Stars: ✭ 19 (-73.61%)
Mutual labels:  luci-app

LuCI in Docker

License Telegram Group

  • 在使用 Docker 的过程中,很多容器的配置文件需要管理,使用过程中不少人对命令行及配置文件不熟悉,所以考虑将 luci 装入容器,配合 luci-lib-docker 以进行 Docker 容器的配置文件管理
  • luci-in-dockeropenwrtubus 去除,宿主为 alpine,方便后期增加插件
  • luci-in-docker 目的是将家用 NAS 服务全部部署在 Docker 中,并通过 luci 进行管理,从而实现 NAS IN DOCKER

lisaac/luci:latest

lisaac/luci:latest 内置 luci-app-dockerman luci-app-diskman luci-app-podsamba 等常用插件(陆续增加,以实现简单 NAS 功能),需要骨架 luci 请使用 lisaac/luci:nano

tips: 由于 luci-app-diskman luci-app-dockerman 中的依赖较多,第一次启动安装依赖可能会比较慢,需要多等一会,通过 docker logs luci 可以看到运行日志

docker pull lisaac/luci:latest
docker run -d \
  --name luci \
  --restart unless-stopped \
  --privileged \
  -p 80:80 \
  -p 7682:7682 \
  -e TZ=Asia/Shanghai \
  -v $HOME/pods/luci:/external:rslave \
  -v /media:/media:rshared \
  -v /dev:/dev:rslave \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --tmpfs /tmp:exec \
  --tmpfs /run \
  lisaac/luci:latest

lisaac/luci:nano

  • lisaac/luci:nano 版本只包含 luci 骨架,不含内置插件, 可以根据自己需要安装插件,插件目录结构请参考下一章节。
docker pull lisaac/luci:nano
docker run -d \
  --name luci \
  --restart unless-stopped \
  --privileged \
  -p 80:80 \
  -p 7682:7682 \
  -e TZ=Asia/Shanghai \
  -v $HOME/pods/luci:/external:rslave \
  -v /media:/media:rshared \
  -v /dev:/dev:rslave \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --tmpfs /tmp:exec \
  --tmpfs /run \
  lisaac/luci:nano

目录结构

/
  |- external         # 外部目录,需要外部挂载
    |-cfg.d
      |-config        # UCI cofnig 目录,用于存放配置文件,启动后 link 至/etc/config
      |-crontab       # crontab
      |-periodic      # crond 定期执行目录
      |-rc.local      # rc.local 本地启动执行脚本
      |-shadow        # 密码保存
    |-plugin          # 插件目录
      |-luci-app-diskman    # 插件,会忽略以 _ 开头的目录,方便调试,插件结构如下:
        |-Makefile    # 判定有效插件目录标志
        |-root        # 插件所需的 root 目录,合并至/tmp/.luci/
        |-luasrc      # 插件所需的 lua 文件目录,合并至/tmp/.luci/usr/lib/lua/luci
        |-htdocs       # 插件所需的 html 文件目录,合并至/tmp/.luci/www
        |-po          # 插件所需的 po 文件目录
        |-depends.lst # 插件所需要 alpine 依赖列表文件, 依赖用' '隔开, 只用来存放 alpine 依赖
        |-preinst     # 插件所需的初始化脚本(合并前)
        |-postinst    # 插件所需的初始化脚本(合并后), 若没有此脚本, 会尝试执行 /root/etc/uci-defaults/ 下的插件初始化脚本
      |-...
  |- internal         # 内部 luci-in-docker 自带插件目录(用户无需关心)
    |-plugin          # 内部插件目录
      |-luci          # luci 目录
        |-Makefile    # 判定有效插件目录标志
        |-root        # 插件所需的 root 目录,合并至/tmp/.luci/
        |-luasrc      # 插件所需的 lua 文件目录,合并至/tmp/.luci/usr/lib/lua/luci
        |-htdocs       # 插件所需的 html 文件目录,合并至/tmp/.luci/www
        |-po          # 插件所需的 po 文件目录
        |-depends.lst # 插件所需要 alpine 依赖列表文件, 依赖用' '隔开, 只用来存放 alpine 依赖
        |-preinst     # 插件所需的初始化脚本(合并前)
        |-postinst    # 插件所需的初始化脚本(合并后)
      |-...
  |tmp
    |-.luci           # 合并后的 luci root 目录
  • 通过遍历 internal/external 目录下 plugin 中的各个插件目录,将其合并至 /temp/.luci 目录中,并修改 path 环境变量
  • 同时保证兼容性和持久性 config 目录存储位置为 external/cfg.d/config, 挂载至 /etc/config
  • 遍历时先执行preinst,插件目录合并到 /temp/.luci 后,会通过 apk add 方式安装插件目录下 depends.lst 中需要的依赖,最后执行插件目录下 postinst

插件

  • 插件合并时不会执行按照 Makefile 编译,所以需要编译完成后 ipk 中的 data 目录中的内容,或者纯 lua 源码 + 二进制文件
  • 插件中 po 目录下的翻译文件会自动转换成对应 lmo,并合并至 luci/i18n 目录
  • 插件中依赖文件 depends.lstalpine 依赖,并非 openwrt 中的依赖
  • 插件中的 preinstpostinst 是在遍历插件目录执行的,可能执行 preinstpostinst 存在依赖其他插件的情况,可以将插件目录开头的加上数字,来确定遍历顺序
  • 插件目录名若以 _ 开头,则会跳过此插件

谢致

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].