[lighttpd] Web server (to replace Mongoose)



Staff member
A diagnostic named after me! I'm deeply touched and would like to thank my family, my agent etc. etc. (welling up now......)
Hmm.. nothing useful in that output I'm afraid. Can you try the diagnostic again (it does something different now)?


Active Member
Here you go !

>>> Beginning diagnostic rpb424
Running: rpb424
anacron - 2.3-1
auto-schedule-restore - 1.2
auto-unprotect - 1.0.9
auto-update - 2.0.0
badnts - 1.0.0
betaftpd - 0.0.8pre17-3
busybox - 1.20.2-1
bzip2 - 1.0.4
channeldel - 1.0.2
cifs - 2.6.18
cron-daemon - 1.18.3-1
dedup - 1.0.1
disable-dso - 0.2
disable-ota - 1.0.2
dlna-servername - 1.0.3
dropbear-ssh - 2013.59-1
epg - 1.0.13
fan - 1.0.0
ffmpeg - 0.10
file - 5.0.4
fix-disk - 0.4
hmt - 1.1.16
id3v2 - 0.1.11-1
inotify-tools - 3.14
jim - 0.75-1
jim-binary - 0.75
jim-cgi - 0.7
jim-oo - 0.75
jim-sqlite3 - 0.75
lamemp3 - 3.98.4
libreadline - 6.2-1
libutil - 0.9.29
lsof - 4.82
mongoose - 3.0.11
multienv - 1.7-1
nano - 2.2.6
ncurses - 5.9
network-shares-automount - 1.4-2
newk - 1.0.3
nfs-utils - 1.2.3-2
nicesplice - 1.5
ntpclient - 2010-365-4
openssl-command - 1.0.0.d
portmap - 6.0-1
procps - 3.2.8-3
python - 2.7.1-3
recmon - 1.0.0-1
redring - 2.11
renumber - 1.0.0
rs - 1.1.0
rsvsync - 1.0.3
rsync - 3.0.8
samba - 2.2.12-6
service-control - 1.2
smartmontools - 5.41
sqlite3 - 3.7.6-1
ssmtp - 2.64
stripts - 1.2.5-3
sweeper - 1.0.9-3
sysmon - 1.1.1
tmenu - 1.05
trm - 1.1
tvdiary - 0.0.2-7
unencrypt - 0.1.4
utelnetd - 0.1.9
vim-tiny - 7.3
virtual-disk2 - 2.0
webif - 1.0.11-3
webif-channelicons - 1.1.10
webif-charts - 1.2
>>> Ending diagnostic rpb424


Active Member
Not sure if this is intentional or not?

Installed lighttp - all worked ok
Removed lighttp - web interface stopped working (expected this)
Rebooted box
Lighttp still installed (and working)

So loos like it can't be removed once installed?

For info was wanting to try and go back to mongoose to compare what I was seeing on the screen with lighttp compared with previous display under mongoose


Active Member
This may not be specific to lighttp or safari but found the ok following bug using safari 5.1 and also safari 7.1.1 with lighttp

From main webif screen select mobile version
Press home icon on top right (back button will now be in top left)
Search epg menu item now does not work

If home is not pressed epg works fine

Suspect this is a software/programming bug and not related to lighttp but can't go back to mongoose to confirm


Staff member
There should be no problem removing it, although you will then need to re-enable Mongoose via the service command under telnet. Maybe the remove didn't finish working properly because the web interface was shut down halfway through?

If you get command line access via telnet, then this should sort it out.

humax# opkg remove lighttpd
humax# service auto mongoose
humax# service start mongoose

If you just want to temporarily switch back to Mongoose then you can do:

humax# pkill lighttpd
humax# /mod/etc/init.d/S01mongoose start


Active Member
Thanks af123 (it's Z01mongoose not S01mongoose on my install)

Have checked with mongoose and bug as above does not occour. Hitting the home button on first entry does not cause the back button to appear and EPG search still works.

Also was able to repeat bug with other browsers so looks like it is something specific to lighttp and whatever the home icon does in the mobile version of webif.


Active Member

With mongoose home button has no effect on first entry however if a menu option is selected then home used to go back to the main screen the EPG Search button does not work

if home button is used to return to home screen EPG search does not work in mongoose or lighttp
In lighttp however this can occour when the home button is pressed when already on the home screen
In mongoose the home button has no effect when on the home screen

Don't suspect the above is really going to worry anyone but it's got me curious as to why the difference?

Ezra Pound

Well-Known Member
Thanks af123 (it's Z01mongoose not S01mongoose on my install)
For a file to auto-run from start up it MUST start with 'S' if it's called anything else (even s01mongoose) it won't, so I guess something renamed S01mongoose to Z01mongoose in order to stop it auto-running, either the auto run option in 'service' or the lighttpd package installer


New Member
The last one was to properly support Safari under IOS7 and that required disabling any type of connection persistence or pipelining which has a direct impact of the performance of the web site. For those people who expose the web interface to the Internet via the HTTPS interface, Mongoose also doesn't support the latest encryption protocols and algorithms.

Hi af123, thanks for the review and for the report.

You've mentioned two reasons why Mongoose is slow. First is the disabling pipelining, and the second one is new encryption algos support for HTTPS. Could you elaborate on keep-alive support disabling please? What lighttpd does differently with respect of ios7 and pipelining?

Mongoose doesn't implement HTTPS on it's own, so doesn't lighttpd. They both use SSL library to do the encryption. Is lighttpd using different SSL library? I am curious where does the difference with regard to HTTPS come from.

Are there any other reasons why mongoose is slow? I'd appreciate any comment.

Thank you for the review. For the note, I am the author of mongoose.


Wallace, did you get to the bottom of the IOS 7.1.1 problem. My iPad mini wants to update, but I don't want to bring in more issues.

Sent from my iPad using Tapatalk


Traveler 34122
I didn't take it any further. Having installed lighttpd, I tried to remove my WebIf password. Unfortunately it got messy as mongoose appeared to be involved in the process and because installing lighttpd had disabled it, I got a bit stuck in a loop.

In the end I set the HDR to =RMA=, installed the vanilla FW, then CF. so started from scratch.

I have not since installed lighttpd, so have not been able to check if the issue with iOS v7.1.1 remains. Sorry.


Staff member
I'd appreciate any comment.

We've hit a number of problems with mongoose and different browsers over the last year that have required patches or even the wholesale disabling of features like persistence. For example, Chrome doesn't like a content type being specified in 304 responses (it fails to retrieve the document from local cache) and IOS7 doesn't see the response to the second request in a persistent session with Mongoose. I don't know why the second problem occurs. A lot of the slowness probably does come down to the lack of persistence and also lack of native chunked transfer for CGI responses. Note that we're using Mongoose 3.0 which is fairly old now and some things may be better in newer versions although at least the Chrome problem looks like it is still present.

The patches in our version of Mongoose are at http://hpkg.tv/hdrfoxt2/src/mongoose.diffs

Mongoose and Lighttpd are both using the same OpenSSL library but configure it differently. Mongoose has a number of deficiencies here such as supporting weak encryption ciphers, allowing the web browser to choose cipher order and not negotiating forward secrecy.
I put a Humax running both web servers onto the Internet and ran the Qualys SSL labs tool against them. Same Humax, same SSL library, same encryption key and certificate. The screenshots below show an extract of the results for each server.

ssllabs.lighttpd.png ssllabs.mongoose.png


Traveler 34122

I have now installed lightpd on my HDR [Green] and can confirm it works OK with my iDevices running iOS 7.1.1

Whether taking the box back to =RMA= and starting from scratch helped, I have no idea. Nothing on my network has/had changed.



Staff member
Thanks... I can't work out why you had the problem but I'm glad it's working now.


Traveler 34122
Neither could I. But it was really slow before the re-install. I mean that the pages would take an age to load. The progress bar just got so far then stalled. That doesn't happen now. Pages load really fast.


Active Member
For info:

Have been using webif with lighttpd since last Thursday both for normal use and trying as many options as I could.

Not rigorous testing but have tested many combinations and not found amy bugs other than the one with the mobile version of webif as listed above

All testing on an iPad with various browsers as mentioned earlier.


Staff member
Don't suspect the above is really going to worry anyone but it's got me curious as to why the difference?

When you select the 'mobile version' link on the main page, that takes you to http://humax/m/. mongoose looks in the directory first for a file called index.shtml which contains a redirect to /m/index.jim. That means the first time you see the mobile menu your browser is pointing at /m/index.jim. Lighttpd looks for index.jim first so the browser stays at /m/. When you click on the home icon, then you're on /m/index.jim.

It's just a configuration difference between the two but that's why you're seeing slightly different behaviour. You're right in that the underlying problem is a coding error. I'm upgrading to the latest version of jquery mobile and will rejig the code around to fix things before the next release.


Staff member
New version of the lighttpd package now in the repository. This version should work with the custom portals and you should be able to install it now @rpb424 as I've removed the conflict statement, although I'm still not sure why it was triggering.
Otherwise just minor changes so that it can effectively replace mongoose at some point. There are hooks in the custom firmware that check for the existence of Mongoose at start up to determine whether the initial web interface should be started so I've added code to deal with that should mongoose be removed. Future CFW versions will also be updated.
There's also a new tmenu package which changes the remove webif password option to suppress errors if Mongoose isn't around.


Active Member
Thanks af123, that's done the trick, though I had to reboot following the update as the webif froze altogether. All's well that ends well though!