Giter VIP home page Giter VIP logo

muximux's Introduction

Muximux - Lightweight portal to your webapps

Join the chat at https://gitter.im/mescon/Muximux Docker Automated buil GitHub stars GitHub forks

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.

Desktop screenshot More screenshots

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

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> or http://{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, modern theme

Desktop screenshot (classic theme)

Desktop screenshot, classic theme

Splash screen (modern theme) - shown on startup, accessible in the top right corner if you close it

Splash screen

Mobile screenshot (modern theme) - dropdown menu hidden

Mobile screenshot - dropdown menu hidden

Mobile screenshot (modern theme) - dropdown menu shown

Mobile screenshot - dropdown menu shown

Settings: Drag & Drop items to re-arrange them in your menu

Drag & Drop items to re-arrange them in your menu

Settings: Pick and choose from over 2600 icons and choose colors for each tab

Pick and choose from over 500 icons

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

muximux's People

Contributors

a-chaudhari avatar atribe avatar carbolymer avatar coreyj87 avatar cry avatar d8ahazard avatar fodawim avatar gitter-badger avatar jdogherman avatar joweisberg avatar kylerw avatar lxcalghost avatar mescon avatar morphy99 avatar nathanthegr8 avatar rmensing avatar simcity avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

muximux's Issues

[Feature Request] Landing Page with large icons for each service

It would be nice to have an option where instead of loading the first app, you could instead arrive at a page that shows large icons for each service.

This could be done by a javascript check to see if the page has just loaded (before any service is clicked). A class could be added to the body of the HTML, which then allows you to display the top nav menu in a larger style.

Kickass and PirateBay un-usable in Muximux

I'd like to use muximux to get to KAT / TPB, but when I add them I get some strange issues.

TPB takes over the whole page, and navigates away from muximux.

And KAT has an issue with the background color when viewed in muximux.

Any chance you could take a look at those for me ?

Use jquery "on" for buttons

Use on instead of calling init button handlers every time that an application is added. This will cut down on the amount of code needed to handle all the buttons.

settings button disappears after disabling dropdown menu

I just updated to the most current version as of this post, and the settings button disappears after disabling dropdown menu. I looked at the settings.ini.php and under [settings]changed dd = "true" to dd = "false". Then the settings button appeared again, but it didn't show me the settings after I clicked it. It was just a white page. Is it possible to make it just an icon on the right side, like the refresh icon?

Folder In Navbar

Id like to use this as my new landing page to replace my reverse proxy I currently have. It would be nice to have "folders" so I could put admin stuff such as my FreeNAS page and Proxmox page in it.

It would be really nice to integrate this with the users request. Hide entire folders or just parts of the folder.

Cant access external site?

Not sure if I'm doing something wrong or if this isn't supported but I can't get an external site to to load in a tab. For example, I have an external server (whatbox.ca) that I'd like to display in a tab. I get get a white page. I tried changing it to just google to see if that would work but it looks like anything outside of the local network doesn't work. Is this supported and I just have a problem with my install/server? Or is this just not supported?

[Feature request] Add option in landing page to open link in new tab

Hi!

I've just started to use Muximux and it's awesome!

However, I have a small issue with it. When I use Muximux to open an application that already uses multiple iframes (in this case Subsonic), all the javascripts used to do interactions with the application aren't working. When I open the same application but without Muximux, everything is working properly.

In order to bypass this issue but still have the application listed in Muximux, I think it could be great to add an option in landing page to open link in new tab. I know that we could just right-click on the "launch x app" button and then click on open in new tab but it could be convenient don't you think?

If you need more clarification don't hesitate to let me know!

Kind regards,

sandbox option for iFrame

there are a few web interfaces that I use that either force the breakout of an iframe, or won't load in an iframe unless its in sandbox mode, I've moved over to muximux and was wondering if it was possible to get a sandbox variable added for the iframe.

Get multiple users security

Can we get some kind of users/security in this? like have multiple users and we can select what tabs users can see?
Like as an admin, obviously I want to see everything, but if I give the url to one of my users, they could log in and only see Plex and PlexRequests.

