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

feat: frontend improvements #158

Merged
merged 41 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
c107453
feat: added global debug for settings
AyushSehrawat Jan 6, 2024
c65c500
feat: added dev to formDebug so it's always true in development but f…
AyushSehrawat Jan 6, 2024
b5280a7
feat: added DEBUG & LOG to general settings
AyushSehrawat Jan 6, 2024
9a8f4e1
deps: switched svelte-sonner to shadcn customized toast component
AyushSehrawat Jan 6, 2024
3cde4c2
refactor: renamed PlexDebridItem to IcebergItem and added changes mad…
AyushSehrawat Jan 6, 2024
4c34983
fix: fixed the wrong relative date in status page
AyushSehrawat Jan 6, 2024
74d57e9
Merge branch 'main' into frontend-improvements
AyushSehrawat Jan 8, 2024
87aa1b5
docs: readme improvements
AyushSehrawat Jan 8, 2024
e75fb66
docs: readme improvements
AyushSehrawat Jan 8, 2024
d525db9
docs: readme improvements
AyushSehrawat Jan 8, 2024
099b55c
chore(deps): bump lucide-svelte from 0.303.0 to 0.307.0 in /frontend …
dependabot[bot] Jan 9, 2024
e25bbb0
refactor: componentized forms, soon will do same for fields too
AyushSehrawat Jan 11, 2024
a7708f9
Parse rewrite (#128)
dreulavelle Jan 14, 2024
1d8df59
feat: onboarding on the way ;), major refactoring of form related code
AyushSehrawat Jan 15, 2024
a36a1d0
Simplified downloading logic and modified state matchine
Jan 6, 2024
9ce7c9c
fix typo in state machine and handle movie pathing correctly
Jan 6, 2024
06eeeab
Remove useless method
Jan 6, 2024
8b57ca7
Temporary fix to test
Jan 8, 2024
69434fc
Remove uncached stream hashes from item to avoid loop, some blacklist…
Jan 14, 2024
15a4d96
chore(deps-dev): bump @typescript-eslint/eslint-plugin in /frontend (…
dependabot[bot] Jan 17, 2024
8855390
chore(deps): bump lucide-svelte from 0.307.0 to 0.309.0 in /frontend …
dependabot[bot] Jan 17, 2024
8d8d5c4
chore(deps-dev): bump @sveltejs/kit from 2.0.1 to 2.3.2 in /frontend …
dependabot[bot] Jan 17, 2024
eb81df8
chore(deps): bump bits-ui from 0.13.0 to 0.14.0 in /frontend (#130)
dependabot[bot] Jan 17, 2024
8db126d
chore(deps-dev): bump @sveltejs/adapter-node in /frontend (#138)
dependabot[bot] Jan 17, 2024
b0f2a6c
feat: some more onboarding and form improvements
AyushSehrawat Jan 17, 2024
7ac4b88
Dev startup to disabling pickling
Jan 17, 2024
6953784
feat: Listrr Support Added (#136)
dreulavelle Jan 18, 2024
ca99757
Jackett rewrite (#139)
dreulavelle Jan 18, 2024
fbdd763
Avoid [None] if empty content service
Jan 18, 2024
2426ba1
fix: handle bad quality manually in parser (#145)
dreulavelle Jan 20, 2024
5c07c1f
deps: updated deps due to security updateS
AyushSehrawat Jan 21, 2024
be21062
feat: added more onboarding steps, some bugs also introduced
AyushSehrawat Jan 21, 2024
495b9cd
chore(deps-dev): bump @sveltejs/kit from 2.3.2 to 2.4.2 in /frontend …
dependabot[bot] Jan 23, 2024
9d3cbc5
chore(deps-dev): bump prettier from 3.1.1 to 3.2.4 in /frontend (#155)
dependabot[bot] Jan 23, 2024
ea88e41
chore(deps): bump lucide-svelte from 0.309.0 to 0.314.0 in /frontend …
dependabot[bot] Jan 23, 2024
1b91e13
chore(deps): bump bits-ui from 0.14.0 to 0.15.1 in /frontend (#153)
dependabot[bot] Jan 23, 2024
2134814
feat: minor changes
AyushSehrawat Jan 23, 2024
cc62c9c
feat: deps change
AyushSehrawat Jan 23, 2024
18546ea
feat: deps change
AyushSehrawat Jan 23, 2024
046428c
feat: onboarding MVP done
AyushSehrawat Jan 23, 2024
ed300a7
Merge branch 'main' into frontend-improvements
AyushSehrawat Jan 23, 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
97 changes: 74 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@
# Iceberg

The idea behind this was to make a simple and functional rewrite of plex debrid that seemed to get a bit clustered.
Plex torrent streaming through Real Debrid and 3rd party services like Overseerr, Mdblist, etc.

Rewrite of [plex_debrid](https://github.com/itsToggle/plex_debrid) project.

Currently:
- Services include: Plex, Mdblist, Torrentio and Real Debrid

TODO:
- Implement uncached download in real-rebrid, dont know if we need this, movies seem to work ok...
- Implement updating quality of fetched items if below something
- Add frontend, ongoing... (adding api endpoints as we go along)
Services currently supported:
- [x] Real Debrid
- [x] Plex
- [x] Overseerr
- [x] Mdblist
- [x] Plex Watchlist RSS
- [x] Torrentio
- [x] Orionoid
- [x] Jackett
- [ ] and more to come!

Check out out [Project Board](https://github.com/users/dreulavelle/projects/2) to stay informed!

COMPLETED:
- ~~Update plex libraries for changes, ongoing...~~ (functional but we need to be more specific when to update)
- ~~Real-debrid should download only one file per stream, lets avoid collections~~
- ~~Add overseerr support, mostly done~~ still need to mark items as available?
- ~~Add support for shows, ongoing...~~ (Functionalish, needs work...)
- ~~Modify scraping logic to try scaping once a day if not found?~~
- ~~Store data with pickle~~
- ~~Improve logging...~~
- And more..

Please add feature requests and issues over on our [Issue Tracker](https://github.com/dreulavelle/iceberg/issues)!
Please add feature requests and issues over on our [Issue Tracker](https://github.com/dreulavelle/iceberg/issues) or join our [Discord](https://discord.gg/wDgVdH8vNM) to chat with us!

We are constantly adding features and improvements as we go along and squashing bugs as they arise.

Enjoy!
---

## Table of Contents
- [Docker Compose](#docker-compose)
- [What is ORIGIN ?](#what-is-origin-)
- [Running outside of Docker](#running-outside-of-docker)
- [Symlinking settings](#symlinking-settings)
- [Development](#development)
- [Development without `make`](#development-without-make)

---

## Docker Compose

Create a `docker-compose.yml` file with the following contents:

```yml
version: '3.8'

Expand All @@ -43,28 +48,47 @@ services:
environment:
PUID: "1000"
PGID: "1000"
ORIGIN: "http://localhost:3000" # read below for more info
ports:
- "3000:3000"
volumes:
- ./data:/iceberg/data
```

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.

#### What is ORIGIN ?
`ORIGIN` is the URL of the frontend on which you will access it from anywhere. If you are hosting Iceberg on a vps with IP address `134.32.24.44` then you will need to set the `ORIGIN` to `http://134.32.24.44:3000` (no trailing slash). Similarly, if using a domain name, you will need to set the `ORIGIN` to `http://iceberg.mydomain.com:3000` (no trailing slash). If you change the port in the `docker-compose.yml` file, you will need to change it in the `ORIGIN` as well.

## Running outside of Docker

First terminal:
To run outside of docker you will need to have node (v18.13+) and python (3.10+) installed. Then clone the repository

```sh
git clone https://github.com/dreulavelle/iceberg.git
cd frontend && npm install && npm run dev
```

Second terminal:
and open two terminals in the root of the project and run the following commands in each.

#### First terminal:

```sh
cd frontend
npm install
npm run build
ORIGIN=http://localhost:3000 node build
```
Read above for more info on `ORIGIN`.

#### Second terminal:

```sh
pip install -r requirements.txt
python backend/main.py
```

---

## Symlinking settings
"host_mount" should point to your rclone mount that has your torrents on your host, if you are using native webdav set webdav-url to "https://dav.real-debrid.com/torrents"

Expand All @@ -77,6 +101,7 @@ Plex container volume configuration for rclone mount is "/iceberg/vfs:/media/vfs

Plex libraries you want to add to sections: movies -> /media/library/movies, shows -> /media/library/shows

---

## Development
You can view the readme in `make` to get started!
Expand All @@ -94,3 +119,29 @@ make start
```

You can also restart the container with `make restart`, or view the logs with `make logs`.

### Development without `make`
If you don't want to use `make` and docker, you can use the following commands to run development environment.

```sh
pip install -r requirements.txt
python backend/main.py
```

```sh
cd frontend
npm install
npm run dev
```

---

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

We use Black for backend and Prettier for frontend. Please make sure to run the formatters before submitting a pull request. Also use CRLF line endings unless it is a shell script or something that requires LF line endings.

---

## License
This project is licensed under the GNU GPLv3 License - see the [LICENSE](LICENSE) file for details
6 changes: 4 additions & 2 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"format": "prettier --write ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^3.0.1",
"@sveltejs/kit": "^2.4.2",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/luxon": "^3.3.7",
"@types/nprogress": "^0.2.3",
"@types/uuid": "^9.0.7",
"@typescript-eslint/eslint-plugin": "^6.19.0",
"@typescript-eslint/parser": "^6.17.0",
"autoprefixer": "^10.4.14",
Expand All @@ -34,7 +34,7 @@
"tailwindcss": "^3.4.0",
"tslib": "^2.4.1",
"typescript": "^5.0.0",
"vite": "^5.0.0",
"vite": "^5.0.12",
"vitest": "^1.1.0"
},
"type": "module",
Expand All @@ -46,11 +46,13 @@
"lucide-svelte": "^0.314.0",
"luxon": "^3.4.4",
"mode-watcher": "^0.1.2",
"motion": "^10.17.0",
"nprogress": "^0.2.0",
"svelte-sonner": "^0.3.6",
"sveltekit-superforms": "^1.13.1",
"tailwind-merge": "^2.2.0",
"tailwind-variants": "^0.1.18",
"uuid": "^9.0.1",
"zod": "^3.22.4"
}
}
Loading
Loading