Skip to content

Commit 66085da

Browse files
committed
chore: release 0.8.3
Release-As: 0.8.3
1 parent 2dc24dc commit 66085da

9 files changed

+243
-136
lines changed

.env.example

+32-10
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ RIVEN_LOGGER_SCRAPER_ICON=👻
4343
RIVEN_LOGGER_COMPLETED_FG=FFFFFF
4444
RIVEN_LOGGER_COMPLETED_ICON=🟢
4545

46-
# CACHE log level
47-
RIVEN_LOGGER_CACHE_FG=527826
48-
RIVEN_LOGGER_CACHE_ICON=📜
49-
5046
# NOT_FOUND log level
5147
RIVEN_LOGGER_NOT_FOUND_FG=818589
5248
RIVEN_LOGGER_NOT_FOUND_ICON=🤷‍
@@ -80,7 +76,7 @@ RIVEN_LOGGER_TRAKT_FG=1DB954
8076
RIVEN_LOGGER_TRAKT_ICON=🎵
8177

8278
# Riven Settings
83-
RIVEN_VERSION=0.6.4
79+
RIVEN_VERSION=0.8.3
8480
RIVEN_DEBUG=false
8581
RIVEN_LOG=false
8682
RIVEN_PLEX_UPDATE_INTERNAL=120
@@ -89,11 +85,28 @@ RIVEN_PLEX_URL=http://plex:32400
8985
RIVEN_SYMLINK_RCLONE_PATH=/mnt/zurg/__all__
9086
RIVEN_SYMLINK_LIBRARY_PATH=/mnt/library
9187

88+
# Indexer
89+
RIVEN_INDEXER_UPDATE_INTERVAL=3600
90+
91+
# Database
92+
RIVEN_DATABASE_HOST=sqlite:////riven/data/media.db
93+
9294
# Downloaders
95+
RIVEN_DOWNLOADERS_MOVIE_FILESIZE_MIN=200
96+
RIVEN_DOWNLOADERS_MOVIE_FILESIZE_MAX=-1
97+
RIVEN_DOWNLOADERS_EPISODE_FILESIZE_MIN=40
98+
RIVEN_DOWNLOADERS_EPISODE_FILESIZE_MAX=-1
9399
RIVEN_DOWNLOADERS_REAL_DEBRID_ENABLED=false
94-
RIVEN_DOWNLOADERS_REAL_DEBRID_API_KEY=
100+
RIVEN_DOWNLOADERS_REAL_DEBRID_API_KEY=xxxxx
101+
RIVEN_DOWNLOADERS_REAL_DEBRID_UPDATE_INTERVAL=60
102+
RIVEN_DOWNLOADERS_REAL_DEBRID_PROXY_ENABLED=false
103+
RIVEN_DOWNLOADERS_REAL_DEBRID_PROXY_URL=
104+
RIVEN_DOWNLOADERS_ALL_DEBRID_ENABLED=false
105+
RIVEN_DOWNLOADERS_ALL_DEBRID_API_KEY=xxxxx
106+
RIVEN_DOWNLOADERS_ALL_DEBRID_PROXY_ENABLED=false
107+
RIVEN_DOWNLOADERS_ALL_DEBRID_PROXY_URL=
95108
RIVEN_DOWNLOADERS_TORBOX_ENABLED=false
96-
RIVEN_DOWNLOADERS_TORBOX_API_KEY=
109+
RIVEN_DOWNLOADERS_TORBOX_API_KEY=xxxxx
97110

98111
# Content
99112
RIVEN_CONTENT_OVERSEERR_ENABLED=false
@@ -134,6 +147,9 @@ RIVEN_SCRAPING_JACKETT_LIMITER_SECONDS=60
134147
RIVEN_SCRAPING_PROWLARR_ENABLED=false
135148
RIVEN_SCRAPING_PROWLARR_URL=http://prowlarr:9696
136149
RIVEN_SCRAPING_PROWLARR_API_KEY=
150+
RIVEN_SCRAPING_PROWLARR_TIMEOUT=30
151+
RIVEN_SCRAPING_PROWLARR_RATELIMIT=true
152+
RIVEN_SCRAPING_PROWLARR_LIMITER_SECONDS=60
137153
RIVEN_SCRAPING_ORIONOID_ENABLED=false
138154
RIVEN_SCRAPING_ORIONOID_API_KEY=
139155
RIVEN_SCRAPING_ORIONOID_LIMITCOUNT=5
@@ -145,6 +161,15 @@ RIVEN_SCRAPING_TORBOX_SCRAPER_ENABLED=false
145161
RIVEN_SCRAPING_MEDIAFUSION_ENABLED=false
146162
RIVEN_SCRAPING_MEDIAFUSION_URL=https://mediafusion.elfhosted.com
147163
RIVEN_SCRAPING_MEDIAFUSION_CATALOGS=["prowlarr_streams","torrentio_streams"]
164+
RIVEN_SCRAPING_ZILEAN_ENABLED=false
165+
RIVEN_SCRAPING_ZILEAN_URL=http://zilean:8181
166+
RIVEN_SCRAPING_ZILEAN_TIMEOUT=30
167+
RIVEN_SCRAPING_ZILEAN_RATELIMIT=true
168+
RIVEN_SCRAPING_COMET_ENABLED=false
169+
RIVEN_SCRAPING_COMET_URL=http://comet:8000
170+
RIVEN_SCRAPING_COMET_TIMEOUT=30
171+
RIVEN_SCRAPING_COMET_RATELIMIT=true
172+
RIVEN_SCRAPING_COMET_INDEXERS=["bitsearch, eztv, thepiratebay, yts"]
148173

149174
# Ranking
150175
RIVEN_RANKING_PROFILE=default
@@ -222,6 +247,3 @@ RIVEN_RANKING_CUSTOM_RANKS_SUBBED_RANK=4
222247
RIVEN_RANKING_CUSTOM_RANKS_AV1_ENABLED=false
223248
RIVEN_RANKING_CUSTOM_RANKS_AV1_FETCH=false
224249
RIVEN_RANKING_CUSTOM_RANKS_AV1_RANK=0
225-
226-
# Indexer
227-
RIVEN_INDEXER_UPDATE_INTERVAL=3600

README.md

+26-99
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,29 @@ We are constantly adding features and improvements as we go along and squashing
4747

4848
## Table of Contents
4949

50-
- [Table of Contents](#table-of-contents)
51-
- [ElfHosted](#elfhosted)
52-
- [Self Hosted](#self-hosted)
53-
- [Docker Compose](#docker-compose)
54-
- [What is ORIGIN ?](#what-is-origin-)
55-
- [Running outside of Docker](#running-outside-of-docker)
56-
- [First terminal:](#first-terminal)
57-
- [Second terminal:](#second-terminal)
58-
- [Symlinking settings](#symlinking-settings)
59-
- [Example:](#example)
60-
- [Development](#development)
61-
- [Development without `make`](#development-without-make)
62-
- [Contributing](#contributing)
63-
- [License](#license)
50+
- [Table of Contents](#table-of-contents)
51+
- [ElfHosted](#elfhosted)
52+
- [Self Hosted](#self-hosted)
53+
- [Docker Compose](#docker-compose)
54+
- [What is ORIGIN ?](#what-is-origin-)
55+
- [Running outside of Docker](#running-outside-of-docker)
56+
- [First terminal:](#first-terminal)
57+
- [Second terminal:](#second-terminal)
58+
- [Symlinking settings](#symlinking-settings)
59+
- [Development](#development)
60+
- [Prerequisites](#prerequisites)
61+
- [Initial Setup](#initial-setup)
62+
- [Using `make` for Development](#using-make-for-development)
63+
- [Development without `make`](#development-without-make)
64+
- [Additional Tips](#additional-tips)
65+
- [Contributing](#contributing)
66+
- [Submitting Changes](#submitting-changes)
67+
- [Code Formatting](#code-formatting)
68+
- [Dependency Management](#dependency-management)
69+
- [Setting Up Your Environment](#setting-up-your-environment)
70+
- [Adding or Updating Dependencies](#adding-or-updating-dependencies)
71+
- [Running Tests and Linters](#running-tests-and-linters)
72+
- [License](#license)
6473

6574
---
6675

@@ -80,92 +89,10 @@ We are constantly adding features and improvements as we go along and squashing
8089

8190
### Docker Compose
8291

83-
Create a `docker-compose.yml` file with the following contents:
92+
Copy over the contents of [docker-compose.yml](docker-compose.yml) to your `docker-compose.yml` file.
8493

85-
docker-compose.yml (Backend Only)
86-
```yml
87-
---
88-
services:
89-
riven:
90-
image: spoked/riven:latest
91-
container_name: riven
92-
restart: unless-stopped
93-
ports:
94-
- "8080:8080"
95-
tty: true
96-
environment:
97-
- PUID=1000
98-
- PGID=1000
99-
- TZ=Europe/Amsterdam
100-
- RIVEN_DATABASE_HOST=sqlite:////riven/data/media.db
101-
volumes:
102-
- ./data:/riven/data
103-
- /mnt:/mnt
104-
```
105-
106-
docker-compose.yml (Frontend + Backend + Postgress / SQLite + ports: / network_mode: host)
107-
```yml
108-
---
109-
services:
110-
riven-frontend:
111-
image: spoked/riven-frontend:latest
112-
container_name: riven-frontend
113-
restart: unless-stopped
114-
ports:
115-
- "3000:3000"
116-
#network_mode: host
117-
tty: true
118-
environment:
119-
- PUID=1000
120-
- PGID=1000
121-
- ORIGIN=http://localhost:3000
122-
- BACKEND_URL=http://127.0.0.1:8080
123-
- TZ=America/New_York
124-
depends_on:
125-
riven:
126-
condition: service_healthy
127-
128-
riven:
129-
image: spoked/riven:latest
130-
container_name: riven
131-
restart: unless-stopped
132-
ports:
133-
- "8080:8080"
134-
#network_mode: host
135-
tty: true
136-
environment:
137-
- PUID=1000
138-
- PGID=1000
139-
- TZ=America/New_York
140-
- RIVEN_DATABASE_HOST=postgresql+psycopg2://postgres:postgres@riven_postgres/riven #Postgres database
141-
#- RIVEN_DATABASE_HOST=postgresql+psycopg2://postgres:postgres@localhost/riven #nework_mode: host {use @localhost}
142-
#- RIVEN_DATABASE_HOST=sqlite:////riven/data/media.db #SQLite database
143-
healthcheck:
144-
test: curl -s http://localhost:8080 >/dev/null || exit 1
145-
interval: 30s
146-
timeout: 10s
147-
retries: 10
148-
volumes:
149-
- ./data:/riven/data
150-
- /mnt:/mnt
151-
depends_on: # Add # before all {depend: riven_postgress} lines when using SQLite
152-
riven_postgres:
153-
condition: service_healthy
154-
155-
riven_postgres: # Add # before all {riven_postgres} lines when using SQLite
156-
image: postgres:16.3-alpine3.20
157-
container_name: riven-db
158-
environment:
159-
POSTGRES_USER: postgres
160-
POSTGRES_PASSWORD: postgres
161-
POSTGRES_DB: riven
162-
healthcheck:
163-
test: ["CMD-SHELL", "pg_isready -U postgres"]
164-
interval: 30s
165-
timeout: 10s
166-
retries: 5
167-
#network_mode: host
168-
```
94+
> [!NOTE]
95+
> You can check out the [docker-compose-full.yml](docker-compose-full.yml) file to get an idea of how things tie together.
16996
17097
Then run `docker compose up -d` to start the container in the background. You can then access the web interface at `http://localhost:3000` or whatever port and origin you set in the `docker-compose.yml` file.
17198

docker-compose-dev.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ services:
1111
environment:
1212
- PUID=1000
1313
- PGID=1000
14-
- ORIGIN=${RIVEN_ORIGIN:-http://localhost:8080}
15-
# - RIVEN_FORCE_ENV=true
16-
# - RIVEN_DATABASE_HOST=sqlite:////riven/data/media.db
1714
- TZ=UTC
15+
- ORIGIN=${RIVEN_ORIGIN:-http://localhost:8080}
16+
- RIVEN_FORCE_ENV=true
17+
- RIVEN_DATABASE_HOST=sqlite:////riven/data/media.db
1818
volumes:
1919
- ./data:/riven/data
2020
- /mnt:/mnt

docker-compose-full.yml

+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# This is a full setup for Riven with Plex, Overseerr, Zilean, and Torrentio.
2+
# This compose assumes you already setup rclone and zurg. See notes below!
3+
4+
## Notes:
5+
6+
# Zurg & Rclone will have to be supplied as well and visible to Riven as well as Plex.
7+
# Rclone should be mounted to: /mnt/zurg (optional directory)
8+
# You will need to set the rclone_path in riven to use the `/mnt/zurg/__all__` dir though
9+
# so that Riven can see all the torrents from their parent directory.
10+
11+
services:
12+
riven-frontend:
13+
image: spoked/riven-frontend:latest
14+
container_name: riven-frontend
15+
restart: unless-stopped
16+
ports:
17+
- "3000:3000"
18+
tty: true
19+
environment:
20+
- PUID=1000
21+
- PGID=1000
22+
- ORIGIN=http://localhost:3000 # Set to IP or FQDN of the server
23+
- BACKEND_URL=http://riven:8080
24+
- TZ=America/New_York
25+
depends_on:
26+
riven:
27+
condition: service_healthy
28+
29+
riven:
30+
image: spoked/riven:latest
31+
container_name: riven
32+
restart: unless-stopped
33+
ports:
34+
- "8080:8080"
35+
tty: true
36+
environment:
37+
- PUID=1000
38+
- PGID=1000
39+
- TZ=Etc/UTC
40+
- RIVEN_FORCE_ENV=true # forces the use of env vars to be always used!
41+
- RIVEN_SYMLINK_RCLONE_PATH=/mnt/zurg/__all__ # Set this to your rclone's mount `__all__` dir if using Zurg
42+
- RIVEN_SYMLINK_LIBRARY_PATH=/mnt/library # This is the path that symlinks will be placed in
43+
- RIVEN_DATABASE_HOST=postgresql+psycopg2://postgres:postgres@riven-db/riven
44+
- RIVEN_DOWNLOADERS_REAL_DEBRID_ENABLED=true
45+
- RIVEN_DOWNLOADERS_REAL_DEBRID_API_KEY=xxxxx # set your real debrid api key
46+
- RIVEN_UPDATERS_PLEX_ENABLED=true
47+
- RIVEN_UPDATERS_PLEX_URL=http://plex:32400
48+
- RIVEN_UPDATERS_PLEX_TOKEN=xxxxx # set your plex token
49+
- RIVEN_CONTENT_OVERSEERR_ENABLED=true
50+
- RIVEN_CONTENT_OVERSEERR_URL=http://overseerr:5055
51+
- RIVEN_CONTENT_OVERSEERR_API_KEY=xxxxx # set your overseerr token
52+
- RIVEN_SCRAPING_TORRENTIO_ENABLED=true
53+
- RIVEN_SCRAPING_ZILEAN_ENABLED=true
54+
- RIVEN_SCRAPING_ZILEAN_URL=http://zilean:8181
55+
healthcheck:
56+
test: curl -s http://localhost:8080 >/dev/null || exit 1
57+
interval: 30s
58+
timeout: 10s
59+
retries: 10
60+
volumes:
61+
- ./data:/riven/data
62+
- /mnt:/mnt
63+
depends_on:
64+
riven_postgres:
65+
condition: service_healthy
66+
67+
riven_postgres:
68+
image: postgres:16.3-alpine3.20
69+
container_name: riven-db
70+
restart: unless-stopped
71+
environment:
72+
PGDATA: /var/lib/postgresql/data/pgdata
73+
POSTGRES_USER: postgres
74+
POSTGRES_PASSWORD: postgres
75+
POSTGRES_DB: riven
76+
volumes:
77+
- ./riven-db:/var/lib/postgresql/data/pgdata
78+
healthcheck:
79+
test: ["CMD-SHELL", "pg_isready -U postgres"]
80+
interval: 10s
81+
timeout: 5s
82+
retries: 5
83+
84+
## Plex (optional media server)
85+
86+
plex:
87+
image: plexinc/pms-docker:latest
88+
container_name: plex
89+
restart: unless-stopped
90+
ports:
91+
- "32400:32400"
92+
environment:
93+
- PUID=1000
94+
- PGID=1000
95+
- TZ=Etc/UTC
96+
- VERSION=docker
97+
volumes:
98+
- ./config:/config
99+
- /mnt:/mnt
100+
devices:
101+
- "/dev/dri:/dev/dri"
102+
103+
## Overseerr (optional content service)
104+
105+
overseerr:
106+
image: lscr.io/linuxserver/overseerr:latest
107+
container_name: overseerr
108+
restart: unless-stopped
109+
environment:
110+
- PUID=1000
111+
- PGID=1000
112+
- TZ=Etc/UTC
113+
volumes:
114+
- ./config:/config
115+
ports:
116+
- 5055:5055
117+
118+
## Zilean (optional scraper service)
119+
120+
zilean:
121+
image: ipromknight/zilean:latest
122+
container_name: zilean
123+
restart: unless-stopped
124+
ports:
125+
- "8181:8181"
126+
volumes:
127+
- zilean_data:/app/data
128+
environment:
129+
Zilean__ElasticSearch__Url: http://elasticsearch:9200
130+
healthcheck:
131+
test: curl --connect-timeout 10 --silent --show-error --fail http://localhost:8181/healthchecks/ping
132+
timeout: 60s
133+
interval: 30s
134+
retries: 10
135+
depends_on:
136+
elasticsearch:
137+
condition: service_healthy
138+
139+
elasticsearch:
140+
image: elasticsearch:8.14.1@sha256:ff3998ab3d8a84984e5298d33d01a174fc5f8abed15ad58d0a54364fc63d68d9
141+
container_name: elasticsearch
142+
environment:
143+
ES_SETTING_DISCOVERY_TYPE: single-node
144+
ES_SETTING_XPACK_SECURITY_ENABLED: false
145+
ES_SETTING_BOOTSTRAP_MEMORY__LOCK: true
146+
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
147+
ports:
148+
- "9200:9200"
149+
- "9300:9300"
150+
healthcheck:
151+
test: curl -s http://localhost:9200 >/dev/null || exit 1
152+
interval: 30s
153+
timeout: 10s
154+
retries: 10
155+
volumes:
156+
- elastic_data:/usr/share/elasticsearch/data:rw

0 commit comments

Comments
 (0)