Emby Family WISECP module Desctiption Changelog Installation and configuration guide Setup (install/update) Emby Family module WISECP Order now | Download | FAQ To install and update a module, you must perform one and the same action. 1. Download the latest version of the module. wget http://download.puqcloud.com/WISECP/Product/PUQ_WISECP-Emby-Family/PUQ_WISECP-Emby-Family-latest.zip All versions are available: https://download.puqcloud.com/WISECP/Product/PUQ_WISECP-Emby-Family/ 2. Unzip the archive with the module. unzip PUQ_WISECP-Emby-Family-latest.zip 3. Copy and Replace "puqEmbyFamily" from "PUQ_WISECP-Emby-Family" to "WISECP_WEB_DIR/coremio/modules/Product/"License Activation Emby Family module WISECP Order now | Download | FAQ 1. Log in to the admin area of your WISECP. 2. Go to module configuration. Services -> Service Management -> Module Settings -> Other -> All Modules -> PUQ Emby Family Setup guide: Emby setup Emby Family module WISECP Order now | Download | FAQ 1. Install Emby on your server To simplify deployment and help automate this for as many users as possible, we provide a BASH script to handle repo installation as well as installing Emby. All you need to do is run this command on your system wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.14.0/emby-server-deb_4.7.14.0_amd64.deb dpkg -i emby-server-deb_4.7.14.0_amd64.deb 2. SSL certificate generation: sudo apt install nginx certbot python3-certbot-nginx sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email YOUR_EMAIL -d DOMAIN_NAME echo "0 0 * * * root certbot renew --quiet --no-self-upgrade --post-hook 'systemctl reload nginx'" | sudo tee -a /etc/cron.d/renew_certbot 3. Configure nginx from a subdomain Create a file named nginx.conf. cd /etc/nginx/conf.d/ nano nginx.conf Then, insert the following text, replacing DOMAIN_NAME with your domain. # Uncomment the commented sections after you have acquired a SSL Certificate server { listen 80; #listen [::]:80; server_name DOMAIN_NAME; # Uncomment to redirect HTTP to HTTPS return 302 https://$host$request_uri; } server { listen 443 ssl http2; #listen [::]:443 ssl http2; server_name DOMAIN_NAME; ## The default `client_max_body_size` is 1M, this might not be enough for some posters, etc. client_max_body_size 20M; # use a variable to store the upstream proxy # in this example we are using a hostname which is resolved via DNS # (if you aren't using DNS remove the resolver line and change the variable to point to an IP address e.g `set $emby 127.0.0.1`) set $emby 127.0.0.1; resolver 127.0.0.1 valid=30; ssl_certificate /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; add_header Strict-Transport-Security "max-age=31536000" always; ssl_trusted_certificate /etc/letsencrypt/live/DOMAIN_NAME/chain.pem; ssl_stapling on; ssl_stapling_verify on; # Security / XSS Mitigation Headers # NOTE: X-Frame-Options may cause issues with the webOS app add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "0"; # Do NOT enable. This is obsolete/dangerous add_header X-Content-Type-Options "nosniff"; # COOP/COEP. Disable if you use external plugins/images/assets add_header Cross-Origin-Opener-Policy "same-origin" always; add_header Cross-Origin-Embedder-Policy "require-corp" always; add_header Cross-Origin-Resource-Policy "same-origin" always; # Permissions policy. May cause issues on some clients add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()" always; # Tell browsers to use per-origin process isolation add_header Origin-Agent-Cluster "?1" always; # Content Security Policy # See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP # Enforces https content and restricts JS/CSS to origin # External Javascript (such as cast_sender.js for Chromecast) must be whitelisted. # NOTE: The default CSP headers may cause issues with the webOS app #add_header Content-Security-Policy "default-src https: data: blob: http://image.tmdb.org; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'"; location = / { return 302 http://$host/web/; #return 302 https://$host/web/; } location / { # Proxy main Emby traffic proxy_pass http://$emby:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Disable buffering when the nginx proxy gets very resource heavy upon streaming proxy_buffering off; } # location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/ location = /web/ { # Proxy main Emby traffic proxy_pass http://$emby:8096/web/index.html; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } location /socket { # Proxy Emby Websockets traffic proxy_pass http://$emby:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } } Restarting nginx sudo service nginx restartAdd server (Emby server) Emby Family module WISECP Order now | Download | FAQ 1. Log in to the administrative area of your WISECP. 2. Go to module configuration. Services -> Service Management -> Module Settings -> Other -> All Modules -> PUQ Emby Family 3. In the opened page, click the 'Add Server' button. 4. On the opened page, enter all the necessary information: Name: Displayed name of the server. Maximum Number of Accounts: The number of services that can be on this server. Server Group: Optionally, choose the server group. IP Address or Domain: The address of the Emby server you are connecting to. Username: is the username for the account on Emby. Password: is the password for the account on Emby. Access Hash: API key that you created in the previous step on the Emby server. Check the SSL box if you want to use SSL-encrypted connection. If necessary, specify the port and perform a connection test. Service configuration Emby Family module WISECP Order now | Download | FAQ If you do not have a Service Group where you want to place the new service, you need to create a new Service Group 1. Log in to the admin area of your WISECP. 2. Create New Service Group Go to Services -> Service Management -> Add Group Enter all the necessary data and click the 'Create Group' button. 3. Adding a New Service Go to Services -> our service group where you need to add the new service. In the opened window, click the 'Create New Service' button. On the opened page, enter all the necessary details for your new service and navigate to the 'Core' tab.Select the 'PUQ Emby Family' module from the drop-down list of modules. 4. Fill in the configuration options according to your preferences. Libraries: Use All Libraries: Choosing all of libraries from your Jellyfin server Libraries: The libraries you want to make available to customers of this product. (IMPORTANT! Start a new line for each new library)Example:"MoviesBeginner`s Programming CourseComedy"  IMPORTANT!If you have a folder named "-", please enter it not as the first one or rename it.If you don't want any folder to be accessible, type "-". User Configuration: Streaming bitrate limit: An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate. Remote control: Remote control of shared devices (DLNA devices are considered shared until a user begins controlling them) Media downloads: Users can download media and store it on their devices. This is not the same as a sync feature. Book libraries require this enabled to function properly. Username prefix/Username suffix: Necessary in order to generate a username for the service, in the format: prefix-suffix Allow playback (Restricting access to transcoding may cause playback failures in clients due to unsupported media formats) media audio that requires transcoding video that requires transcoding video that requires conversion without re-encoding Feature access: Allow Live TV access Allow Live TV recording management Force transcoding of remote media sources such as Live TV Media Accounts Configuration Count of media accounts: Available number of media accounts for creation by user. Links Link to instruction: Link to the instruction, if filled out, it will be reflected in the client area Add new library/item in Emby Emby Family module WISECP Order now | Download | FAQ New library: To create a new library, you should to create a folder in your Emby server. First, navigate to the root of your project "/" and enter the following commands: cd mnt mkdir LIBRARY_NAME LIBRARY_NAME - The name of the new library. After creating a folder, let's create a library in Emby: Add a new library: Assign the appropriate folder to this library: New item: To download a new item, navigate to the root of your project "/" and enter the following commands: cd mnt/LIBRARY_NAME wget DOWNLOAD_ITEM_URL LIBRARY_NAME - The name of the library. DOWNLOAD_ITEM_URL - The download URL of the item you want to upload to the server. After all Scan all libraries by clicking on the "Scan All Libraries" button, or scan the specific library by clicking on the three dots and selecting "Scan Library." Getting Access Hash (API key) Emby Family module WISECP Order now | Download | FAQ Dashboard -> API Keys Create a new API Key Whrite an App Name Now you can getting an API key Client Area Product Home Screen Emby Family module WISECP Order now | Download | FAQ The end customer, after logging in to his own customer panel, has access to the following information and options Link to the user manual (which was defined by the administrator when setting up the service.). Emby server address Authorization data User informations List of active devices List of enabled user libraries Drop all devices Change the Emby user password Add/Manage Emby Connect account Add/Management/Delete Media Account Drop Account Devices List of Media Accounts Screenshot of the client area Manage Emby Connect Emby Family module WISECP Order now | Download | FAQ Here you can add an Emby Connect Username for main user If you leave the field empty, Emby Connect will be disabled. Register the email in Emby Connect. One Emby Connect username can only be linked to one Emby account. Add Media Account Emby Family module WISECP Order now | Download | FAQ Username - Set a media account username. It consists of the username of the main account and a unique name for this media account. Password - Write a password for registering the media account, or generate one by clicking Generate. Disable libraries - Here are all the libraries available to the main account. If you want to restrict access for this media account to any of the libraries, simply select that library. Press Ctrl to select multiple libraries.Press Shift to select all libraries.Management Media account Emby Family module WISECP Order now | Download | FAQ Enabled - Update account status. Username - Set a media account username. It consists of the username of the main account and a unique name for this media account. Password - Write a password for registering the media account. Disable libraries - Here are all the libraries available to the main account. If you want to restrict access for this media account to any of the libraries, simply select that library. Press Ctrl to select multiple libraries.Press Shift+Ctrl from top to bottom of list to select all libraries. Emby Connect Email -  add an Emby Connect Username for media account If you leave the field empty, Emby Connect will be disabled. Register the email in Emby Connect. One Emby Connect username can only be linked to one Emby account. Media account active devices Here is a list of active devices for this account. Press "Drop Account Devices" to sign out from the devices. Admin Area Order Detail Emby Family module WISECP Order now | Download | FAQ Navigate to the service you want to manage, then go to the 'Core' tab. In the opened tab, you have a view of the online status of the service. The available online information includes: Connection status to the API Information about the Emby account on the Emby server Information about the account Also, below are fields with the client's personal data.You can also individually override package options for the client by checking the 'Overwrite package settings' box. After modifying the configuration options, check the 'Send changes to server' box to save the data to the Emby server.