Muximux - Lightweight portal to your webapps
This is a lightweight portal to view & manage your webapps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.
Major features
- Add, remove and rearrange your owns apps without touching any code - it's all in the settings menu!
- A shiny new dropdown menu (top right) where you can put items you don't use that often!
- Change or replace icons by just clicking the icon you think looks good.
- Enable or disable a landingpage for each app (landingpages prevent you from being bombarded with login-prompts, and reduces load on your browser).
- All menu items move to the dropdown when you access Muximux from your mobile phone or tablet!
- Refresh button - when you click it, only the app you are looking at will be reloaded - not EVERY app inside your browser. You can also double click the item in the menu.
Behind the scenes features
- Deferred loading of apps - each app only opens when you first click it. Loading time of Muximux is very fast!
- Security token generated on each page load. To execute specific functions of Muximux you can not do it without this token - a token that changes when the user leaves the page, effectively making commands to Muximux not function if you are not a valid user of the Muximux app currently browsing it.
- API calls to Github to look up commit history/changelog are cached and only called once when Muximux is loaded.
- No HTTP requests to external servers. Muximux fonts, icons and other resources: Google, Bootstrap, jQuery and Font-Awesome do not need to know you are hosting a server!
- Custom versions of minified javascript libraries that removes some of the unnecessary functions we're not using, which result in less javascript overhead and faster loading times.
Setup
Requirements: A webserver (nginx, Apache, IIS or any other webserver) configured with PHP5 support.
parse_ini_file
must be allowed in php.ini (default is allowed!)
-
To set it up, clone this repository:
git clone https://github.com/mescon/Muximux
or download the ZIP-file. If you install by downloading the zip-file, Muximux will still be able to notify you of updates and install them for you (given the right directory permissions!) -
Place all files on a publicly accessible webserver, either in a subdirectory called (for example)
muximux
or directly in the root directory of your webserver (such as/var/www
,/var/html
,C:\Inetpub\wwwroot
or wherever your webserver serves files from by default). -
Read this note about securing Muximux, and read this note about what happens if you are using HTTPS. Just do it.
-
Make sure that the directory where you place Muximux is writable by the process that is running your webserver. (i.e www-data, www-user, apache, nginx or whatever the user is called)
- Example:
chown -R www-data.www-data /var/www/muximux
- Example:
Docker Setup
The fine people of LinuxServer.io takes care of Docker builds for Muximux. You can find their instructions here.
Usage
-
Navigate to
http://<host>/muximux
where<host>
is either the IP or hostname of your webserver. Obviously if you put the files in the root directory of your webserver, there is no need to append/muximux
-
Remove the default apps (or just change the URL:s of them if you want to keep them), add your own apps by clicking in the top right corner and then click "Settings".
-
To refer the link to the same server that is hosting Muximix in contexts where ip / hostname I can change (local network, remote network, vpn, etc) you can write the url in the form
http://{self}/<page/dir>
orhttp://{self}:<port>
. At runtime{self}
will be replaced with the value contained in$_SERVER['HTTP_HOST']
. -
Under Settings, rearrange your apps with drag'n'drop - just drag an item under another item to move it it.
-
To reload an app, double click it in the menu, or press the refresh button in the top right bar.
-
If you want to bookmark a specific service - or just quickly go to a service you've set up - use
https://<host>/muximux/#service_name
. For instance,https://myserver.com/muximux/#couchpotato
which will load Muximux and automatically load my Couchpotato tab. Replace spaces with underscore.
There is no longer any need to edit config.ini.php or any file at all. In fact, we recommend you don't!
Security
It is strongly recommended that you secure any exposed applications with Basic Auth (.htpasswd / .htaccess
)
Read instructions for Nginx, Apache and Microsoft IIS.
If you decide not to, Muximux disallows search engines from indexing your site, however, Muximux itself does not password protect your services, so you have to secure each of your applications properly (which they already should be!). Muximux is NOT a proxy server, and as such can not by itself secure your separate applications. However, you can password protect the Muximux application itself in the "Settings" menu. If you don't want your other services exposed to the world you must make sure that you have Basic Auth or other means of security enabled on your server.
Important note regarding HTTPS
If you are serving Muximux from a HTTPS-enabled webserver (i.ehttps://myserver.com/muximux
), all of your services must also be secured via HTTPS.
Any URL that does not start with https://
(such as http://myserver.com:5050
) will be blocked by your web-browser!
If you can, try serving Muximux from a non-secure (HTTP) webserver instead. If the apps you have configured are using HTTPS, communication with them will still be encrypted.
The only known workaround is for Chrome, Opera and Chromium-based webbrowsers.
Install the plugin "Ignore X-Frame headers" which disables the blocking of non-secure content.
Using with PFSense
Please refer to the following: https://forum.pfsense.org/index.php?topic=47167.msg248336#msg248336 then check this box: Browser HTTP_REFERER enforcement - Disable HTTP_REFERER enforcement check Now pfsense works in muximux :D (Thanks to nullredvector for the tip)
Screenshots
Desktop screenshot (modern theme)
Desktop screenshot (classic theme)
Splash screen (modern theme) - shown on startup, accessible in the top right corner if you close it
Mobile screenshot (modern theme) - dropdown menu hidden
Mobile screenshot (modern theme) - dropdown menu shown
Settings: Drag & Drop items to re-arrange them in your menu
Settings: Pick and choose from over 2600 icons and choose colors for each tab
This is a PHP enabled fork of (the simpler and more lightweight) "Managethis" found here: https://github.com/Tenzinn3/Managethis
If you prefer a NodeJS version with a built-in webserver, a rewrite of Muximux (though not up to date) is available at https://github.com/onedr0p/manage-this-node