(OpenWrt Wiki) LuCI Essentials
(OpenWrt Wiki) LuCI Essentials
(OpenWrt Wiki) LuCI Essentials
You are here / / Documentation / User guide / LuCI web interface / LuCI essentials
LuCI essentials
This article relies on the following:
Introduction
While OpenWrt can be managed completely using SSH () and the terminal, the LuCI WebUI
makes many administration tasks easier.
The OpenWrt full releases, such as the current
18.06.x series, ship with the LuCI WebUI installed.
But for lower-memory devices, such as
those with 4MBytes Flash and/or 32MBytes of RAM, the full install may fail because of
lacking sufficient Flash memory so you will have to build your own image with LuCI included.
More info on this can be obtained here.
Instructions
1. Basic installation
Connect to your router via SSH () and install the packages.
opkg update
2. Providing encryption
Connect to your router via SSH () and install the packages.
opkg update
/etc/init.d/uhttpd restart
Reload LuCI interface and verify that you are using HTTPS ().
https://openwrt.org/docs/guide-user/luci/luci.essentials 1/6
15/9/21 11:40 [OpenWrt Wiki] LuCI essentials
opkg update
You can also install multiple language packs and switch between them in the LuCI settings.
opkg update
5. Alternative ports
Use alternative ports:
HTTP () - 8080/TCP ()
HTTPS () - 8443/TCP ()
Extras
Details
LuCI is installed as a 'meta package' which installs several other packages by having these
defined as a dependency.
Notably, it installs the uHTTPd web server, configured for use with
LuCI.
In case you want to use uHTTPd, there is little configuration necessary as uHTTPd is
configured with CGI to make LuCI work with the Lua interpreter.
By default this is organised
as follows.
By default /www is the standard document root.
Thus, by requesting this docroot
https://openwrt.org/docs/guide-user/luci/luci.essentials 2/6
15/9/21 11:40 [OpenWrt Wiki] LuCI essentials
(by pointing your browser to the devices IP () address) an index file such as index.html is
searched for (per uHTTPd settings).
The file /www/index.html (installed with LuCI) is
prepared such that when requested, it redirects you to /cgi-bin/luci , which is the default
CGI gateway for LuCI.
This is just a script, which basically calls Lua at /usr/bin/lua .
uhttpd
is configured by default to load pages as CGI in the /cgi-bin path, and thus starts serving
these pages with the /cgi-bin/luci script.
Configuration
/etc/config/uhttpd
/etc/config/luci
LuCI on lighttpd
luci.on.lighttpd
LuCI on nginx
For routers without significant space constraints running on snapshots/master or v19 or later,
it is possible to install using nginx.
LuCI on nginx is currently supported by using uwsgi as
plain-cgi interpreter.
You need to install one of this 2 variants of the LuCI meta-package:
luci-nginx - Autoinstall nginx, uwsgi-cgi and the default config file to make luci work on
nginx.
luci-ssl-nginx - Autoinstall nginx-ssl, uwsgi-cgi and the default config file to make luci
wok on nginx.
It does also create a self-signed certificate for nginx and redirect http traffic to https by
default.
Note that even when using nginx, exposing the LuCI interface to the Internet or
guest networks is not recommended.
Currently LuCI on nginx is fully supported (maybe only in master snapshots for now, as of
16-Feb-2019).
If any problem is found, report them to the support forum
(https://forum.openwrt.org/t/luci-on-nginx-compile/14580).
Offline installation
https://openwrt.org/docs/guide-user/luci/luci.essentials 3/6
15/9/21 11:40 [OpenWrt Wiki] LuCI essentials
Basic
liblua
libubus
libubus-lua
libuci-lua
lua
luci-base
luci-lib-ip
luci-lib-jsonc
luci-lib-nixio
luci-mod-admin-full
luci-theme-bootstrap
rpcd
uhttpd
Extended
luci
luci-app-firewall
luci-app-opkg
luci-proto-ipv6
luci-proto-ppp
Transfer the downloaded packages to your router onto the RAM disk and install them.
# Install packages
# Clean up
https://openwrt.org/docs/guide-user/luci/luci.essentials 4/6
15/9/21 11:40 [OpenWrt Wiki] LuCI essentials
#!/bin/sh
# Exit on error
set -e
# Configuration parameters
OWRT_USER="root"
OWRT_HOST="openwrt.lan"
OWRT_TEMP="/tmp/luci-offline"
if [ "${DISTRIB_RELEASE}" = "SNAPSHOT" ]
then OWRT_DIR="snapshots"
else OWRT_DIR="releases/${DISTRIB_RELEASE}"
fi
OWRT_URL="https://downloads.openwrt.org"
OWRT_CORE="libiwinfo libiwinfo-lua"
OWRT_COREURL="${OWRT_URL}/${OWRT_DIR}/targets/${DISTRIB_TARGET}/packages"
OWRT_BASEURL="${OWRT_URL}/${OWRT_DIR}/packages/${DISTRIB_ARCH}/base"
luci-mod-system luci-mod-network"
OWRT_LUCIURL="${OWRT_URL}/${OWRT_DIR}/packages/${DISTRIB_ARCH}/luci"
mkdir -p "${OWRT_TEMP}"
do
do
OWRT_PKGFILE="$(sed -n -r -e \
"/^Filename:\s${OWRT_PKG}[.0-9]*_.+\.ipk/s/^.*\s//p" \
"${OWRT_TEMP}/${OWRT_REPOURL##*/}/Packages")"
OWRT_PKGURL="${OWRT_REPOURL}/${OWRT_PKGFILE}"
done
done
rm -f -R "${OWRT_TEMP}"
References
LuCI is developed at GitHub (https://github.com/openwrt/luci)
LuCI issue tracker (https://github.com/openwrt/luci/issues)
https://openwrt.org/docs/guide-user/luci/luci.essentials 5/6
15/9/21 11:40 [OpenWrt Wiki] LuCI essentials
If you want to contribute to the OpenWrt wiki, please post HERE (https://forum.openwrt.org/t/applying-for-
openwrt-wiki-account/101671) in the forum or ask on IRC () for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
https://openwrt.org/docs/guide-user/luci/luci.essentials 6/6