Compare commits
16 Commits
0214d68f7e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
e5fd6817e0
|
|||
| f9918cd5b3 | |||
| f56813fd6e | |||
| 52853c6fd6 | |||
| 48c7af9b83 | |||
| 6512117aca | |||
| ab4c119e04 | |||
| b2ae5bd9d9 | |||
| ea4cfeb42d | |||
| 89f8a64b51 | |||
| 358353f850 | |||
| 108ebf249c | |||
| 1e67bd8fa7 | |||
| 41f1be92ee | |||
| eb3ce38562 | |||
| 52d261b06f |
@@ -0,0 +1 @@
|
|||||||
|
.idea
|
||||||
@@ -3,6 +3,7 @@ A demo repository with a basic HTPC configuration for demonstration and testing
|
|||||||
|
|
||||||
## One-Command Run
|
## One-Command Run
|
||||||
To clone the repo and run the demo all in one go, the following command will download the [managarr-demo](./managarr-demo.sh) script and run it:
|
To clone the repo and run the demo all in one go, the following command will download the [managarr-demo](./managarr-demo.sh) script and run it:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/managarr-demo.sh > /tmp/managarr-demo.sh && bash /tmp/managarr-demo.sh
|
curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/managarr-demo.sh > /tmp/managarr-demo.sh && bash /tmp/managarr-demo.sh
|
||||||
```
|
```
|
||||||
@@ -10,27 +11,69 @@ curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/managarr-
|
|||||||
**Note**: This script will only work on systems with `bash` installed.
|
**Note**: This script will only work on systems with `bash` installed.
|
||||||
|
|
||||||
## Running the demo
|
## Running the demo
|
||||||
To run this demo, simply run the following command:
|
To run this demo, simply run the [demo script](./managarr-demo.sh):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker compose up --rm managarr && docker compose down
|
./managarr-demo.sh
|
||||||
```
|
|
||||||
|
|
||||||
## Cleanup
|
|
||||||
This demo will download a handful of docker images. To clean up after this demo, run the following command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
docker image rm darkalex17/managarr &&\
|
|
||||||
docker image rm lscr.io/linuxserver/radarr &&\
|
|
||||||
docker image rm lscr.io/linuxserver/prowlarr &&\
|
|
||||||
rm -rf /tmp/managarr-demo &&\
|
|
||||||
rm -rf /tmp/managarr-demo.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
This demo has no download functionality. It is an eventual goal to have a mock API for one of the BitTorrent clients like Transmission
|
This demo has no download functionality. It is an eventual goal to have a mock API for one of the BitTorrent clients like Transmission
|
||||||
to emulate this functionality for a full demo experience.
|
to emulate this functionality for a full demo experience.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
This repo uses [just](https://github.com/casey/just) to manage build tasks.
|
||||||
|
|
||||||
|
To build any individual mock Servarr docker image or even all of them, you can use the `build` recipes in the [justfile](./justfile):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ just --list
|
||||||
|
Available recipes:
|
||||||
|
...
|
||||||
|
|
||||||
|
[build]
|
||||||
|
build-all # Build all mock container images
|
||||||
|
build-lidarr # Build the Lidarr mock image
|
||||||
|
build-prowlarr # Build the Prowlarr mock image
|
||||||
|
build-radarr # Build the Radarr mock image
|
||||||
|
build-sonarr # Build the Sonarr mock image
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pushing
|
||||||
|
This repo uses [just](https://github.com/casey/just) to manage push tasks.
|
||||||
|
|
||||||
|
To push any individual mock Servarr docker image or even all of them, you can use the `push` recipes in the [justfile](./justfile):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ just --list
|
||||||
|
Available recipes:
|
||||||
|
...
|
||||||
|
|
||||||
|
[push]
|
||||||
|
push-all # Push all mock container images
|
||||||
|
push-lidarr # Push the Lidarr mock image
|
||||||
|
push-prowlarr # Push the Prowlarr mock image
|
||||||
|
push-radarr # Push the Radarr mock image
|
||||||
|
push-sonarr # Push the Sonarr mock image
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running directly with docker compose
|
||||||
|
If you wish to run the demo directly from the [docker-compose.yml](./docker-compose.yml),
|
||||||
|
you can either run it simply with
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker compose run --rm managarr
|
||||||
|
```
|
||||||
|
|
||||||
|
which will use the [default managarr configuration file](./mock-htpc/managarr/config.yml), or you can specify it manually with the `MANAGARR_CONFIG` environment variable:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
MANAGARR_CONFIG=/tmp/managarr.yml docker compose run --rm managarr
|
||||||
|
```
|
||||||
|
|
||||||
## Creator
|
## Creator
|
||||||
* [Alex Clarke](https://github.com/Dark-Alex-17)
|
* [Alex Clarke](https://github.com/Dark-Alex-17)
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +1,23 @@
|
|||||||
---
|
---
|
||||||
services:
|
services:
|
||||||
radarr:
|
radarr-mock:
|
||||||
image: lscr.io/linuxserver/radarr:latest
|
image: darkalex17/radarr-mock:latest
|
||||||
container_name: radarr
|
container_name: radarr-mock
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Etc/UTC
|
|
||||||
volumes:
|
|
||||||
- ./mock-htpc/movies:/movies
|
|
||||||
- ./mock-htpc/films:/films
|
|
||||||
- ./mock-htpc/downloads:/downloads
|
|
||||||
- ./mock-htpc/radarr:/config
|
|
||||||
ports:
|
|
||||||
- 7878:7878
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
prowlarr:
|
sonarr-mock:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: darkalex17/sonarr-mock:latest
|
||||||
container_name: prowlarr
|
container_name: sonarr-mock
|
||||||
environment:
|
restart: unless-stopped
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
lidarr-mock:
|
||||||
- TZ=Etc/UTC
|
image: darkalex17/lidarr-mock:latest
|
||||||
volumes:
|
container_name: lidarr-mock
|
||||||
- ./mock-htpc/prowlarr:/config
|
restart: unless-stopped
|
||||||
ports:
|
|
||||||
- 9696:9696
|
prowlarr-mock:
|
||||||
|
image: darkalex17/prowlarr-mock:latest
|
||||||
|
container_name: prowlarr-mock
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
managarr:
|
managarr:
|
||||||
@@ -34,9 +25,13 @@ services:
|
|||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
- ./mock-htpc/managarr:/root/.config/managarr/
|
- "${MANAGARR_CONFIG:-./mock-htpc/managarr/config.yml}:/root/.config/managarr/config.yml:ro"
|
||||||
depends_on:
|
depends_on:
|
||||||
radarr:
|
radarr-mock:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
prowlarr:
|
sonarr-mock:
|
||||||
|
condition: service_started
|
||||||
|
lidarr-mock:
|
||||||
|
condition: service_started
|
||||||
|
prowlarr-mock:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
VERSION := "latest"
|
||||||
|
REPO := "darkalex17"
|
||||||
|
|
||||||
|
# List all recipes
|
||||||
|
default:
|
||||||
|
@just --list
|
||||||
|
|
||||||
|
# Build the Radarr mock image
|
||||||
|
[group: 'build']
|
||||||
|
@build-radarr:
|
||||||
|
docker build -f radarr.Dockerfile -t {{REPO}}/radarr-mock:{{VERSION}} .
|
||||||
|
|
||||||
|
# Build the Sonarr mock image
|
||||||
|
[group: 'build']
|
||||||
|
@build-sonarr:
|
||||||
|
docker build -f sonarr.Dockerfile -t {{REPO}}/sonarr-mock:{{VERSION}} .
|
||||||
|
|
||||||
|
# Build the Lidarr mock image
|
||||||
|
[group: 'build']
|
||||||
|
@build-lidarr:
|
||||||
|
docker build -f lidarr.Dockerfile -t {{REPO}}/lidarr-mock:{{VERSION}} .
|
||||||
|
|
||||||
|
# Build the Prowlarr mock image
|
||||||
|
[group: 'build']
|
||||||
|
@build-prowlarr:
|
||||||
|
docker build -f prowlarr.Dockerfile -t {{REPO}}/prowlarr-mock:{{VERSION}} .
|
||||||
|
|
||||||
|
# Build all mock container images
|
||||||
|
[group: 'build']
|
||||||
|
@build-all: build-radarr build-sonarr build-lidarr build-prowlarr
|
||||||
|
|
||||||
|
# Push the Radarr mock image
|
||||||
|
[group: 'push']
|
||||||
|
@push-radarr: build-radarr
|
||||||
|
docker push {{REPO}}/radarr-mock:{{VERSION}}
|
||||||
|
|
||||||
|
# Push the Sonarr mock image
|
||||||
|
[group: 'push']
|
||||||
|
@push-sonarr: build-sonarr
|
||||||
|
docker push {{REPO}}/sonarr-mock:{{VERSION}}
|
||||||
|
|
||||||
|
# Push the Lidarr mock image
|
||||||
|
[group: 'push']
|
||||||
|
@push-lidarr: build-lidarr
|
||||||
|
docker push {{REPO}}/lidarr-mock:{{VERSION}}
|
||||||
|
|
||||||
|
# Push the Prowlarr mock image
|
||||||
|
[group: 'push']
|
||||||
|
@push-prowlarr: build-prowlarr
|
||||||
|
docker push {{REPO}}/prowlarr-mock:{{VERSION}}
|
||||||
|
|
||||||
|
# Push all mock container images
|
||||||
|
[group: 'push']
|
||||||
|
@push-all: push-radarr push-sonarr push-lidarr push-prowlarr
|
||||||
|
|
||||||
|
# Run the demo
|
||||||
|
[group: 'run']
|
||||||
|
@run-demo:
|
||||||
|
docker compose run --rm managarr
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
FROM lscr.io/linuxserver/lidarr:latest
|
||||||
|
|
||||||
|
ENV PUID=1000
|
||||||
|
ENV PGID=1000
|
||||||
|
ENV TZ=Etc/UTC
|
||||||
|
|
||||||
|
COPY ./mock-htpc/lidarr/ /config
|
||||||
|
COPY ./mock-htpc/music /music
|
||||||
@@ -1,21 +1,37 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
DEMO_TEMP_DIR=/tmp/managarr-demo
|
DEMO_TEMP_COMPOSE_FILE=/tmp/docker-compose.yml
|
||||||
|
DEMO_TEMP_CONFIG_FILE=/tmp/config.yml
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
docker compose -f "$DEMO_TEMP_COMPOSE_FILE" down
|
||||||
|
|
||||||
|
docker rmi -f $(docker images | grep "darkalex17" | awk '{print $3}')
|
||||||
|
|
||||||
|
rm -rf "$DEMO_TEMP_COMPOSE_FILE"
|
||||||
|
rm -rf "$DEMO_TEMP_CONFIG_FILE"
|
||||||
|
rm -rf /tmp/managarr-demo.sh
|
||||||
|
}
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
result=$?
|
result=$?
|
||||||
|
cleanup
|
||||||
if [ "$result" != "0" ]; then
|
if [ "$result" != "0" ]; then
|
||||||
echo "Fail to run the Managarr demo"
|
echo "Failed to run the Managarr demo"
|
||||||
fi
|
fi
|
||||||
exit $result
|
exit $result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
[ -f "$DEMO_TEMP_COMPOSE_FILE" ] || curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/docker-compose.yml > "$DEMO_TEMP_COMPOSE_FILE"
|
||||||
|
[ -f "$DEMO_TEMP_CONFIG_FILE" ] || curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/mock-htpc/managarr/config.yml > "$DEMO_TEMP_CONFIG_FILE"
|
||||||
|
|
||||||
|
MANAGARR_CONFIG="$DEMO_TEMP_CONFIG_FILE" docker compose -f "$DEMO_TEMP_COMPOSE_FILE" run --rm managarr
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
}
|
||||||
|
|
||||||
trap "fail" EXIT
|
trap "fail" EXIT
|
||||||
set -e
|
set -e
|
||||||
|
main
|
||||||
|
|
||||||
[ -d "$DEMO_TEMP_DIR" ] || git clone git@github.com:Dark-Alex-17/managarr-demo.git "$DEMO_TEMP_DIR"
|
|
||||||
|
|
||||||
docker compose -f "$DEMO_TEMP_DIR/docker-compose.yml" run --rm managarr &&\
|
|
||||||
docker compose -f "$DEMO_TEMP_DIR/docker-compose.yml" down &&\
|
|
||||||
docker image rm darkalex17/managarr &&\
|
|
||||||
rm -rf /tmp/managarr-demo.sh
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 182 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 242 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 601 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 498 KiB |
|
After Width: | Height: | Size: 483 KiB |
|
After Width: | Height: | Size: 450 KiB |
|
After Width: | Height: | Size: 525 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 411 KiB |
|
After Width: | Height: | Size: 452 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 450 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 437 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 236 KiB |
|
After Width: | Height: | Size: 327 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 395 KiB |
|
After Width: | Height: | Size: 268 KiB |
|
After Width: | Height: | Size: 327 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 352 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 557 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 247 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 260 KiB |
|
After Width: | Height: | Size: 465 KiB |
|
After Width: | Height: | Size: 591 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 718 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
After Width: | Height: | Size: 401 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 286 KiB |
|
After Width: | Height: | Size: 337 KiB |
|
After Width: | Height: | Size: 521 KiB |
|
After Width: | Height: | Size: 718 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 638 KiB |
|
After Width: | Height: | Size: 246 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 477 KiB |
|
After Width: | Height: | Size: 570 KiB |
|
After Width: | Height: | Size: 422 KiB |
|
After Width: | Height: | Size: 432 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 206 KiB |