-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker Settings #6
Comments
This issue is to mainly determine the end structure to use to support the different environments especially docker. As for folder structure, an effective docker container would provide the static files to the /apps area while providing the data and cache area that changes to an area mounted externally. Since the configuration definition files are static, they should be moved into the lib folder. I recommend placing them into a resource folder that would contain other resources such as a language area. The other non-python area is the web area that contains the html, javascript, images, and css files that are directly provided to the web port. The web interface is unique, in that, it also contains dynamic files that are created based on other data. These could be templates or even python CGI type files. It would make sense to place the dynamic files somewhere near the web static files. The config.ini file should be searched in the ./data area or the top level folder, but since the data area is unknown until after the config file is loaded, the config.ini file path must be passed into the application as an argument if not in a default location. |
Here is what I have determine. With the Dockerfile NOT containing the ini file, the following command can be used once the container is built. EMBY: automatic detection requires
EMBY: manual detection requires
PLEX: automatic detection requires
PLEX: manual detection requires
For Docker, first build the container with For the config.ini file associated with Docker... there are no special changes for Docker. |
There is a chance if Plex or Emby was installed in a Docker container that the ability to communicate across the 172 network between Emby/Plex and the app is possible. This would make it possible that the automatic detection would be enabled. Complexity of the docker install of Emby/Plex is very high, so it will not be tested. |
For the alpine and slim buster dockerfiles I use them with docker-compose and I provide with an ini and key file via a volume statement. That way I keep my configuration files in my docker directory and out of the source directory. Here is what my docker-compose file looks like:
|
wait - I just tried using your new commit and I am now also getting |
I figured it out. After your latest commit the config.ini file now must be located in /app/config.ini. Previously it could be located in /app/config/config.ini. I modified my docker-compose volume statement and I am running again. Here is my latest docker-compose.yaml that now works again.
|
To simplify things, I moved the config file to /app/data/config.ini. That way, the cache, db and config.ini file can exist outside of the source easily. Most people will have the config.ini at the top level, but for Docker, you should put it into the data area. I use the option |
question... Almost ready to checkin an update. One change is the ability to easily define config variables such as where things are used or stored. This makes it available to change. Do you think the key location should be available in the path list? My thought is that it is suppose to be in a remote area from the app to keep the private key from being compromised. Showing where it is located is an issue for me. Just wondering, since you placed it with the config file. |
The main issue I had with docker was that when I regenerated a new docker
image the config.ini file was lost/reset so all changes I made with the web
based editor were lost. Therefore I saved the config.ini file outside of
the docker image so it would not be lost. At that point I ran into the
situation where the key file was lost which invalidated the password in my
config.ini. I guess i could have simply put my password back into
config.ini every time I regenerated the docker image... But I was lazy and
figured a way to avoid that. I will think on this to see if there may be
an alternate and more secure approach.
…On Mon, Apr 12, 2021, 7:20 PM rocky4546 ***@***.***> wrote:
question... Almost ready to checkin an update. One change is the ability
to easily define config variables such as where things are used or stored.
This makes it available to change. Do you think the key location should be
available in the path list? My thought is that it is suppose to be in a
remote area from the app to keep the private key from being compromised.
Showing where it is located is an issue for me. Just wondering, since you
placed it with the config file.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#6 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJWA76QCWV3JGZ4GDR4C7JTTIOS7TANCNFSM42NKNWJA>
.
|
From my perspective you should go ahead and checkin your enhancements. I
suspect most people will not encrypt their password. I suggest you put
instructions in your doc or wiki saying that ppl will need to re-enter
their clear text password in config.ini whenever they regenerate their
docker image.
…On Mon, Apr 12, 2021, 7:20 PM rocky4546 ***@***.***> wrote:
question... Almost ready to checkin an update. One change is the ability
to easily define config variables such as where things are used or stored.
This makes it available to change. Do you think the key location should be
available in the path list? My thought is that it is suppose to be in a
remote area from the app to keep the private key from being compromised.
Showing where it is located is an issue for me. Just wondering, since you
placed it with the config file.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#6 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJWA76QCWV3JGZ4GDR4C7JTTIOS7TANCNFSM42NKNWJA>
.
|
Understand on the encryption. Slowly updating the wiki pages, but will update the docker page. For the next update, have a new folder called plugins at the top level. Will update docker files to add it. It has some initial data for base testing. Also, moved around a number of folders inside lib since we are moving further away from locast2plex source. I try to do some PEP cleanup each push. Once that is complete, will checkin updates. |
Added a section on Docker in the Wiki installation instructions. Found a solution on the key file and added it to the Wiki. With my limited Docker knowledge, locast2plex has a docker-compose.yml file that probably needs to be updated. It uses relative paths, but using -v on the command line can only use absolute paths. Never used docker-compose, so will need to learn about that, but using relative paths may make it a more consistent solution. The key is located in the home folder, so if we can also use environment variables like $HOME, the docker-compose.yml would be able to be a stable file. |
In my opinion the best thing to do with Docker is not require your users to download and build their own image. With all the docker images I use the developer generated the image and then uploaded it to a repository like dockerhub. Here is an example. I use tvheadend and I do not have to download source code. All I do is add the recommended docker-compose code to my docker-compose.yaml file and modify per the documentation. |
I agree completely. Just need the time to set it up. Plans include adding debian installers, pip installer as well. I already completed a Windows installer and that is still working. Maybe after I get this plugin thing working, we can look at adding the different installers. |
No worries. tvheadend-locast works great for me and I will continue to it and test your new versions as well. |
The .alpine and .slim-buster Docker file gives the following error:
ERROR: Config file missing, Exiting...
Adding the following line to either makes the docker run without error.
COPY *.ini /app/
Question is... how is it working for the developers when it seems to be missing the line?
The text was updated successfully, but these errors were encountered: