1 Commits

Author SHA1 Message Date
cee80e6345 Update README.md 2020-04-15 11:02:40 -04:00
6 changed files with 959 additions and 2521 deletions

View File

@@ -1,161 +0,0 @@
[size=20pt]installJRMC[/size]
This program installs [url=https://www.jriver.com/]JRiver Media Center[/url] and associated services on most Linux distributions.
You can find the latest version of installJRMC, changelog, and documentation in [url=https://git.bryanroessler.com/bryan/installJRMC]my repository[/url].
[size=18pt]tl;dr (One-line MC install)[/size]
[code]curl https://git.bryanroessler.com/bryan/installJRMC/raw/branch/master/installJRMC|bash[/code]
[size=18pt]Instructions[/size]
Download and unzip installJRMC from the attachment below or grab the latest stable version directly:
[code]curl -O https://git.bryanroessler.com/bryan/installJRMC/raw/branch/master/installJRMC &&
chmod +x ./installJRMC &&
./installJRMC [--option [ARGUMENT]]
[/code]
[tt]installJRMC[/tt] defaults to [tt]--install=repo[/tt] on distros with MC repositories and [tt]--install=local[/tt] on all others.
Specifying [tt]--build[/tt], [tt]--createrepo[/tt], [tt]--service[/tt], or [tt]--uninstall[/tt] disables the default install method.
[size=18pt]Options[/size]
[code]
$ installJRMC --help
--install, -i repo|local
repo: Install MC from repository, updates are handled by the system package manager.
local: Build and install MC locally from official source package.
--build[=suse|fedora|centos|mandriva]
Build RPM from source DEB but do not install.
Optionally, specify a target distro for cross-building (ex. --build=suse, note the '=').
--compat
Build/install MC locally without minimum dependency version requirements.
--mcversion VERSION
Specify the MC version, ex. "35.0.68" or "35" (default: latest release).
--arch ARCH
Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host).
--mcrepo REPO
Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto).
--outputdir PATH
Generate reusable installJRMC output in this PATH (default: ./output).
--restorefile RESTOREFILE
Restore file location for automatic license registration.
--betapass PASSWORD
Enter beta team password for access to beta builds.
--service, -s SERVICE
See SERVICES below for possible services to install.
--service-type user|system
Starts services at boot (system) or at user login (user) (default: per service, see SERVICES).
--no-update
Disable automatic installJRMC self-update.
--uninstall, -u
Uninstall JRiver MC, remove services, containers, and firewall rules (does not remove library files).
--yes, -y, --auto
Assume yes response to questions.
--version, -v
Print installJRMC version and exit.
--debug, -d
Print debug output.
--help, -h
Print help dialog and exit.
ADVANCED OPTIONS
--container, -c CONTAINER (TODO: Under construction)
See CONTAINERS section below for a list of possible services to install.
--createrepo[=suse|fedora|centos]
Build rpm, copy to webroot, and run createrepo.
Use in conjunction with --build=TARGET for crossbuilding repos.
Optionally, specify a target distro for non-native repo (ex. --createrepo=fedora).
--createrepo-webroot PATH
Specify the webroot directory to install the repo (default: /var/www/jriver).
--webroot-user USER
Owner/user for createrepo output in the webroot (default: current user).
--createrepo-user USER
Backward-compatible alias for --webroot-user.
--sign
Sign the built RPM and repodata/repomd.xml (if --createrepo).
--sign-user USER
User account used to run rpmsign and gpg signing (default: current user).
--sign-key KEYID
GPG key ID, fingerprint, or UID used for --sign.
[/code]
[size=18pt]Services[/size]
[code]jriver-mediaserver (user)
Enable and start a mediaserver systemd service (requires an existing X server).
jriver-mediacenter (user)
Enable and start a mediacenter systemd service (requires an existing X server).
jriver-x11vnc (user)
Enable and start x11vnc for the local desktop (requires an existing X server, does NOT support Wayland).
--vncpass and --display are also valid options (see below).
jriver-xvnc (system)
Enable and start a new Xvnc session running JRiver Media Center.
--vncpass PASSWORD
Set vnc password for x11vnc/Xvnc access. If no password is set, the script will either use existing password stored in ~/.vnc/jrmc_passwd or else no password.
--display DISPLAY
Manually specify display to use for x11vnc/Xvnc (ex. ':1').
jriver-createrepo (system)
Install hourly service to build latest MC RPM and run createrepo.
[/code]
Services use a sane default [tt]--service-type[/tt] listed next to the service name in the Services description.
User services can be manipulated as an unprivileged user, for example: [tt]systemctl --user stop jriver-mediacenter[/tt] and begin at user login.
System services are manipulable as root, for example: [tt]sudo systemctl stop jriver-servicename@username.service[/tt] and begin at system boot.
Note that it is possible to run all services of a particular user at boot using [tt][url=https://www.freedesktop.org/software/systemd/man/loginctl.html]sudo loginctl enable-linger username[/url][/tt].
Multiple services (but not [tt]--service-types[/tt]) can be installed at one time using multiple [tt]--service[/tt] blocks:
[code]installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter[/code]
[size=14pt][tt]jriver-x11vnc[/tt] versus [tt]jriver-xvnc[/tt][/size]
[url=http://www.karlrunge.com/x11vnc/]jriver-x11vnc[/url] shares your existing X display via VNC and can be combined with additional services to start Media Center or Media Server. Conversely, [url=https://tigervnc.org/doc/Xvnc.html]jriver-xvnc[/url] creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display.
[size=18pt]Containers[/size]
[b]Coming soon![/b]
[size=18pt]Firewall[/size]
installJRMC automatically creates port forwarding firewall rules for remote access to Media Network (52100-52200/tcp, 1900/udp DLNA) and Xvnc/x11vnc (if selected), using firewall-cmd or ufw (if available).
[size=18pt]Other Nicities[/size]
[list]
[*]Automatically updates [tt]installJRMC[/tt] to the latest release.
[*]Activates external third-party repositories for improved media playback (hardware decoding, etc.).
[*]Adds temporary legacy repositories to provide deprecated libraries.
[*]Links non-standard SSL certs.
[*]Activates MC if a valid license file is found in common locations.
[/list]
[size=18pt]Examples[/size]
[code]installJRMC[/code]
Install the latest version of MC from the best available repository.
[code]installJRMC --mcversion 33 --debug[/code]
Install the latest version of MC33 from the best available repository with debugging output.
[code]installJRMC --install local --compat[/code]
Install a more widely-compatible version of the latest MC version.
[code]installJRMC --install repo --service jriver-mediacenter --service-type user[/code]
Install MC from the repository and start/enable jriver-mediacenter.service as a user service.
[code]installJRMC --install local --compat --restorefile /path/to/license.mjr --mcversion 35.0.68[/code]
Build and install an MC 35.0.68 comptability RPM locally and activate it using the [tt]/path/to/license.mjr[/tt].
[code]installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --webroot-user www-user[/code]
Build an RPM locally for the current distro, move it to the webroot, and run createrepo as www-user.
[code]installJRMC --service jriver-createrepo --createrepo-webroot /srv/jriver/repo --webroot-user www-user[/code]
Install the jriver-createrepo timer and service to build the RPM, move it to the webroot, and run createrepo as www-user hourly.
[code]installJRMC --createrepo --webroot-user nginx --sign --sign-user bryan --sign-key 0xDEADBEEF[/code]
Build/update the RPM repo, sign both RPM and repodata as bryan, and publish files owned by nginx.
[code]installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter --vncpass "letmein"[/code]
Install services to share the existing local desktop via VNC and automatically run MC on startup.
[code]installJRMC --install repo --service jriver-xvnc --display ":2"[/code]
Install an Xvnc server on display ':2' that starts MC.
[code]installJRMC --uninstall[/code]
Uninstall MC, services, and firewall rules. This will [b]not[/b] remove your media, media library/database, or library backups.
[size=18pt]Additional Info[/size]
Did you find installJRMC useful? [url=https://paypal.me/bryanroessler]Paypal me a coffee![/url]
[url=bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a]↓ ↓ ↓ Bitcoin ↓ ↓ ↓[/url]
[url=bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a][img]https://repos.bryanroessler.com/files/bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a.png[/img][/url]

15
.atom-build.yml Executable file
View File

@@ -0,0 +1,15 @@
cmd: 'echo "Pick a command (see .atom-build.yml)"'
name: ''
targets:
# Fedora
Run silently in Fedora:
cmd: 'buildWrapper podmanRunEasy -m ephemeral -i fedora:latest -n installJRMC -w {FILE_ACTIVE_PATH} --silent --mkexec --systemd {FILE_ACTIVE}'
Run debug in Fedora:
cmd: 'buildWrapper podmanRunEasy -m ephemeral -i fedora:latest -n installJRMC -w {FILE_ACTIVE_PATH} --debug --mkexec --systemd {FILE_ACTIVE}'
# Ubuntu
Run build silently in Ubuntu:
cmd: 'buildWrapper podmanRunEasy -m ephemeral -i ubuntu:latest -n installJRMC -w {FILE_ACTIVE_PATH} -d {FILE_ACTIVE_PATH}/RPMS --silent --mkexec {FILE_ACTIVE} --debug --build --container'
Run createrepo silently in Ubuntu:
cmd: 'buildWrapper podmanRunEasy -m ephemeral -i ubuntu:latest -n installJRMC -w {FILE_ACTIVE_PATH} -d {FILE_ACTIVE_PATH}/output/RPMS --silent --mkexec {FILE_ACTIVE} --debug --createrepo'
Run debug in Ubuntu:
cmd: 'buildWrapper podmanRunEasy -m ephemeral -i ubuntu:latest -n installJRMC -w {FILE_ACTIVE_PATH} --debug --mkexec {FILE_ACTIVE} --debug --container'

10
.gitignore vendored
View File

@@ -1,7 +1,3 @@
.old/ **/
.vscode/ *.zip
installJRMC.zip testing.sh
README.shdoc.md
README.bbcode
output/
*.code-workspace

21
Containerfile Normal file
View File

@@ -0,0 +1,21 @@
FROM fedora:latest
LABEL maintainer="bryanroessler@gmail.com"
RUN dnf install dpkg rpm-build createrepo httpd -y
RUN curl -sO "https://git.bryanroessler.com/bryan/install_MC_fedora/raw/master/install_MC_fedora.sh" \
&& chmod +x ./install_MC_fedora.sh \
&& ./install_MC_fedora.sh -b
RUN dnf clean all
COPY root/ /
RUN systemctl enable httpd build-jriver-repo.timer
EXPOSE 80
CMD [ "/usr/sbin/init" ]
# podman build -t build-jriver-repo .
# podman run -d -p 8081:80 localhost/build-jriver-repo

225
README.md Executable file → Normal file
View File

@@ -1,180 +1,103 @@
# installJRMC # installJRMC
Installs [JRiver Media Center](https://www.jriver.com/) and associated services on most Linux distributions. This script will help install [JRiver Media Center](https://www.jriver.com/) and associated services on Fedora (>=29), CentOS (>=8), Ubuntu (>=16.04), and Debian.
You can find the latest version of installJRMC, changelog, and documentation in [my repository](https://git.bryanroessler.com/bryan/installJRMC). ## Notes
## Usage This script will not point major upgrades (i.e. from v25 to v26) to your old library. You should **first perform a library backup**, install the new major version, and then restore the library backup in the new version.
`installJRMC [--option [ARGUMENT]]` ## Installing
`installJRMC` defaults to `--install=repo` on distros with Media Center repositories and `--install=local` on others. 1. Extract install_MC_fedora.zip:
Specifying `--build`, `--createrepo`, `--service`, or `--uninstall` disables the default install method. ```
unzip ./installJRMC.zip
### tl;dr ```
2. You may need to make the script executable:
`curl https://git.bryanroessler.com/bryan/installJRMC/raw/branch/master/installJRMC|bash` ```
chmod +x ./installJRMC
```
3. Run the script using default options (see Options section below):
```
./installJRMC
```
## Options ## Options
```text Running `installJRMC` without any options will install the latest version of JRiver Media Center from the official JRiver repository (Ubuntu/Debian) or my unofficial repository (Fedora/CentOS) using the system package manager.
$ installJRMC --help
--install, -i repo|local Here is a list of additional options that can be passed to the script. You can always find the latest supported options by running `installJRMC --help`.
repo: Install MC from repository, updates are handled by the system package manager. ```
local: Build and install MC locally from official source package. --rpmbuild
--build[=suse|fedora|centos|mandriva] Debian/Ubuntu: Build RPM from source DEB
Build RPM from source DEB but do not install. Fedora/CentOS: Build RPM from source DEB and install it
Optionally, specify a target distro for cross-building (ex. --build=suse, note the '=').
--compat
Build/install MC locally without minimum dependency version requirements.
--mcversion VERSION
Specify the MC version, ex. "35.0.68" or "35" (default: latest release).
--mcrepo REPO
Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto).
--arch ARCH
Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host).
--outputdir PATH --outputdir PATH
Generate reusable installJRMC output in this PATH (default: ./output). Generate rpmbuild output in this directory (Default: $PWD/outputdir)
--restorefile MJR_FILE --mcversion VERSION
Restore file location for automatic license registration. Build or install a specific version (Default: scrape the latest version from Interact)
--restorefile RESTOREFILE
Restore file location for registration (Default: skip registration)
--betapass PASSWORD --betapass PASSWORD
Enter beta team password for access to beta builds. Enter beta team password for access to beta builds
--service, -s SERVICE --service SERVICE
See SERVICES below for possible services to install. See services section below for a list of possible service to install
--service-type user|system -v|--version
Starts services at boot (system) or at user login (user) (default: per service, see SERVICES). Print this script version and exit
--no-update -d|--debug
Disable automatic installJRMC self-update. Enter debug mode
--uninstall, -u -h|--help
Uninstall JRiver MC, remove services, containers, and firewall rules (does not remove library files). Print help dialog and exit
--yes, -y, --auto -u|--uninstall
Assume yes response to questions. Uninstall JRiver MC, cleanup service files, and remove firewall rules (does not remove
--version, -v library files)
Print installJRMC version and exit. ```
--debug, -d Some options are incompatible with each other, for example it is not possible to install the `mediaserver` service on Ubuntu/Debian when using `--rpmbuild` or `--createrepo` since those options do not actually install Media Center.
Print debug output.
--help, -h #### createrepo
Print help dialog and exit. ```
--createrepo
Build rpm, copy to webroot, and run createrepo
ADVANCED OPTIONS
--container, -c CONTAINER (TODO: Under construction)
See CONTAINERS section below for a list of possible services to install.
--createrepo[=suse|fedora|centos|mandriva]
Build rpm, copy to webroot, and run createrepo.
Use in conjunction with --build=TARGET for crossbuilding repos.
Optionally, specify a target distro for non-native repo (ex. --createrepo=fedora).
--createrepo-webroot PATH --createrepo-webroot PATH
Specify the webroot directory to install the repo (default: /var/www/jriver). The webroot directory to install the repo (Default: /srv/jriver/)
--webroot-user USER
Owner/user for createrepo output in the webroot (default: current user).
--createrepo-user USER --createrepo-user USER
Backward-compatible alias for --webroot-user. The web server user (Default: current user)
--sign
Sign the built RPM and repodata/repomd.xml (if --createrepo).
--sign-user USER
User account used to run rpmsign and gpg signing (default: current user).
--sign-key KEYID
GPG key ID, fingerprint, or UID used for --sign.
``` ```
#### services
When installing systemd services it is important to execute `installJRMC` as the user you wish to run the services. Typically this is your normal user account but for some server installations it may be necessary to execute the script as root.
```
mediaserver
Create and enable a JRiver MC Media Server systemd service for the current user
### `--service=` x11vnc-mediaserver
Create and enable a JRiver MC mediaserver service and x11vnc (for headless
installations without an existing X server) service for the current user
```text
jriver-mediaserver [--service-type=user]
Enable and start a mediaserver systemd service (requires an existing X server).
jriver-mediacenter [--service-type=user]
Enable and start a mediacenter systemd service (requires an existing X server).
jriver-x11vnc [--service-type=user]
Enable and start x11vnc for the local desktop (requires an existing X server, does NOT support Wayland).
--vncpass and --display are also valid options (see below).
jriver-xvnc [--service-type=system]
Enable and start a new Xvnc session running JRiver Media Center.
--vncpass PASSWORD --vncpass PASSWORD
Set vnc password for x11vnc/Xvnc access. If no password is set, the script will either use existing password stored in ~/.vnc/jrmc_passwd or use no password. Set vnc password for x11vnc access. If no password is set, the script will either use
existing password stored in ~/.vnc/jrmc_passwd or use no password
--display DISPLAY --display DISPLAY
Manually specify display to use for x11vnc/Xvnc (ex. ':1'). Start X11VNC on this display (Default: The current display or :0 if current display is
jriver-createrepo [--service-type=system] unaccessible)
Install hourly service to build latest MC RPM and run createrepo.
createrepo
Install service to build latest MC RPM and run createrepo hourly for the current user (can also take additional input arguments --createrepo-webroot and/or createrepo-user)
``` ```
I utilize `--service createrepo` to build the rpm repository used by Fedora/CentOS.
#### `--service-type=` ### Examples
Services use a sane default `--service-type` listed next to the service name in the [`--service=`](#--service) section. User services begin at user login and are managed by the unprivileged user, for example: `systemctl --user stop jriver-mediacenter`. System services begin at boot and are managed by root, for example: `sudo systemctl stop jriver-servicename@username.service`. It is possible to run all services of a particular user at boot using [`sudo loginctl enable-linger username`](https://www.freedesktop.org/software/systemd/man/loginctl.html). * `installJRMC --service mediaserver`
Multiple services (but not `--service-types`) can be installed at one time using multiple `--service` blocks: `installJRMC --install=repo --service=jriver-x11vnc --service=jriver-mediacenter` Installs JRiver Media Center using the package manager and starts the jriver-mediaserver service.
#### `jriver-x11vnc` versus `jriver-xvnc` * `installJRMC --restorefile /path/to/license.mjr --mcversion 26.0.15`
[jriver-x11vnc](http://www.karlrunge.com/x11vnc/) shares the existing X display via VNC and can be combined with additional services to start Media Center or Media Server. Conversely, [jriver-xvnc](https://tigervnc.org/doc/Xvnc.html) creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display. Builds JRiver Media Center version 26.0.15 RPM from the source DEB (and installs it on Fedora/CentOS along with the associated license).
### Containers * `installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-user`
**Coming soon!** Builds the RPM, moves it to the webroot, and runs createrepo as `www-user`.
## Firewall * `installJRMC --service createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-user`
`installJRMC` automatically creates port forwarding firewall rules for remote access to Media Network (52100-52200/tcp, 1900/udp DLNA) and Xvnc/x11vnc (if selected), using `firewall-cmd` or `ufw` (if available). Installs the jriver-createrepo timer and service to build the RPM and move it to the webroot as `www-user`.
## Other Nicities
* Automatically updates `installJRMC` to the latest release.
* Activates external third-party repositories for improved media playback (hardware decoding, etc.).
* Adds temporary legacy repositories to provide deprecated libraries.
* Links non-standard SSL certs.
* Activates MC if a valid license file is found in common locations.
## Examples
* `installJRMC`
Install the latest version of MC from the best available repository.
* `installJRMC --mcversion 33 --debug`
Install the latest version of MC33 from the best available repository with debugging output.
* `installJRMC --install local --compat`
Install a more widely-compatible version of the latest MC (for older distros).
* `installJRMC --install repo --service jriver-mediacenter --service-type user`
Install MC from the repository and start/enable `jriver-mediacenter.service` as a user service.
* `installJRMC --install local --compat --restorefile /path/to/license.mjr --mcversion 35.0.68`
Build and install an MC 35.0.68 compatibility RPM locally and activate it using the `/path/to/license.mjr`.
* `installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --webroot-user www-user`
Build an RPM locally for the current distro, move it to the webroot, and run createrepo as `www-user`.
* `installJRMC --service jriver-createrepo --createrepo-webroot /srv/jriver/repo --webroot-user www-user`
Install the jriver-createrepo timer and service to build the RPM, move it to the webroot, and run createrepo as `www-user` hourly.
* `installJRMC --createrepo --webroot-user nginx --sign --sign-user bryan --sign-key 0xDEADBEEF`
Build/update the RPM repo, sign both RPM and repodata as `bryan`, and publish files owned by `nginx`.
* `installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter --vncpass "letmein"`
Install services to share the existing local desktop via VNC and automatically run MC on startup.
* `installJRMC --install repo --service jriver-xvnc --display ":2"`
Install an Xvnc server on display ':2' that starts MC.
* `installJRMC --uninstall`
Uninstall MC, services, and firewall rules. This will **not** remove your media, media library/database, or library backup folder.
## Additional Info
Find a bug? [Let me know on Interact!](https://yabb.jriver.com/interact/index.php/topic,141168.0.html)
Find `installJRMC` useful? [Paypal me a coffee!](https://paypal.me/bryanroessler)
[↓ ↓ ↓ Bitcoin ↓ ↓ ↓](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)
[![Bitcoin](https://repos.bryanroessler.com/files/bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a.png)](bitcoin:bc1q7wy0kszjavgcrvkxdg7mf3s6rh506rasnhfa4a)

File diff suppressed because it is too large Load Diff