mescon / Muximux

A lightweight way to manage your HTPC
GNU General Public License v2.0
1.14k stars 83 forks source link

linuxserver.io docker container #123

Closed CHBMB closed 5 years ago

CHBMB commented 7 years ago

Hi @mescon I'm from linuxserver.io, saw your tweet.

Unfortunately the latest 2.0 update has broken our container, we're trying to fix it at the moment, but it's not working on either our alpine nginx baseimage or our more recent alpine 3.5 nginx baseimage, using either PHP5 or PHP7. We're just gettting a white screen on all combinations, whereas 1.0 works fine.

Was hoping for some help in terms of what dependencies are required and how you've got nginx configured to get it all working as we're clearly doing something wrong. If we could also get a list of which files are config files so we could make sure those are persistent then we can overhaul Muximux completely.

Naturally we have no problems with you referring people to our container as an "official" version, would be delighted if that were the case. Looking forward to hearing from you.

If you want to check out where we're at currently then our Muximux container is here. and the base image is here.

jdhorne commented 7 years ago

Just pulled the container today. I was able to get things up and running by logging into the shell and installing php5-zlib.

edit: well, it got farther along (in that the page would at least render) but things still seem a bit wonky.

CHBMB commented 7 years ago

@jdhorne Yeah, that didn't work for us...

sparklyballs commented 7 years ago

i've worked out the missing dependenices, the image is now using our :3.5 branch of nginx which uses php7

the two extra packages required were php7-zlib and php7-session.

however going forward with the image, would like to know which config files need to be linked externally for persistence when we move the muximux internal to the image.

CHBMB commented 7 years ago

I'd just come here to say that @sparklyballs

CHBMB commented 7 years ago

Actually should have RTFM. settings.ini.php would appear to be the only config file.

mescon commented 7 years ago

Hey guys - sorry I'm late to the party (I was bedridden with a cold).

settings.ini.php is the only config file, and Muximux needs read/write to it. It also needs read/write to the cache directory in order to create caches.

CHBMB commented 7 years ago

@mescon No problem. We've reached an empasse with this. Trying to make settings.ini.php persistent but leaving the rest of the muximux data inside the container is causing some headaches. Symlinking is doing some funky stuff.

d8ahazard commented 6 years ago

@CHBMB -

Hey, Linuxserver.IO. I love you guys!

I'm doing a refresh of the codebase for Muximux - if it'd help get things running right, I'd be happy to move the settings file to a /config subdir so it can be linked via a directory versus a file. That should solve the problem.

Similarly, I'm redoing the logging, would you guys like me to put the logfile into a /logs subdirectory so that can be accessed or attached to sdout? Actually, I could just make it log directly to sdout on docker if we came up with an agreed-upon ENV for me to look for?

On a separate note - I posted in your forums a while ago asking about a LSIO container for another project of mine, "Phlex". Perhaps we could discuss it there or elsewhere?

sparklyballs commented 6 years ago

@d8ahazard if it all possible, a better solution would be a definable location for the config folder and logs, with a default location for non-docker users

so we could then set a switch in the run command say --config_dir=/config or something similar

d8ahazard commented 6 years ago

@sparklyballs

The config and log locations are easy enough to configure in the code to wherever. I'm not sure how I'd catch the --config_dir switch in the run command, but it looks easy enough to catch an environment variable passed via a -e command as described here:

https://medium.com/shiphp/environmental-variables-in-php-and-docker-cae58177e679

Then I can easily do a getenv check for a path set that way, and default to wherever if none specified.

d8ahazard commented 6 years ago

@sparklyballs - So I've done this:

$configPath = getenv('CONFIG_PATH') ? getenv('CONFIG_PATH') : dirname(FILE) . '/config/'; $logPath = getenv('LOG_PATH') ? getenv('LOG_PATH') : dirname(FILE) . '/log/'; defined("CONFIG") ? null : define('CONFIG', $configPath.'settings.ini.php'); defined("CONFIGEXAMPLE") ? null : define('CONFIGEXAMPLE', dirname(FILE).'/config/settings.ini.php-example'); defined("LOGPATH") ? null : define('LOGPATH',$logPath.'muximux.log');

The user can specify ENV for CONFIG_PATH and LOG_PATH, these will be used if they exist.

If not, it will default to ./config and ./log.

Will that work?

sparklyballs commented 6 years ago

i'm not sure about the php side of things but from our end that looks good

we can use those ENV's in the Dockerfile itself and give us a fixed location without resorting to symlnking internal paths to volume mounts

d8ahazard commented 6 years ago

@sparklyballs - If you want to give it a go, I've got the latest codebase pushed to a new /experimental branch. Some other functionality might be broken yet, but the paths should be set up.

d8ahazard commented 6 years ago

@sparklyballs - Also, I'm thinking we're going to bump the PHP language level up to PHP7, and possibly add a dependency for PHP-curl as well.

sparklyballs commented 6 years ago

@d8ahazard not a problem as our baseimage we use for this is already using php7

and adding curl is no biggie

CHBMB commented 5 years ago

Gonna close this as the issue has been resolved for quite a long time :smile: