Giter Club home page Giter Club logo

wizarr's Introduction

Wizarr

The Free Media Invitation System




GPL 2.0 License Current Release Donate Submit Feature Requests Chat on Discord Join our Subreddit Github Issue Submit Feature Requests Github Build


WIZARR NOTICE

We have recently moved Wizarr V2 to its new home at ghcr.io/wizarrrr/wizarr:v2 if your container was automatically upgraded recently and you received breaking changes, please change your image to ghcr.io/wizarrrr/wizarr:v2 to resolve this


Wizarr is a automatic user invitation system for Plex and Jellyfin. Create a unique link and share it to a user and they will be invited to your Media Server after they complete there signup proccess! They can even be guided to download the clients and read instructions on how to use your media software!

Where is V2?

Wizarr V2 has moved to the v2 branch here, your still more than welcome to use v2 however it will no longer be supported, we recommend using our new version, trust us it's ๐Ÿ”ฅ.

V3 upgradable from V2?

V3 can now support upgrading from V2, please make a backup of your database.db for the safest upgrade path.

Major Features Include

  • Automatic Invitation to your Media Server (Plex, Jellyfin)
  • Support for Passkey authentication for Admin Users
  • Create multiple invitations with different configurations
  • Make invitations and users expire after a certain amount of time
  • Automatically add users to your Request System (Ombi, Jellyseerr, Overseerr)
  • Add users to your Discord Server
  • Create a custom HTML page
  • Multi-Language Support
  • Scheduled Tasks to keep Wizarr updated with your Media Server
  • Live logs directly from the Wizarr Web UI
  • Multiple Admin Users with different permissions
  • Notification System
  • API for Developers with Swagger UI
  • Light and Dark Mode Support
  • Session Management for Admin Users

Whats to come

  • Added API Endpoints
  • Multi-Server Support
  • Mass Emailing to Client Users
  • OAuth Support with custom providers
  • Use your own Database
  • 2FA Support for Admin Users
  • Built in Update System
  • Full Wizard Customization with Drag and Drop Template Editor
  • Jellyfin and Plex user permissions management tool
  • Invite Request System for users to request invite
  • and much more!

Getting Started

docker run -d \
    --name wizarr \
    -p 5690:5690 \
    -v ./wizarr/database:/data/database \
    ghcr.io/wizarrrr/wizarr:latest
---
version: "3.5"
services:
  wizarr:
    container_name: wizarr
    image: ghcr.io/wizarrrr/wizarr:latest
    ports:
      - 5690:5690
    volumes:
      - ./wizarr/database:/data/database

Documentation

Any issues we welcome you to come onto our Discord and ask for a member of staff, we would be happy to help.

If you want to help contribute to Wizarr by building V3's documentation we would really appreciate it, again join the Discord and we can get you started.

Check out our documentation for instructions on how to install and run Wizarr! View Documentation

Chat on Discord

Thank you

A big thank you โค๏ธ to these amazing people for contributing to this project!

wizarr's People

Contributors

actions-user avatar arnarinn avatar ben-biber avatar caldeirag avatar clankjake avatar comradekingu avatar damsdev1 avatar djscias avatar dranelixx avatar eggermn avatar eoghan2t9 avatar gh-action-bump-version avatar jackbailey avatar jamsrepos avatar jathek avatar kallegrens avatar lem6ns avatar mathyvds avatar mtthidoteu avatar mvaello avatar neoestremi avatar nimbleghost avatar realashleybailey avatar sandronidi avatar semantic-release-bot avatar skari11 avatar snyk-bot avatar tcorzo avatar thinhplust avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wizarr's Issues

Validation message suggestion when user already has an account

Something I just noticed while testing this out, if a user already has a plex account and tries to sign up through this, it just returns an error message that says Something Went Wrong! Instead for this case if it could display that they already have an account that may be helpful for someone who may have forgot they had an account or for whatever other reason they may already have signed up!

Screenshot 2022-12-18 at 2 11 54 PM

Feature Request: Custom Videos for Config

It would be nice if it would be possible to specify a Custom YT-Link or even better Directly stream it from the server.
As a little Extra, i would ask for a Language button for the User and Maybe Language Specific Videos that would be Awesome.

Otherwise, Nice work, I appreciate you for sharing it with us.

Current version differs from Server, server reporting 404 page not found

wizarr    | WARNING:root:Current version differs from Server, server reporting 404 page not found
wizarr    |  but we have 0.11.0

image

# cat docker-compose.yaml
version: "3.3"
services:
  wizarr:
    container_name: wizarr
    image: ghcr.io/wizarrrr/wizarr
    ports:
    - 5690:5690
    volumes:
      - /opt/wizarr/:/data/database
    environment:
      - APP_URL=https://wizarr.domain.local
      - DISABLE_BUILTIN_AUTH=false #Set to true ONLY if you are using another auth provider (Authelia, Authentik, etc)
      - ALLOW_BUG_REPORTING=true #Helps me fix bugs, but you can disable it if you want! I use Sentry.io for this.

Typo on Plex tips page

"3. Now that everything wedon't want is out of the way, we can focus on the things we do want!"

wedon't -> we don't

Pi image

Hi there. Any plans to make an image for use on raspberry pi (armv7) ? Raspberry pi used by quite allot of people to host their plex servers incl me ๐Ÿ˜ƒ

Wizarr doesn't ignore SSL error

If you set your Plex Media Server in Secure Connection Mandatory, when you go on the web interface you're in HTTPS with SSL error (normal).
If it's the case Wizarr doesn't not ignore the SSL error and block and you have Verify URL or Token when you want to scan library.
For me the only one solution is to use NGINX Proxy Manager as "workaround" but the best would be to ignore SSL Error.

Feature Request: Set ratings for invited users

Provide setting when configuring a share link for the maximum/minimum ratings available to a new user under that share link rather than to the entire library being shared.

Use case: sharing with relatives who have small children but are not aware of how to change content settings.

The /Join link results in a 500 error

Running this with the latest docker available.

When a user clicks "I have a Plex Account" the server returns a 500 error. I've tried with multiple invite links, they all get a 500 error. Everything else seems to work fine.