Scrollbar always visible

Hi

Thanks a lot for Muximux, it's great :)

When I have only one row of items, the scrollbar is always visible (see screenshot), can this be fixed?

If I have two rows it's not visible.

screen shot 2016-02-09 at 12 27 42

Service status / htpc information page

Would love to see a landing page that shows the current usage / space of the server, along with the current status of services such as plex, sonarr, and couch potato.

Plex App won't go fullscreen

When I'm in the Plex app and I play a video it won't go fullscreen. Is there any fix for that?

The link I'm using for Plex is:
https://app.plex.tv/web/app

It's not a huge deal for me, since I probably won't be playing a video from within Muximux often. It would just be nice if I could.

Thanks for your work! I'm loving Muximux!

[Feature Request] Ability to bookmark specific services

When you navigate to a specific service, it could add a hash (e.g. #couchpotato) to the URL. Then, on reload of the site would go to that specific service and load it in the iframe.

This way you could bookmark/save the URL for a specific service, within the site.

[Feature request] Change tab color on mouse rollover

To begin with, I'm loving the changes that have been made from the original project. Next, is it possible to change the tabs to a different color on a mouse rollover like it already does with the refresh button and dropdown menu? I would really appreciate it if this was implemented.

Error during 'git pull'

Tried to pull the latest updates and got this:

Updating d46a341..4d16f3f
error: Your local changes to the following files would be overwritten by merge:
    js/functions.js
    muximux.php
Please, commit your changes or stash them before you can merge.
Aborting

I swear I did not touch the .php or .js files

Strangely enough, the Show Updates drop-down says:
Your install is currently up to date!

Not setting up a config leads to a blank page.

Seems like it could be useful to catch the errors thrown and display a user friendly page in case of no config.

Warning: parse_ini_file(config.ini.php): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/muximux.php on line 7

[Feature Request] Ability to add active tab name as variable in Title

I keep getting lost when I'm using my dashboard with a few tabs open in chrome...

I like the custom title, but it would be great if you could make it say:

ServerName - $TabName

And have it dynamically replace the window title's $TabName variable with the name of the active tab.

A checkbox might be easier with "append active tab name to title".

Thanks!

Collapsable Navbar

When on mobile I'd prefer to have it collapse into a hamburger menu or similar rather than stacking all services as it currently does.

Disabled config blocks can appear in the dropdown if "dd" config item is set to true.

Scenario

Given I have a config block in config.ini.php
And it is configured enabled = "false"
And it is configured dd = "true"
When I navigate to Muximux's dropdown menu
Then I should not see the disabled item

Deviation

Disabled blocks still appear in the dropdown menu if dd = "true". However, it does not appear that these items are functional. (Not extensively tested.)

Proposed Resolution

The enabled config item should take highest priority. A cursory glance at muximux.php gives me the impression that this is how it was intended to work, however I do not know php well enough to propose a code fix.

Error after clicking 'Save and Reload'

When editing the tabs, clicking 'Save and Reload' results in a dialog saying "Error!!!-".

Happens with both Microsoft Edge and Chrome. Web server is Xampp.

Glyphicon Did Not Show

I tried adding

icon = "glyphicon glyphicon-open-folder"

But the icon did not show up. Not sure what is causing it.

Also, if there is a typo in the icon line, it hides the entire entry (ie makes the enable = "false"). I feel like it should display a default error type of icon.

Fresh install giving undefined variable errors

Getting the following two notices on the top of the webpage in Chrome/Internet Explorer when opening a fresh pull of the dashboard

Notice: Undefined variable: dropdownmenu in muximux.php on line 188
Notice: Undefined variable: standardmenu in muximux.php on line 178

Nav Bar Doesn't Extend Fully on iPad

I'm using this as a central dashboard for my home on a landcsape Ipad, but the navbar doesn't extend to the full resolution of my iPad 2 when I iframe a PRTG Network Map that is the resolution of the iPad.

New dropdown menu done!

First make sure you get the latest version, either by downloading the latest ZIP-file, or by doing git pull in your terminal.

Then, add this to your config.ini.php:

[general]
title = "Muximux - Application Management Console"
enabledropdown = "true"

When you've done that and you decide you want an item to move to the
dropdown menu, just add dd = "true" to the block. Like this:

[nzbget]
enabled = "true"
default = "false"
name = "NZBGet"
url = "https://nzbget.net/"
landingpage = "true"
icon = "fa fa-download"
dd = "true"

If want to disable the dropdown entirely, just do enabledropdown = "false" under [general].

Make sure you watch config.ini.php-example for some examples if you're unsure.

Feature request - Frame specific zoom

I like some of my apps zoomed, while others look great at 100%. I'd like in the settings to be able to change the zoom percentage of individual pages.

Not able to add Emby

I'm not able to add Emby https://emby.media/ to Muximux which is running an my Synology Storage.
I've edited /volume1/@appstore/emby/var/config/system.xml and changed line <DenyIFrameEmbedding>true</DenyIFrameEmbedding> to <DenyIFrameEmbedding>false</DenyIFrameEmbedding> and did a restart of emby.
Anyone here who implemeted it correctly?

Bug when hiding drop down

I unchecked the box for "Enable Dropdown?" and after I saved and reloaded, the site was gone. 500 Server Error.

I went back into settings.ini.php and after a moment of confusion, I realized that instead of changing enabledropdown = "false" to "true", it deleted the whole line! I had to add the line back and set it to false manually to get the site back up.

Unable to open secret.txt

OS: CentOS 7 x64
Web: Nginx
PHP: PHP-FPM 5.4.16-36.el7_1
www-root: /usr/share/nginx/html/

Hi,

So I've tried setting this up and working it out but it seems beyond me.

Muximux is installed in www-root/muximux by cloning using git.
I've installed php and confirmed working.
nginx:nginx owns www-root/muximux
Get error about permissions
For shits and giggle changed permissions using chmod to 777 but same error.
rm -rf and reinstalled
set permissions back up to nginx:nginx
change settings.ini.php-example to settings.ini.php and not get "unable to open secret.txt"
no secret.txt file, vi secret.txt
set permissions for secret.txt to nginx
restart nginx and php-fpm because why not
issue still here.
nothing in journal -xe

Any thoughts?

Cheers.

Can't get uTorrent WebUI to work

I've added the following into the config.ini however cannot get it to appear.
Any ideas?

[utorrent]
enabled = "True"
default = "false"
name = "uTorrent"
url = "http://xxxxxxxxxxx.com:xxxx/gui/"
landingpage = "True"
icon = "fa fa-globe"

Deluge not accepting password.

Hi there, trying to develop a docker container for this app and am hitting an issue with deluge not accepting password.

If i enter an incorrect password it acknowledges the password is incorrect, if i enter the correct password the password box empties and the app doesn't redirect to the deluge page.

Could you take a look here and see if we are missing anything obvious.

https://github.com/linuxserver/docker-muximux

thanks.

Single user security?

I saw the post about setting up user account control, but what about setting up a front door for just one username/password?

Also, are there any inherent security risks hosting this page openly? Pretty ignorant to all of this so far. Thanks for the great project thus far!

Feature Request: Auto Launch

I'd like to be able to browse to the Muximux instance and not click each tab individually and then launch them, but instead it should auto launch all instances upon first visit.

Optionally it could be on per app basis, for example:

[rutorrent]
enabled = "true"
default = "false"
name = "RuTorrent"
url = "https://github.com/Novik/ruTorrent"
landingpage = "true"
icon = "fa fa-globe"
auto-launch = "true"

if I have to click each tab and then launch, then I might as well use bookmarks for each app and load them in different tabs which would be quicker

Having a dash ("-") in the name of the tab removes the tab entirely

I have 2 instances of plexpy running. So I use 2 tabs for plexpy. I name them:

  • PlexPy - Server 1
  • PlexPy - Server 2

if I don't put the dash in the name it works fine, but as soon as the dash is added to the name that tab disappears and the entry in the settings is just blank.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.