Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump vite from 5.0.9 to 5.0.12 #103

Open
wants to merge 278 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
9f180d5
2.4.0 (#29)
yowmamasita Apr 23, 2023
c2079ea
2.4.1 (#30)
yowmamasita Apr 24, 2023
358fa6c
2.4.2 (#31)
yowmamasita Apr 24, 2023
e7049f8
2.5.0 (#32)
yowmamasita Apr 26, 2023
fcf3051
2.5.1 (#33)
yowmamasita Apr 26, 2023
36ef089
2.5.1 (#34)
yowmamasita Apr 26, 2023
290c6c0
2.5.2 (#35)
yowmamasita Apr 28, 2023
09376c9
2.5.3 (#37)
yowmamasita May 3, 2023
fff7e3a
2.5.4 (#38)
yowmamasita May 3, 2023
f0191da
2.5.5 (#39)
yowmamasita May 4, 2023
1f02116
2.5.6 (#40)
yowmamasita May 4, 2023
6caf8d7
latest changes
Aug 25, 2023
7466818
Add items to TODO
Aug 26, 2023
8bbed8c
update volume and replica count
Aug 26, 2023
7f260bf
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Aug 26, 2023
e0d24f6
Support for firestore as cache
Aug 26, 2023
63fadff
update refs to firestore cache
Aug 26, 2023
7d233fc
use npm instead of yarn
Aug 26, 2023
1c62a82
Change image
Aug 26, 2023
cf794f1
build for multiple platform
Aug 26, 2023
a71157d
build in a matrix
Aug 26, 2023
09ccb97
increase timeout
Aug 26, 2023
1b22f15
proper processing of private key env value
Aug 26, 2023
496afb1
Config request timeout on env
Aug 26, 2023
37eb6e3
Integrate prisma
Aug 26, 2023
388daaf
integrate planetscale
Aug 26, 2023
676b436
upgrade typescript
Aug 26, 2023
43537e4
upgrade next
Aug 26, 2023
e6e84e6
Refactor dockerfile
Aug 26, 2023
c431126
use newer version of node
Aug 26, 2023
4ebc979
Ignore extra dir when building
Aug 26, 2023
cec2f8b
update ci
Aug 26, 2023
500c438
do not use matrix strategy
Aug 26, 2023
9f48279
no more redis
Aug 27, 2023
e1768ce
boost and search fix
Aug 27, 2023
a092994
Add healthcheck
Aug 27, 2023
e3a6126
Add curl and grep to image
Aug 27, 2023
1ff205c
2.5.7 (#45)
yowmamasita Aug 27, 2023
df87a66
2.5.8 (#46)
yowmamasita Aug 27, 2023
dcefb46
2.5.9 (#47)
yowmamasita Aug 27, 2023
fa4b545
add logging
Aug 27, 2023
fdfb321
2.5.10 (#49)
yowmamasita Aug 28, 2023
cce8dcf
2.6.0 (#50)
yowmamasita Aug 29, 2023
f904d1b
2.7.0 (#51)
yowmamasita Aug 29, 2023
bf13154
2.7.1 (#52)
yowmamasita Aug 29, 2023
58eea7f
2.7.2 (#53)
yowmamasita Aug 29, 2023
a85df5c
2.7.3 (#54)
yowmamasita Aug 31, 2023
ed32739
new website (#55)
yowmamasita Aug 31, 2023
5b4c6e9
update tor
Aug 31, 2023
d1d9fdd
unbreakable tor
Aug 31, 2023
7818ef5
proper impl of tor
Aug 31, 2023
f1611a4
2.7.5 (#56)
yowmamasita Sep 1, 2023
a53f5fd
2.7.5 (#57)
yowmamasita Sep 1, 2023
d29b930
3.0.0 (#58)
yowmamasita Sep 2, 2023
03bbe25
3.1.0 (#59)
yowmamasita Sep 3, 2023
eaf91f5
3.2.0 (#60)
yowmamasita Sep 5, 2023
6cc0dec
3.3.0 (#61)
yowmamasita Sep 6, 2023
96cb7c4
3.3.1 (#62)
yowmamasita Sep 6, 2023
1296443
3.4.0 (#63)
yowmamasita Sep 8, 2023
dd5c247
3.4.1 (#64)
yowmamasita Sep 8, 2023
1d9aa2d
3.4.2 (#65)
yowmamasita Sep 8, 2023
4fde52a
3.4.2 (#66)
yowmamasita Sep 9, 2023
292fe9d
updater code
Sep 9, 2023
1d96e29
dont repeat yourself
Sep 9, 2023
33d6dcc
3.4.4 (#67)
yowmamasita Sep 9, 2023
d1d43cb
3.4.5 (#68)
yowmamasita Sep 9, 2023
83dc367
catch edge case in tv scraper: no tmdbid
Sep 10, 2023
40e88e4
add icons to log
Sep 10, 2023
50825e9
movie scraping improvement
Sep 10, 2023
1a50301
fix tor script
Sep 15, 2023
93e9654
3.4.6 (#70)
yowmamasita Sep 20, 2023
5914aba
scraper update
Sep 20, 2023
58a4282
Add proxy manager
Sep 21, 2023
de12e1c
improve performance
Sep 21, 2023
0a4d111
enable btdigg
Sep 21, 2023
4849356
compute proper hash
Sep 21, 2023
c798352
no excess log
Sep 21, 2023
95b10e5
more efficient jackett
Sep 21, 2023
ca288ae
prowlarr
Sep 21, 2023
da89d89
prowlarr fixes
Sep 21, 2023
67a9c90
reorder
Sep 21, 2023
1e74e4b
adjust timeout
Sep 21, 2023
dc86507
reenable jackett
Sep 21, 2023
0b05e5e
dune fix
Sep 22, 2023
82f7268
3.4.7 (#71)
yowmamasita Sep 22, 2023
f007462
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Sep 22, 2023
0d4aa06
updater done
Sep 22, 2023
02f9266
processed done
Sep 22, 2023
ebeb3ad
requested done
Sep 22, 2023
4eb4773
other updates
Sep 22, 2023
ae9d11c
scrapers done
Sep 22, 2023
92aaa16
format
Sep 22, 2023
861edb5
scrape fixes
Sep 22, 2023
0b7283c
mdblist scrape improvements
Sep 23, 2023
6519698
olderthen input
Sep 23, 2023
127f1ec
correct logic
Sep 23, 2023
b7de577
fix logic
Sep 23, 2023
1ad2aaa
add skip
Sep 23, 2023
b1cb8f8
update word list
Sep 23, 2023
5b01b67
remove keys
Sep 23, 2023
a9b8f03
3.5.0 (#72)
yowmamasita Sep 24, 2023
adbcd4e
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Sep 24, 2023
a9625ba
3.5.1 (#73)
yowmamasita Sep 24, 2023
36d8316
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Sep 24, 2023
088e86a
3.6.0 (#74)
yowmamasita Sep 24, 2023
f0b3b4f
3.6.1 (#75)
yowmamasita Sep 24, 2023
c3de529
apply filter hotfix
Sep 24, 2023
b15afcd
use node 18
Sep 24, 2023
75fccdd
generate prisma first before build
Sep 24, 2023
842503b
Add cases to troubleshoot
Sep 24, 2023
5d8a34c
add binary target for arm64
Sep 24, 2023
d13ed6e
3.6.2 (#76)
yowmamasita Sep 24, 2023
4299c96
correct usage of service inside ssr page
Sep 24, 2023
a414381
3.6.3 (#77)
yowmamasita Sep 24, 2023
adff404
Generate when prisma folder is already present
Sep 24, 2023
6616704
rework dockerfile
Sep 24, 2023
6abfb28
rework dockerfile 2
Sep 24, 2023
316e9a7
Change health check ip
Sep 24, 2023
8c09558
3.6.4 (#78)
yowmamasita Sep 24, 2023
96d5d3a
fix
Sep 24, 2023
b1adca7
Fix issue reported by @machetie
Sep 25, 2023
ca0d1cc
3.7.0 (#79)
yowmamasita Sep 25, 2023
7690252
3.7.1 (#80)
yowmamasita Sep 25, 2023
c5b46e1
3.7.2 (#81)
yowmamasita Oct 2, 2023
de0e0b4
3.7.3 (#82)
yowmamasita Oct 2, 2023
33e058f
3.7.4 (#83)
yowmamasita Oct 3, 2023
b6a86ea
3.7.5 (#84)
yowmamasita Oct 3, 2023
44bffee
Hello there!
Oct 3, 2023
5f7d721
3.8.0 (#85)
yowmamasita Oct 8, 2023
fb12441
small fix
Oct 8, 2023
17326da
small fix 2
Oct 8, 2023
22141c1
clean on scrape
Oct 8, 2023
b2c9e2e
3.8.1 (#87)
yowmamasita Oct 20, 2023
bc6e854
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Oct 25, 2023
092523c
3.8.2 (#88)
yowmamasita Oct 29, 2023
8d85db4
Merge branch 'main' of github.com:yowmamasita/debrid-media-manager
Oct 29, 2023
22b5588
fix dupe detection
Oct 29, 2023
d9d28e6
New scrapers (#1)
yowmamasita Nov 6, 2023
b93b898
add password
Nov 6, 2023
73a039a
Same hash&size fix
Nov 8, 2023
85326f5
Improve index page
Nov 8, 2023
3364886
Create anticors endpoint
Nov 13, 2023
ad48007
Add error for checking if login was blocked
Nov 13, 2023
88eebfd
Fix AllDebrid issue
Nov 13, 2023
bb36a58
Fix the 2500 limit problem
Nov 14, 2023
fcc5050
Formatting
Nov 14, 2023
8c80d29
3.9.0 update
Nov 14, 2023
4328d5a
Logout and type detection improvements
Nov 14, 2023
0fa22b7
3.9.1
Nov 14, 2023
6f1e223
Fix issues
Nov 14, 2023
a5218ff
optimize build speeds
Nov 14, 2023
8bf7c68
Use version output
Nov 14, 2023
8980438
Add downloading stats
Nov 15, 2023
86b1f62
Revert dockerfile change
Nov 15, 2023
0161702
Make it work for alldebrid
Nov 15, 2023
d09ac76
Fix show cached
Nov 15, 2023
72bb7c5
Add clean up function
Nov 15, 2023
bf24cee
Fix hashlist filtering
Nov 15, 2023
380deed
Fix search results not being sorted properly
Nov 16, 2023
8f7cf5c
Add info btn
Nov 16, 2023
b935425
Add download buttons only when intact
Nov 16, 2023
82b28ff
A proper file list
Nov 16, 2023
9146c1a
implement library changes on hashlist
Nov 16, 2023
61aadca
Improve search accuracy by adding movie filter
Nov 17, 2023
ec1dea4
Add tip
Nov 17, 2023
cc7aba6
Cleanup only considers completed torrents
Nov 19, 2023
fd2629f
Add more options for deletion, remove auto delete
Nov 19, 2023
336b10a
Remove extra step
Nov 19, 2023
8eed954
Fix requested scraper
Nov 26, 2023
7464547
Add empty updater
Nov 26, 2023
4e0362c
Why do we delete in the first place
Dec 3, 2023
f42ac7c
Extra checks for banned words
Dec 3, 2023
630fbef
Better checks
Dec 4, 2023
446a14b
Improve title matcher
Dec 4, 2023
9884c9b
Fix passing years
Dec 4, 2023
e828964
Tweak scraper
Dec 4, 2023
f375d82
Use cleaners on upkeep
Dec 4, 2023
9bd6c1f
unban words
Dec 5, 2023
8102be2
Fix fatal flaw
Dec 5, 2023
933d647
Remove debug
Dec 5, 2023
727969b
Add tolerance for tolerance
Dec 5, 2023
f481e38
Rework check
Dec 5, 2023
6044bec
Improve checks
Dec 5, 2023
fe4ce36
Improve checks
Dec 5, 2023
255b41e
Fix checks
Dec 5, 2023
521bc37
Improve title check
Dec 5, 2023
8d01aa0
Check repair
Dec 5, 2023
81432a2
Add word terminal check
Dec 9, 2023
21ca5e0
Update packages
Dec 15, 2023
957670f
Add copy magnet to clipboard feature
Dec 15, 2023
38b35b3
Refactor add and delete magnet
Dec 15, 2023
84bbdab
Reinsert refactor
Dec 15, 2023
86da7d4
Refactory library funcs
Dec 15, 2023
3f8e2d7
Refactor hashlist functions
Dec 15, 2023
be3dd1d
Hide icons if no use
Dec 16, 2023
9fef673
Add size emoji
Dec 16, 2023
8ba3a03
Support adding magnets
Dec 16, 2023
4ef15d0
Allow copy magnet url
Dec 16, 2023
00ccd55
Improve searching
Dec 16, 2023
459cd4b
Fix search
Dec 16, 2023
74daca0
Add more banned words
Dec 17, 2023
18a03ee
Add misc search
Dec 18, 2023
7f28a96
Fix checker for key terms in foreign chars
Dec 18, 2023
29077e8
Fix infinite search
Dec 18, 2023
89d4327
Refactor to use indexeddb
Dec 19, 2023
eaf23be
Fix indexeddb issue with ssr
Dec 19, 2023
fdf9565
Fix issues on updates
Dec 19, 2023
8e72396
Fix deletes
Dec 19, 2023
634d672
Add allowance when refreshing torrents
Dec 19, 2023
c81794a
Load from db cache
Dec 19, 2023
74690f1
Fix db cache issues
Dec 19, 2023
0251e20
create backup for last week
Dec 19, 2023
808b967
Mobile mode QoL fixes
Dec 20, 2023
dadf759
Remove restriction
Dec 20, 2023
ed59a27
Improve mobile layout
Dec 20, 2023
0649692
Adjust button sizes
Dec 20, 2023
e7335b6
Smaller texts
Dec 20, 2023
df570ac
Remove landscape warning
Dec 20, 2023
808fca5
Make the logo smaller
Dec 20, 2023
daeab80
Optimize layout
Dec 20, 2023
84461ec
Fix loading screen
Dec 20, 2023
bd06cfe
Watch with infuse
Dec 20, 2023
69350c1
Add bare functions to rd api
Dec 20, 2023
0163fb4
Finalize search pages
Dec 20, 2023
cdacad4
Remove horizontal rule
Dec 20, 2023
6bc6c87
Fix reinsert and combine hash feature
Dec 20, 2023
d2113b2
Fix sync of data with database
Dec 20, 2023
cf30567
Pass client ip to realdebrid
Dec 20, 2023
949dc60
instant watch feature
Dec 20, 2023
4a56906
Fix cleaners
Dec 21, 2023
0f1cc4a
Watch from DMM
Dec 21, 2023
2da3b15
Add icons
Dec 21, 2023
3ed33cf
Choose YOUR player
Dec 21, 2023
70c6255
Relayout search and index page
Dec 21, 2023
9eaeca6
Support android players
Dec 21, 2023
42a7966
Set player properly
Dec 21, 2023
e2766cc
Rework watch option for tv
Dec 22, 2023
4f127a4
Finalize TV watching experience
Dec 22, 2023
f57e482
Use info modal for movies
Dec 22, 2023
9fdad9f
Fix app chooser
Dec 22, 2023
3cb991b
Restyle
Dec 22, 2023
563b996
Use web as default, fix button layout in results page
Dec 22, 2023
6c11795
Banned words update
Dec 22, 2023
252e127
Add browse buttons
Dec 22, 2023
7a43e25
Rework layout of index page
Dec 22, 2023
bea492d
Change default player to web
Dec 22, 2023
bcac9bf
Adjust headers
Dec 22, 2023
9a9bd3f
Improve search
Dec 23, 2023
143b20a
Still use omdb top result
Dec 23, 2023
45b55fe
Bump vite from 5.0.9 to 5.0.12
dependabot[bot] Jan 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,2 +1,16 @@
REQUEST_TIMEOUT=5000
GH_PAT=github-access-token
REDIS_URL=redis://localhost:6379
PROXY=tor:9050

TMDB_KEY=abc123
MDBLIST_KEY=abc123

DATABASE_URL="mysql://username:[email protected]/database?sslaccept=strict"
JACKETT="http://localhost:9117"
JACKETT_KEY=abc123
PROWLARR="http://localhost:9696"
PROWLARR_KEY=abc123

EXTERNAL_SEARCH_API_HOSTNAME=

OMDB_KEY=abc123
26 changes: 17 additions & 9 deletions .github/workflows/build-and-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- main
paths-ignore:
- '**.md'

jobs:
build-and-push:
Expand All @@ -14,35 +16,41 @@ jobs:
uses: actions/checkout@v2

- name: Cache node modules
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: node_modules
path: |
node_modules
*/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-


- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Read version from package.json
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
id: version
run: echo "version=$(node -p "require('./package.json').version")" >> "$GITHUB_OUTPUT"

- name: Build and push Docker image
id: build-image
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
debridmediamanager/debrid-media-manager:latest
debridmediamanager/debrid-media-manager:${{ env.version }}
debridmediamanager/debrid-media-manager:${{ steps.version.outputs.version }}
45 changes: 45 additions & 0 deletions .github/workflows/build-tor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build Tor

on:
push:
branches:
- main
paths:
- 'tor.Dockerfile'

jobs:
tor-build-and-push:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Read version from package.json
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_ENV

- name: Build and push Docker image
id: build-image
uses: docker/build-push-action@v4
with:
context: .
file: tor.Dockerfile
push: true
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
debridmediamanager/tor:latest
debridmediamanager/tor:${{ env.version }}
38 changes: 38 additions & 0 deletions .github/workflows/check-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Check Package Version

on:
pull_request:
branches: [main]

jobs:
check-package-version:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check for version update in package.json
id: check-version
run: |
changed_files=$(git diff --name-only origin/main)
if echo "$changed_files" | grep --quiet 'package.json'; then
# Extract the version field value using jq
version=$(jq -r '.version' package.json)
if [[ "$version" != "$(git show origin/main:package.json | jq -r '.version')" ]]; then
echo "::set-output name=changed::true"
else
echo "::set-output name=changed::false"
fi
else
echo "::set-output name=changed::false"
fi
- name: Fail if version was not updated
if: steps.check-version.outputs.changed == 'false'
run: |
echo "The package.json version was not updated."
exit 1
- name: Pass if version was updated
if: steps.check-version.outputs.changed == 'true'
run: |
echo "The package.json version was updated."
31 changes: 31 additions & 0 deletions .github/workflows/lint-and-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Lint and Build

on:
push:
branches-ignore:
- main

jobs:
build-and-lint:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Cache node modules
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Install dependencies
run: npm ci

- name: Run lint
run: npm run lint

- name: Build
run: npm run build
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,7 @@ src/utils/parser.ts

tmp/
temp/

pscale_dump_dmm_main/

*.sqlite
45 changes: 35 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
FROM node:16-alpine as builder
FROM node:18-alpine AS dependencies

WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci

FROM node:18-alpine AS build

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY --from=dependencies /app/node_modules ./node_modules
COPY . .

RUN npx prisma generate
RUN npm run build

FROM node:16-alpine as production
FROM node:18-alpine AS deploy

WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY --from=builder /app/.next ./.next
COPY ./public ./public
ENV NODE_ENV=production

ENV NODE_ENV production

COPY --from=build /app/public ./public
COPY --from=build /app/package.json ./package.json
COPY --from=build /app/prisma ./prisma
COPY --from=build /app/.next/static ./.next/static
COPY --from=build /app/.next/standalone .

EXPOSE 3000
CMD [ "npm", "start" ]

ENV PORT 3000
# set hostname to localhost
ENV HOSTNAME "0.0.0.0"

CMD ["node", "server.js"]

# Install additional tools (curl and grep)
RUN apk --no-cache add curl grep

# Healthcheck
HEALTHCHECK --interval=30s --timeout=1s --start-period=3s --retries=1 \
CMD curl -s http://localhost:3000/api/healthz | grep -qm1 ok
40 changes: 34 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@

# Debrid Media Manager

Start building your media library with truly unlimited storage size
Start building your media library with truly unlimited storage size!

## What is this?

Do you want a movie and TV show library that has unlimited size? Consider using a Debrid service, like Real-Debrid or AllDebrid. These services work like a shared storage space for downloading torrents. You can download as much as you want without worrying about storage limits, because the files are shared among all users. You only "own" the file when you download it to your account.

These Debrid services also offer a feature called a WebDAV API. Think of it as a special tool that lets you connect your media library to different devices or software. It's like your Windows Samba share but better.

You can use this WebDAV API to connect your media library to different media players that support it, like [Infuse](https://firecore.com/infuse), which works on Apple devices like Mac, iPhone, Apple TV, and iPad. You can also connect it to your server and use it with media server software like Plex, Emby, or Jellyfin. This way, your media library can be accessed and played from anywhere!

To make this process even easier, I've developed this **free** and open source website called [Debrid Media Manager](https://debridmediamanager.com/). With this app, you can easily download movies and TV shows directly to your Debrid library. You can build and curate your media collection without ever worrying about storage limits.

## Features

Expand All @@ -22,11 +32,29 @@ You can share your whole collection or select specific items you want to share.

## Setup

0. Have Tor running at `127.0.0.1:9050` (needed for DHT search; if you don't use that then it's not needed)
1. Clone this repository
2. Install the dependencies `npm i`
3. This is a Next.js project so either go with `npm run dev` or `npm run build && npm run start`
4. Head to `localhost:3000` and login
0. Signup for a free tier plan at [PlanetScale](https://planetscale.com/) - this is a serverless MySQL database hosted in the cloud
1. Have Tor running at `127.0.0.1:9050` (needed for DHT search; if you don't need your own search database then refer to the secion `External Search API`)
2. Clone this repository and go to the directory
3. Create a copy of the `.env` file `cp .env .env.local` and fill in the details
4. Fill in required settings in `.env.local` (e.g. `PROXY=socks5h://127.0.0.1:9050` if tor is running on your host machine)
5. Get your Prisma database connection string from PlanetScale console and put that in your `.env.local` file
6. Install the dependencies `npm i`
7. This is a Next.js project so either go with `npm run dev` or `npm run build && npm run start`
8. Head to `localhost:3000` and login

### External Search API

If you don't want to build your own library, edit the config `EXTERNAL_SEARCH_API_HOSTNAME` in your `.env.local` and set it to `https://corsproxy.org/?https://debridmediamanager.com`

### Docker Swarm

```
cp .env .env.local
docker swarm init
docker stack deploy -c docker-compose.yml
```

The website will be accessible at `http://localhost:3000`

## FAQ

Expand Down
35 changes: 28 additions & 7 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,38 @@
- [✔️] Media page, button: delete failed content
- [✔️] Media page, button: delete slow content
- [✔️] Media page, button: auto select files
- [] Media page, button: reinsert rar archives
- [] Media page, button: dedupe hash
- [✔️] Media page, button: reinsert rar archives
- [✔️] Media page, button: dedupe hash
- [✔️] Media page, button: dedupe content
- [✔️] Identify IMDB link
- [✔️] Group by IMDB link
- [✔️] Media page, button: share to the internet
- [] Refactor pages into different components
- [✔️] When waiting_files_selection and Select button is pressed, should convert to downloading
- [] Add title filter buttons on search page
- [✔️] Downloading has race condition on status
- [] Dockerize with tor
- [] Make the architecture more scalable using docker swarm
- [] Rescan library button in all other pages except library
- [✔️] Dockerize with tor
- [✔️] Make the architecture more scalable using docker swarm
- [✔️] Find cached and selectable download on search
- [✔️] 2.3.0: Show AD/RD download buttons even if status=downloaded
- [✔️] 2.5.0: Add instant check in AD on search page (removed due to performance impact)
- [✔️] 2.5.0: Add title filter buttons on search page
- [] 2.7.0: Rescan library button in all other pages except library
- [] 2.7.0: Add Auto-DL checkbox to download the "best" option from search
- [] 2.9.0: New page: "Sync mdblist.com list"
- [] 3.0.0: Improve search by combining mdblist with TMDB and then using https://www.npmjs.com/package/fast-levenshtein
- [] 4.0.0: Add tests
- [] 5.0.0: Refactor pages into different components
- [✔️] Fix requested api endpoint
- [✔️] Existing results checker
- [✔️] Add season jumper in shows page
- [✔️] Backup library feature (download library as a file for importing)
- [✔️] Restore library feature
- [✔️] Fix issue with availability check
- [✔️] AD availability check optimization
- [✔️] Fix season parsing in Show page
- [✔️] Fix season parsing in Search page
- [✔️] Fix season parsing in scraper
- [] Library: Allow watching to preview downloads
- [] Hashlist: Allow watching to preview downloads
- [] Downloads/Movie: Allow watching to preview downloads
- [] Downloads/TV?: Allow watching to preview downloads
- [] Better anime support
Loading
Loading