ERROR:app:Exception on /join [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/peewee.py", line 7043, in get
return clone.execute(database)[0]
File "/usr/local/lib/python3.10/site-packages/peewee.py", line 4408, in getitem
return self.row_cache[item]
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/data/app/web.py", line 89, in join
return render_template("join.html", name=Settings.get(Settings.key == "plex_name").value, code=code)
File "/usr/local/lib/python3.10/site-packages/peewee.py", line 6595, in get
return sq.get()
File "/usr/local/lib/python3.10/site-packages/peewee.py", line 7046, in get
raise self.model.DoesNotExist('%s instance matching query does '
app.SettingsDoesNotExist: <Model: Settings> instance matching query does not exist:
SQL: SELECT "t1"."id", "t1"."key", "t1"."value" FROM "settings" AS "t1" WHERE ("t1"."key" = ?) LIMIT ? OFFSET ?
Params: ['plex_name', 1, 0]
ERROR:root:500 Internal

Feature request: custom pages and messages

Hi
Great service.

It would be nice if we could change the messages that get displayed to guide the invitee, to write the instructions in our own words or even to provide the messages translated

Security Alert

When people are invited, they will see "Another device is attempting to sign in using your Plex account. You should only continue if you know this device and intend to grant it access." This won't only make them suspicious but it also shows the IP address which the instance is hosted on.

500 Internal Server Error when going to settings

Hi,

I seem to be getting an Internal Server Error Page, 500 when going to settings. The only thing i changed from when it was working to not working was the removal of the Overseer URL, i left this blank.

Since then it appears to have broken Wizarr.

 [2022-09-16 14:22:08 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2022-09-16 14:22:08 +0000] [1] [INFO] Listening at: http://0.0.0.0:5690 (1)
[2022-09-16 14:22:08 +0000] [1] [INFO] Using worker: sync
[2022-09-16 14:22:08 +0000] [7] [INFO] Booting worker with pid: 7
[2022-09-16 14:22:08 +0000] [8] [INFO] Booting worker with pid: 8
[2022-09-16 14:22:08 +0000] [9] [INFO] Booting worker with pid: 9
[2022-09-16 14:22:27,205] ERROR in app: Exception on /settings/ [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/data/app/admin.py", line 26, in decorated_function
    return f(*args, **kwargs)
  File "/data/app/admin.py", line 104, in secure_settings
    Settings.key == "overseerr_url").value
AttributeError: 'NoneType' object has no attribute 'value'
[2022-09-16 14:30:22,669] ERROR in app: Exception on /settings/ [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/data/app/admin.py", line 26, in decorated_function
    return f(*args, **kwargs)
  File "/data/app/admin.py", line 104, in secure_settings
    Settings.key == "overseerr_url").value
AttributeError: 'NoneType' object has no attribute 'value'

Thanks!

Error: Please Check Your Plex URL and Token with internal IP Adress

Hello,

my app is published (invite.XXX.de) via cloudflare with nginx proxy manager.
I have the latest image installed.

I tried to connect my plex instance via my local ip address (192.168.178.2:32400) and the token but it fails everytime (Error: Please Check Your Plex URL and Token) and I don't know what the next step is. I don't want to give my plex docker a subdomain, because it's working fine with plex.tv.

I read that disabling "Block common exploits" inside Nginx is a solution but not for me. I don't want that someone can easily SQL inject.

Is there any solution?

Best regards.

Authentik SSO

Hi,

I'm not sure if it's just me, but i have been trying to get Authentik to work with Wizarr.

I copied the paths to whitelist but Authentik still would not work with the site. I tried another application and it worked first time. So i went and revisited the steps taken for Wizarr.

What the issue for me was that the following white list path;

/j*

When i took this out Authentik started working, when i put it back in, it stopped. So instead i changed the whitelist path for this to;

/j/*

And now everything appears to be playing ball, i haven't yet actually tested the full invite cycle with it yet though.

Just thought worth highlighting just in case.

Thanks

Server Settings not working when accessing externally

Hi,

I noticed that when i attempt to modify the server settings and scan for libraries, it always comes back with error message that the PLEX URL and token may be incorrect.

However, when accessing Wizarr Server settings via my local IP address, the same Plex URL and token are used but this time it works and i can see all the libraries as well as verify and confirm.

Initially i thought it may be an issue that Authentik may be causing, so i tried disabling this so that the site is hosted directly, but i'm afraid its the same resulting error.

Not sure if others are experiencing this or not.

Thanks

Can't connect to Plex server

When trying to configure Wizarr to connect to my Plex server, I get the following error.

ERROR:root:HTTPSConnectionPool(host='plex.domain.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:997)')))

500 error on load of invitation url

here is the log info corresponding to the error:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/peewee.py", line 7043, in get
    return clone.execute(database)[0]
  File "/usr/local/lib/python3.10/site-packages/peewee.py", line 4408, in __getitem__
    return self.row_cache[item]
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/data/app/web.py", line 30, in welcome
    resp = make_response(render_template('welcome.html', name=Settings.get(
  File "/usr/local/lib/python3.10/site-packages/peewee.py", line 6595, in get
    return sq.get()
  File "/usr/local/lib/python3.10/site-packages/peewee.py", line 7046, in get
    raise self.model.DoesNotExist('%s instance matching query does '
app.SettingsDoesNotExist: <Model: Settings> instance matching query does not exist:
SQL: SELECT "t1"."id", "t1"."key", "t1"."value" FROM "settings" AS "t1" WHERE ("t1"."key" = ?) LIMIT ? OFFSET ?
Params: ['plex_name', 1, 0]
ERROR:root:500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Question : Enable french translation

Hi, thanks for the very cool project !

I have see in the code that their is already a french translation... is there a way to enable it right now or this is for a futur update ?

Thanks for your help and if you need further help for the french translation i can help.

invite not working if libraries contain emoji

sudo docker logs -f wizarr
[2022-10-10 14:55:36 -0400] [1] [INFO] Starting gunicorn 20.1.0
[2022-10-10 14:55:36 -0400] [1] [INFO] Listening at: http://0.0.0.0:5690 (1)
[2022-10-10 14:55:36 -0400] [1] [INFO] Using worker: sync
[2022-10-10 14:55:36 -0400] [7] [INFO] Booting worker with pid: 7
[2022-10-10 14:55:36 -0400] [8] [INFO] Booting worker with pid: 8
[2022-10-10 14:55:36 -0400] [9] [INFO] Booting worker with pid: 9
ERROR:root:'<my_library_name ๐Ÿ“บ>'
ERROR:root:'<my_library_name ๐Ÿ“บ>'
ERROR:root:'<my_library_name ๐Ÿ“บ>'

image

everything works perfectly if I choose only the libraries without emoji

image
image

Feature Request: Allow to choose the duration of the shares

it would be interesting to be able to add a share time, so automatically the user loses access to all Libraries or Libraries of our choice after example 1 year, 3 months etc.

I know it's possible to do it with a cronjob and this script JBOPS - plex_api_share.py but it's a lot of work to do manually !

We could take advantage of the database and the wonderful web interface !

Feature Request: Customizable HTML Page for extra instructions

Just a thought but it would be cool to have the option to write up our own page of instructions for the users that would come up after your premade instructions.

I would like to provide some information about transcoding and how to disable direct play/streams to better my users experiences.

Invitation acceptance documentation

I'm very excited that you have taken on the task of smoothing out inviting people to your Plex server. So far I think this is a great start. As someone with over 50+ friends/family/co-workers I have definitely seen my fair share of ups and down with getting people access to my server.

I'd say the number one thing that trips 'normal non-techie people' up with this process is going from the invitation email that Plex sends to them over to a working Plex session with the new server attached. Why? Because if you click the invitation link, it will ask you to sign into Plex. If you are already signed in on that device, then it's pretty easy. The link will simply directly connect you with the plex server. However, if you are not currently signed into Plex on that device, it will prompt you to sign in but it will not connect the server to your Plex account after you sign in. You have to go back to the email and click the link again to complete the process. People seem to get tripped up by that all the time.

I am not sure exactly the best text or wording that should be added to this process, but I do believe it should be added someplace. Or maybe the best thing would be to ask them to log into their Plex account on their current device before they click on the invite link in their email? This would also smooth things along for Overseerr access as well I do believe. Maybe something like "Hey do you have a Plex account? No? Ok please go create one here" "Oh you already have one? Please validate your Plex account is working okay by logging into Plex (button). Then come back here to continue"

Thoughts?

Feature Request: Multiple Plex Servers

Hello, this is a great addition to my Plex user setup. However, I currently have 2 separate Plex servers, and would like to be able to invite users to one or the other (or both). That would be a very useful feature.

Docker Image Denied Access

Hello! I just watched Ibracorp's video on this project, and I would like to say that it looks like a great project. However, pulling the Docker image is resulting into a manifest denied error:

Error response from daemon: Head "https://ghcr.io/v2/wizarrrr/wizarr/manifests/latest": denied: denied

I figured to report this here since other people will probably have this issue also.

Thank you!

Feature Request: Better instructions for creating new Plex Account

Tested this out with my friend, who said it's quite easy to miss the message 'To join our Plex server, create a Plex account! Once you're done, come back here!' which would be more relevant if user is using a mobile and doesn't know to navigate back to the old tab.

So perhaps instead of having the message when there's a choice to Create Plex Account / I have a Plex Account - make it so that when clicking Create Plex Account, to go through a quick 'step by step' graphics (like in online surveys that indicates progress), emphasising that they need to come back to this page / tab to finish the process.

And when they click the link to Create a Plex Account, the page itself should update to show the join page fields with the instructions still visible above - so that user recognises they were on this page before.

Just thinking the users most needing to go through Wizarr to set themselves up are probably not very tech savvy in the first place, so we need to be extra accommodating and idiot proof things.

500 Internal Server Error when loading Users tab

Along with the issue in the title, any invitation links that I generate appear to work, but at the end of it the invitee does not gain access to my Plex Server. My Plex Libraries are found fine, links generate and load fine, basically no other issues as far as I am able to tell.

Plex and Docker running the Wizarr container are on different machines on the same LAN. I have Overseerr set up fairly identically and it works entirely as intended, just for reference.

2023-02-18 19:54:34 [2023-02-18 19:54:34,840] ERROR in app: Exception on /users [GET]
2023-02-18 19:54:34 Traceback (most recent call last):
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2525, in wsgi_app
2023-02-18 19:54:34 response = self.full_dispatch_request()
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1822, in full_dispatch_request
2023-02-18 19:54:34 rv = self.handle_user_exception(e)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1820, in full_dispatch_request
2023-02-18 19:54:34 rv = self.dispatch_request()
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1796, in dispatch_request
2023-02-18 19:54:34 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/data/app/admin.py", line 28, in decorated_function
2023-02-18 19:54:34 return f(*args, **kwargs)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/data/app/admin.py", line 266, in users
2023-02-18 19:54:34 admin = MyPlexAccount(Settings.get(Settings.key == "plex_token").value)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/plexapi/myplex.py", line 97, in init
2023-02-18 19:54:34 data, initpath = self._signin(username, password, code, timeout)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/plexapi/myplex.py", line 107, in _signin
2023-02-18 19:54:34 data = self.query(self.SIGNIN, method=self._session.post, auth=(username, password), timeout=timeout)
2023-02-18 19:54:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2023-02-18 19:54:34 File "/usr/local/lib/python3.11/site-packages/plexapi/myplex.py", line 192, in query
2023-02-18 19:54:34 raise BadRequest(message)
2023-02-18 19:54:34 plexapi.exceptions.BadRequest: (429) too_many_requests; https://plex.tv/users/sign_in.xml
2023-02-18 19:54:34 ERROR:root:500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Duration and user removal

Hello, it's not an issue but a request.
is it possible to have the choice to remove the user or remove the user libraries access when selecting duration?
that way, user can't use plex server anymore and we keep the user ( in case we want to extend hiw invits)

it would be really nice also to be able to edit users in the user panel (to change expiration, add description, first name, last name, libraries access...)
thanks

Add validation on plex verification page on "Plex Libraries" field

Hello, I ran into an issue where I had inadvertently added a space in between my plex libraries during plex verification (i.e. "movies, tv shows"). This was allowed and I was able to proceed, however, when attempting to join the plex server, an "Oops! Something went wrong. Please try again or contact an administrator." error was thrown. Looking at the logs, it was due to the space after the comma before "tv shows" since it was looking for a library " tv shows". I'm thinking maybe trimming any white spaces before/after any commas as well as making sure that the entry doesn't start and end with a comma should catch most scenarios. Additionally, messaging specifying any libraries that do not exist would be helpful as well in scenarios where the user has any typos.

Or even more robust would be verifying the plex server first without the libraries field then pulling and displaying existing libraries on the plex server. Then let the user choose via checkboxes which libraries they want.

"Oops! Something went wrong. Please try again or contact an administrator."

Spun up a new Plex account under a secondary email address I have in order to try this.

When I try to use Wizarr and punch in that email, I get the message above.

My compose file is as follows with sensitive details adjusted. I'm behind Nginx Proxy Manager and the admin portal section works just fine in order to generate the invite codes:

version: "2.3"
services:
  wizarr:
    container_name: wizarr
    image: wizarr/wizarr
#    ports:
#    - 5690:5690
    networks:
      default_docker:
        ipv4_address: 172.18.0.56
    volumes:
      - ./data:/data/database
    environment:
      - "ADMIN_USERNAME=admin"
      - "ADMIN_PASSWORD=mypass"
      - "OVERSEERR_URL=https://plexrequest.mydomain.com"
      - "PLEX_NAME=Myplex"
      - "PLEX_URL=https://plex.mydomain.com/"
      - "PLEX_TOKEN=mytokenhere"
      - "APP_URL=https://wizarr.mydomain.com"
networks:
  default_docker:
    name: my_network
    ipam:
      config:
	- subnet: 172.18.0.0/16
          gateway: 172.18.0.1

Option to disable wizarr account login for scenarios where another authentication method is being used already

Hello, I was wondering if someone can opt out of using/creating a wizarr account during initial setup. I am using Authelia to manage authentication and it would be nice to be able to opt out of the wizarr login prompt so I don't have to log in twice (one for Authelia and another for the wizarr). I do understand that this can be a potential security issue for some, but maybe you can enforce initial wizarr creation, but give the ability to opt out afterwards for people who are using another form of authentication.

Feature Suggestion: Change video quality to maximum on behalf of a joined user?

One of the more annoying things about plex is having new devices and users transcode to 720p, causing all sorts of issues. Could it be possible to make a request to the plex.tv api, on behalf of the joined user (they will need to auth wizarr with their plex account), and change the video quality to maximum on their devices?

Discord Invitation

I'm having an accompanying discord server along with my plex, it's mainly used for request monitoring, reporting issues, overseerr support, etc.

is there a possibility that wizarr could have a discord integration so it would generate a discord invite along with the plex one?

Maybe even disallow invitees from proceeding without having joined the discord server first.

Unraid support

Requesting an unraid container, or an unraid-friendly version posted to Docker Hub.

Oops! That email does not match any Plex account. Please try again.

Created a new account to test out the end to end process and ran into this error on joining in with a unique code

Behind a reverse NGINX proxy here's my compose:

version: "3.8"
services:
  wizarr:
    container_name: wizarr
    image: wizarr/wizarr
    ports: 
    - 5690:5690
    volumes:
      - ./data:/data/database
    environment:
      - "ADMIN_USERNAME=Admin"
      - "ADMIN_PASSWORD=Password"
      - "OVERSEERR_URL= http://192.168.0.119:5055"
      - "PLEX_NAME=Plex Server Name"
      - "PLEX_URL=http://192.168.0.119:32400"
      - "PLEX_TOKEN=XXXXXXXXXXXXXXX"
      - "PLEX_SECTIONS=Movies,TV Shows" # Important: Make sure to not leave any unnecessary spaces
      - "APP_URL=https://www.website.com/invite"

Docker Logs:

wizarr | [2022-09-13 07:24:32 +0000] [1] [INFO] Starting gunicorn 20.1.0

wizarr | [2022-09-13 07:24:32 +0000] [1] [INFO] Listening at: http://0.0.0.0:5690 (1)

wizarr | [2022-09-13 07:24:32 +0000] [1] [INFO] Using worker: sync

wizarr | [2022-09-13 07:24:32 +0000] [7] [INFO] Booting worker with pid: 7

wizarr | [2022-09-13 07:24:32 +0000] [8] [INFO] Booting worker with pid: 8

wizarr | [2022-09-13 07:24:32 +0000] [9] [INFO] Booting worker with pid: 9

wizarr | ERROR:root:Unable to find user: Email Address`

Add a copy link/share button on list of created invites

This is just a quality of life suggestion in case you ever need to re-send a previously created invite. I know the formatting is just wizarrdomain/j/invite but it'd be nice to just a button for it as the first row as a link icon or something (or maybe have it so just clicking on the invite row in general will copy the link excluding any clicking done on the "Action" column).

Internal Server error 500

Keep having a lot of different error 500.
I can create my login and pass and then when I enter the information for the name, plex token and libraries as well as overseerr I click save and get an error 500

[2023-02-11 00:29:14,261] ERROR in app: Exception on /settings [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1822, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1820, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/flask/app.py", line 1796, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/app/admin.py", line 91, in preferences
if discord_id:
^^^^^^^^^^
UnboundLocalError: cannot access local variable 'discord_id' where it is not associated with a value
ERROR:root:500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

I am using it behind a reverse proxy if that changes anything ?!?

Thanks

Support Timezones

The default time zone supported by Wizarr is GMT. Usually, we can change this via Docker environment variables but this functionality is not supported on Wizarr (yet). Right now, it's 2023/01/18 5:53 PM Pacific time but the times show created 2023/01/19 01:53.

Feature request to support telling docker-compose file with environment variables to set the time zone of the container.
- TZ=America/Los_Angeles

image
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.