The nice thing about the plug-in system is that if the plugin is created
properly, it should be extremely simple to install. Look at it from
1. Default m0n0 is installed on device.
Nothing special here.
2. m0n0 is initially set up.
Again, nothing special
3. Download plug-in to m0n0wall using the firmware update method.
Starts to get interesting
4. Once downloaded, go to http<s>://<m0n0-ip>/exec.php
Now that the image is on m0n0wall. Magical things can start to happen
at this point.
5. Run the plug-in setup command<s>
Hopefully this will self extract, run a few commands to install the
software with default settings. Then remove any files from the download
directory on the m0n0wall. This depends on how well the plug-in is
6. Reboot (possibly not necessary if done correctly)
If the install runs correctly, it would be possible to stop/start
necessary services in order to update the configuration site.
7. Configure plug-in
If the plug-in creators were so kind, there should be good configuration
page(s) available to the user.
The whole thing hinges on good development of the plug-ins. Everything
you need to make changes is already there and readily available.
Inclusion of the plug-ins should not rely on an outside program or site
to create an image for the person. If we were to create it externally,
then it's no longer a plug-in, but a custom image. At that point, why
not host the new image somewhere to share with everybody who might be
Now that everything is in place to create plug-ins, somebody needs to
step up to the plate and begin standardizing how plug-ins get added to
m0n0; default installation/uninstall methods, etc... Perhaps a
skeleton set of scripts/templates, etc...
From: Adam Nellemann [mailto:adam at nellemann dot nu]
Sent: Friday, April 02, 2004 7:15 PM
To: m0n0wall at lists dot m0n0 dot ch
Subject: [m0n0wall] Regarding plugins
If I understand the concept correctly, it is necesary to take a lot of
BSD specific actions (such as rebuilding the m0n0wall image and other
arcane incantations), in order to get a particular plugin to work.
I fully understand why Manuel has choosen this way of doing it, since
he isn't very keen on the whole plugin idea, and probably didn't want
to spend too much time implementing this feature.
This, however, will still leave people like me with a big problem once
there are plugins available that we'd like to use. With next to no
knowledge about *NIX and no BSD box to do these things on, I can't see
how I'd ever get a plugin onto my m0n0wall box by myself?
Anyone have any suggestions as to how this process could be automated
or at least made simpler, and preferably without needing a BSD box for
Anyway, here's my ideas about how this might be done:
A small utility (preferably available for several platforms, notably
Win32) capable of taking a m0n0wall image and one or more plugin
files, as specified by the user, and combining these into a new image
with the plugins installed correctly. This file could then be
installed through the normal firmware upgrade procedure.
Or, risking a trip to inifity: Would it be possible to (recursion
begins) make a plugin capable of installing other plugins directly
from the m0n0wall webGUI? (recursion ends)
That is, wouldn't it be possible to have a plugin download a (number
of) plugin file(s) choosen by the user, and if necessary, grab a
firmware image at the same time. Then it could do the necessary image
magic, combining the two (or more) files, finally installing this just
like it was a normal firmware image and rebooting the box. Voila,
plugin support in the webGUI, plug'n'play style!
The plugin concept could possibly be expanded by having it contact a
server on the internet, obtain a current list of plugins, show these
in the webGUI with some checkboxes alongside. Then the user could
select the plugins needed, which would then be downloaded from the
server (again, possibly along with a firmware image, if necesary?)
These files would then be combined and installed as above in one fell
Note that the above would also provide another nice functionality for
m0n0wall: The ability to download a new firmware directly from the
internet, without need to download it to a local folder, and then
point the webGUI to the local copy.
Well, just some thoughts. As you might guess, I wouldn't know how to
do either of these suggestions, but perhaps some of you BSD
proffesionals might find it a worthwhile pasttime?
To unsubscribe, e-mail: m0n0wall dash unsubscribe at lists dot m0n0 dot ch
For additional commands, e-mail: m0n0wall dash help at lists dot m0n0 dot ch
The information contained in this e-mail may be confidential and is intended solely for the use of
the named addressee.
Access, copying or re-use of the e-mail or any information contained therein by any other person is
If you are not the intended recipient please notify us immediately by returning the e-mail to the