From a Skin to an App for Linux Alpine Configuration Framework
commonly called ACF
⚠️ Project in constent dev, please report errors!
This project cover ONLY Alpine Linux ACF Core Modules. Just the base framework (acf-lib
/ acf-core
/ acf-alpine-baselayout
). Other app not covered for now eg: acf-openssl
acf-docker
acf-etc...
It's part of a future project, maybe...
All other core pages should modified once all dashboard modules are in prod (finished)
Up to date shell script setup Lua 5.4
PATH=/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/root/bin
# Package for Alpine ACF Lua 5.4
apk add gcc musl-dev make pkgconfig asciidoc lua5.4 lua5.4-dev lua5.4-libs lua5.4-md5 haserl-lua5.4 git || exit 1
# Export config lib lua 5.4
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
# Clone all Lua 5.4 repos
git clone https://github.com/trinity-labs/acf-core-lua5.4
git clone https://github.com/trinity-labs/acf-lib-lua5.4
git clone https://github.com/trinity-labs/lua5.4-subprocess
git clone https://github.com/trinity-labs/dashboard-skin
# build Libs
cd ~/acf-lib-lua5.4
make install
# build ACF
cd ~/acf-core-lua5.4
make install
# build Lua Subprocess
cd ~/lua5.4-subprocess
make clean
make install
# Setup Dashboard
cp ~/dashboard-skin/acf.conf /etc/acf/
cp -r ~/dashboard-skin /usr/share/acf/www/skins/dashboard
rm -vf /usr/share/acf/www/skins/dashboard/acf.conf
#Done
exit
✅ Lighttpd Ready - Remove Mini_httpd
- Features
Light-weight App (Less than 2 MB) installed
ACF System Version - ASV
Fisrt check Alpine Linux
running version
Then compare to Alpine official Releases website
Finaly build latest version post url
from Alpine official website eg :
So we have a basic version checker in Lua
that need WAN
access and DNS
avaible
ACF System Self-check - ASS
Return Lua
ACF used version (5.4.6) and ACF Server
version :
- Lighttpd: v.1.4.71 => last released on May 27, 2023 - Light, Fast & Highly customisable | ACF on Lighttpd
- Mini_httpd: v.1.30 => last released on Oct 26, 2018
Lua
function, check version of both lighttpd
and mini_httpd
. If lighttpd
is install on system, command return lighttpd
as prefered ACF server.
However, it's the best choice to switch to lighttpd
for ACF
ACF System Uptime - ASU
Get live uptime timer in Lua
and JS
to parse /proc/uptime
in major Linux distro to convert seconds in human readeable value and up to centuries
ACF CPU Manufacturer - ACM
Return CPU Model
and Manufacturer
icon. If know, return board
and bios
infos - (please report errors)
ACF CPU Temp - ACT
Get live proc temp (checked every seconds) from /sys/class/thermal/thermal_zone2/temp
(seems target x86_pkg_temp
on main x86 systems - please report errors)
else print NaN
ACF [Group] [Process] - [Short-Name]
This is the convention for ACF Dashboard Core Modules Naming.
When a module is in prod, it's pushed here!
- ANG (ACF Network Graph) and ANM (ACF Network Map) work in progress, incoming ...
- ADV (ACF Disk Viewer) work in progress, incoming ...
- Install
Install essential packages :
Edit ACF core config file /etc/acf/acf.conf
and replace following lines for overriding core template
...
# Directories where the application resides
...
appdir=/usr/share/acf/www/skins/dashboard/app/,/usr/share/acf/app/
libdir=/usr/share/acf/www/skins/dashboard/lib/,/usr/share/acf/lib/
wwwdir=/usr/share/acf/www/skins/dashboard/www/,/usr/share/acf/www/
staticdir=/skins/static/
skindir=/skins/,/userskins/
...
...
# ACF is skinnable - this specifies the active skin
# will attempt to load skin/basename(skin).css
skin=/skins/dashboard
...
⚠️ CPU Temp bugs - Network Chart only eth0 - Disk Partition to be continued, etc: Please be patient!
- Logon
- Dashboard