natethegreat68 / pms-docker Goto Github PK
View Code? Open in Web Editor NEWThis project forked from plexinc/pms-docker
Plex Media Server Docker repo, for all your PMS docker needs.
This project forked from plexinc/pms-docker
Plex Media Server Docker repo, for all your PMS docker needs.
Cron is installed, and crontab file is defined, but cron service is not started.
Current behavior: if the server is busy when a periodic sync event fires. then it won't try again until the next event. Suggest waiting 30 minutes and trying again, with a maximum numbers of retries (3?)
Getting cron working to periodically run sync is more trouble than it's worth; instead, create a script that loops infinitely, sleeping for 1 minute between syncs. Continue to use flock.
In case the automatic detection of /config_persistent directory gives false positives or false negatives.
When stopping the container, the expected behavior is for one last config sync to persistent storage to occur. Instead, a few seconds after the container is told to stop, the following error appears: s6-svwait: fatal: supervisor died
, and everything is immediately sent a TERM signal followed by a KILL signal 3 seconds later. This was observed in Rancher 1.6, even with ample "drain" time given via the GUI. Need to investigate and determine why graceful stopping isn't happening.
Write the syncs to a log file somewhere.
Find some way to run one last sync to /config-persistent
when SIGTERM is received (between Plex stopping and the container exiting). This would hopefully avoid potential corruption issues with transfer of incomplete databases and other files (because rsync will happily grab a file that's actively being written to) as well as capture anything added since the last sync.
It fills up the logs, where important Plex Media Server info might be lurking. Change to a progress output?
The README file needs a decent update to explain what this fork is attempting to do re: /config-persistent
and the new environment variable (SYNC-PERSISTENT
), as well as the amount of storage space this new setup occupies.
The plex_sync process shouldn't be started until after the plex server startup's sync to local install, if ever.
Because Plex might make changes to the /config directory when the package is updated, need to include persistent sync-to-local somewhere in root/etc/rc.d scripts to make sure everything is in place befo that happens.
Perhaps using git to manage the /config directory - commit
any time a "clean" sync to persistent is completed, and revert
when doing the initial sync from persistent at container startup?
A rudimentary script for syncing the live config data (in /config) back to the persistent config directory (/config-persistent) was written and included, but is never called; should be added to crontab.
Add/modify variables to:
Check to see if /config_persistent is mounted, rather than asking the user to specify a SYNC_PERSISTENT environment variable to run the syncing process.
Also use this as an opportunity to add testing that $HOME_PERSISTENT is mounted before performing syncs; this isn't done consistently right now.
The glob is just !(.incomplete)
, without the actual directory being called out.
Need a dedicated log script and log file for rsync output
Current behavior, if X_PLEX_TOKEN is missing/empty, is to erroneously report that the server is busy when it comes time to restart for syncing the config.
As of pull request #26, data corruption is still occurring when performing persistent-sync. Refactor to a new sync strategy.
Use cron managed by s6, and make sure that there are no active streams before restarting the server.
Placing the syncing
file in /config
to indicate that a sync is currently occurring can create weird conditions since it will be synced to the persistent storage (where it will never be deleted, and will eventually be synced back to /config); should probably be moved to elsewhere on the filesystem.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.