Plex Restarter lets your friends restart your Plex Media Server remotely with a click of a button.
cp -n docker-compose.override{.example,}.ymldocker-compose build --pulldocker-compose up- Navigate to localhost:3000
Pushes to the main brunch will be published to Github Packages. The image can be built manually by running: docker-compose -f docker-compose.yml build.
The first time you run this app you will be greeted with an installation screen to set some config values. Alternatively, you can provide these values as environmental variables.
| Option | Description |
|---|---|
PLEX_HOSTNAME |
Hostname where Plex Server runs (without http(s)) |
PLEX_PORT |
Port number Plex Server is listening on |
PLEX_USE_HTTPS |
Connect to plex using a secure connection |
After installation you will be prompted to log into your Plex account. These credentials must be the server admin.
Upon successful installation a ./config/config.json file will be created. Simply mount this directory into your container to persist the installation state:
docker run ... -v ./config:/app/configYou must set a RESTART_COMMAND environmental variable. This command is what restarts your Plex server.
In order to execute a command on the host machine from the plex-restarter container, you can do 1 of 2 things:
WARNING: Mounting the host's Docker socket will let you run any command on the host as the Docker user.
The simpliest way if you have Plex running as a Docker container is to use the Docker CLI installed on the plex-restarter container to run docker restart ...:
RESTART_COMMAND="docker restart plex"Alternatively, you can spawn a separate Docker container to send commands to the host via a reverse shell (this is probably a really, really bad idea):
RESTART_COMMAND="docker run -it --rm --privileged --pid host debian nsenter -t 1 -m -u -n -i bash -c \"service restart plex\""You can use a named pipe to execute commands on the host machine. The TL;DR is to create a file on the host + a script to loop and eval commands from that file. Simply mount that file into the container with a volume and write to it. Read more about named pipes here.
RESTART_COMMAND="echo \"service restart plex\" > /path/to/named/pipe.txt"docker run --rm \
--name plex-restarter \
--privileged \
-e "RESTART_COMMAND=docker restart plex" \
-p 3000:3000 \
-v $(PWD)/config:/app/config \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nicholasodonnell/plex-restarter:latest