- WIP - do not use YET* A central portal for all your media content movies, tv show, ebooks
- Based on organizr2
- SSO for all service using plex authentification
- Access level managed and centralized in organizr2 (dynamic synced between organizr2 and traefik2)
- Generate an ebook newsletter section into tautulli newsletter
- Add newsletter functionnality for ebooks
- API access to sabnzbd
- Highly based on traefik2 for internal routing
- Support nvidia transcoding for plex
- Support Let's encrypt for HTTPS certificate generation
- Configurable through env variables or env file
- bash 4
- git
- docker
NOTE : mambo will auto install all other required tools like docker-compose inside of its tree folder
- Organizr2 - Media portal
- Plex - media center
- Overseer - user request content
- Sabnzbd - newzgroup download
- Medusa - tv episodes search and subtitles management
- Tautulli - plex statistics and newsletter
- JDownloader2 - direct download manager
- Tranmission - torrent downloader
- Calibre Web - web ebook reader and library
- Calibre - ebook management
- MKVToolNix - Matroska tools with WebGUI - Video Editing (Remuxing - changing media container while keeping original source quality)
- Kindle Comic Converter - graphical tool and cli to manage/convert ebook
Optional module services
- Ombi - user request content
Â
-
Install
git clone https://github.com/StudioEtrange/mambo cd mambo ./mambo install
-
TODO TO BE COMPLETED
-
Create a
mambo.env
file in your $HOME with[email protected] PLEX_PASSWORD=**** TANGO_DOMAIN=mydomain.com
-
For HTTPS access
-
Init
./mambo init
-
Launch
./mambo up
-
Stop all
./mambo down
install : deploy this app.
init plex [--claim] : init plex services. Do it once before launch for plex. - will stop plex --claim : will force to claim server even it is already registred (claim TODO NOT IMPLEMENTED).
up [service [-b]] [--module module] [--plugin plugin] [--freeport]: launch all available services or one service.
down [service] [--mods mod-name] [--all]: down all services or one service. Except shared internal service when in shared mode (--all force stop shared service).
restart [service] [--module module] [--plugin plugin] [--freeport]: restart all services or one service. (same action than up & down)"
info [--freeport] [-v] : give info. Will generate conf files and print configuration used when launching any service.
status [service] : see service status.
logs [service] [-f] : see service logs.
update <service> : get last version of docker image service. Will stop service if it was running.
shell <service> : launch a shell into a running service.
services|modules|plugins|scripts list : list available modules or plugins. A module is a predefined service. A plugin is plug onto a service.
plugins exec-service <service>|exec <plugin> : exec all plugin attached to a service OR exec a plugin into all serviced attached.
scripts exec <script> : exec a script.
o-- various commands :"
cert <path> --domain=<domain> : generate self signed certificate for a domain into a current host folder.
letsencrypt rm : delete generated letsencrypt cert.
auth sync : sync authorization information between organizr2 and traefik.
auth enable|disable : temporary enable|disable organizr2 until next up/down. To be permanent use ORGANIZR2_AUTHORIZATION variable"
-
You could set every mambo variables through a user environment file, shell environment variables and some from command line.
-
All existing variables are listed in mambo root folder
mambo.env
-
Resolution priority order :
- Command line variables
- Shell environment variables
- User environment file variables
- Default configuration file variables
- Default values from mambo itself
NAME | DESC | DEFAULT VALUE | SAMPLE VALUE |
---|---|---|---|
TANGO_DOMAIN | domain used to access mambo. It is a regexp. .* stands for any domain or host ip. |
.* |
mydomain.com |
TANGO_USER_ID | unix user which will run services and acces to files. | current user : id -u |
1000 |
TANGO_GROUP_ID | unix group which will run services and acces to files. | current group : id -g |
1000 |
TANGO_ARTEFACT_FOLDERS | list of paths on host that contains media files. Relative path to mambo app path | - | /mnt/MEDIA/MOVIES /mnt/MEDIA/TV_SHOWS |
APP_DATA_PATH | path on host for services conf and data files. Relative to mambo app path. | ./mambo/workspace/data |
../data |
DOWNLOAD_PATH | path on host for downloaded files. Relative to mambo app path. | ./mambo/workspace/download |
../download |
PLEX_USER | your plex account | - | [email protected] |
PLEX_PASSWORD | your plex password | - | mypassword |
-
see
mambo.env
for detail -
TODO TO BE COMPLETED
-
You could create a user environment file (default name :
mambo.env
) to set any available variables and put it in your$HOME
or elsewhere. By default it will be looked for from your home directory./mambo -f mambo.env up
-
By default, mambo will look for any existing user environment file into
$HOME/mambo.env
-
A user environment file syntax is liked docker-compose env file syntax. It is NOT a shell file. Values are not evaluated.
NETWORK_PORT_MAIN=80 APP_DATA_PATH=../mambo-data DOWNLOAD_PATH=../mambo-download TANGO_ARTEFACT_FOLDERS=/mnt/MEDIA/MOVIES /mnt/MEDIA/TV_SHOWS
-
Set variables at mambo launch or export them before launch
TANGO_DOMAIN="mydomain.com" APP_DATA_PATH="/home/$USER/mambo-data" ./mambo up
-
To declare a service use list
TANGO_SERVICES_AVAILABLE
-
To disable a service, use variable list
TANGO_SERVICES_DISABLED
-
ie in user env file :
TANGO_SERVICES_AVAILABLE=website database TANGO_SERVICES_DISABLED=database
-
Launch a specific service
./mambo up <service>
-
Stop a service
./mambo down <service>
-
Launch a specific service
./mambo up --module <module>
-
Stop a service
./mambo down --module <module>
- ombi
- You need to configure yourself each service. Mambo do only a few configurations on some services.
- Keep in mind that each service reached other services with url like
http://<service>:<default service port>
(iehttp://ombi:5000
)
-
Guide https://github.com/Cloudbox/Cloudbox/wiki/Install%3A-Plex-Media-Server
-
TODO continue
-
Auto configuration steps :
./mambo init plex
-
Start service
./mambo up plex
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Plex or choose one
- Tab Url :
https://organizr2.mydomain.com/plex
(WARN: this is your portal special entrypoint for plex to put here !) - Ping Url : organizr2_plex
- Choose image :
plex
- Tab editor / Tabs list
- Group : User
- Tab editor / add a tab ("plus" button)
-
SSO : Delegate ombi authentification to organizr2
- See Organizr2 settings
-
Integration to Homepage :
- Tab Editor / Homepage Items / Plex (WARN : you should check every values you setted in every tab of this settings panel before save it)
- Enable, Minimum Authentication : User
- Connection / Url : http://plex:32400
- Connection / Token : get token (X-Plex-Token) with command
./mambo info plex
- Connection / Machine : get machine identifier with command
./mambo info plex
- Personalize all viewing options - recommended :
- Active Streams / Enable, Minimum Authentication : User
- Active Streams / User Info Enabled, Minimum Authentication : Co-Admin
- Misc Options / Plex Tab Name : Plex (Name of your plex tab in setted in tab editor) (WARN : if you setted a tab name with special characters, links on homepage about plex active streams may not works)
- Misc Options / Url wan :
https://organizr2.mydomain.com/plex
(WARN: this is your portal special entrypoint for plex to put here !)
- Tab Editor / Homepage Items / Plex (WARN : you should check every values you setted in every tab of this settings panel before save it)
- First, you will need nvidia-docker2 or nvidia-container-toolkit depending on your docker version
- To enable GPU transcoding into plex declare
PLEX_GPU=INTEL_QUICKSYNC|NVIDIA
-
With organiz2, you could bring up a central portal for all your services
-
source code : https://github.com/causefx/Organizr/
-
docker image code : https://github.com/Organizr/docker-organizr
-
a guide https://smarthomepursuits.com/install-organizr-v2-windows/
-
api documentation : https://organizr.mydomain.com/api/docs/
-
Auto configuration steps :
./mambo init organizr2
-
Start service
./mambo up organizr2
go to https://organizr.domain.com (check ORGANIZR2_SUBDOMAIN value)
- Initial Setup
- License : personal
- User : plex admin real username, plex admin real email and a different password
- Hash : choose a random keyword
- registration password : choose a password so that user can signup themselves
- api : do not change
- db name : db
- db path : /config/www/db
Into mambo.env
* set key ORGANIZR2_API_TOKEN_PASSWORD
with value from system Settings / System Settings / main / API
- To use plex authentification with organizr2 [https://docs.organizr.app/books/setup-features/page/plex-authentication] :
-
Settings / System Settings / Main / Authentication
- Type : Organizr DB + Backend
- Backend : plex
- Do get plex token / then [SAVE]
- Do get plex machine / then [SAVE]
- you can use command
./mambo info plex
to check some plex server info but only if you have already configured plex service
- you can use command
- Admin username : a plex user admin that will match admin organizr admin account
- Strict plex friends : enabled (only plex friends are registered)
- Enable Plex oAuth : enabled (active plex login to log into organizr)
-
Settings / System Settings / Main / Login
- Hide registration : enabled
-
Settings / System Settings / Main / Security
- Enable Traefik Auth Redirect - When accessing directly to a service and using forwardAuth to test user access, will redirect on organizr login page if user is not logged. (Will throw HTTP 401 if this option is disabled)
-
Tab Editor / Tabs list
- Homepage : active
- Homepage : Default tab
-
Setup Theme
- Settings / Customize / Appearance / Top bar : set title and description
- Settings / Customize / Appearance / Login Page :
- use logo instead of Title on Login Page : disabled
- minimal login screen : enable
- Settings / Customize / Appearance / Options : Disable useless lings
- Settings / Customize / Marketplace : install plex theme
- Settings / Customize / Appearance / Colors & Themes : select theme plex, style dark (Theme URL is https://github.com/Burry/Organizr-Plex-Theme)
-
- To add a service into organizr2 add a new tab
Local Tab URL
, if not empty, is used when requesting service from inside network (local network)Tab URL
is used when requesting service from outside network (internet) (and inside network too, ifLocal Tab URL
is empty)- Note that in all cases URL in
Local Tab URL
orTab URL
must be reachable directly from a browser (from inside local network forLocal Tab URL
and from internet forTab URL
).
- When enabled (
ORGANIZR2_AUTHORIZATION=ON
) access to a service depends on group access level. By default the access level is for a new tabCo-Admin
- This allow to access to the service through Organizr2 UI
- This allow to direct access to the service url is blocked by adding a forwardAuth middleware (
service-auth@rest
) to traefik dynamicly. - There is a mapping between the organizr2 tab name and the service name. Tab name and service name (after
_
character if there is any) must be the same- service name :
ombi
organizr2 tab name :ombi
- service name :
calibreweb_books
organizr2 tab name :books
- service name :
- To test another version, referenced by its commit, tag or github branch, there is an inactive service
organizrtest
for this purpose- Stop organizr main instance
./mambo down organizr2
and backup its data foldermambo-data/oprganizr2
- Add this section into your
mambo.env
ORGANIZR2_INSTANCE=organizrtest ORGANIZR2_API_VERSION=2 TANGO_SERVICES_AVAILABLE+=organizrtest TANGO_SUBSERVICES_ROUTER+=organizrtest_plex NETWORK_SERVICES_AREA_MAIN+=organizrtest NETWORK_SERVICES_REDIRECT_HTTPS+=organizrtest LETS_ENCRYPT_SERVICES+=organizrtest TANGO_TIME_VOLUME_SERVICES+=organizrtest ORGANIZRTEST_API_TOKEN_PASSWORD= APP_DATA_PATH_SUBPATH_LIST+=ORGANIZRTEST_DATA_PATH ORGANIZRTEST_BRANCH=manual ORGANIZRTEST_COMMIT=12357eeb0df0f97f8cc48de9208695fdd0b42e15 ORGANIZRTEST_SUBDOMAIN=organizrtest. ORGANIZRTEST_DATA_PATH=organizrtest
- Init & start test instance
./mambo init organizr2 ./mambo up organizrtest
- see https://organizrtest.domain.com
- follow previous organizr2 configuration procedure
- Stop organizr main instance
Organizr2 auto update feature is disables in Mambo
Choose a commit version from https://github.com/causefx/Organizr and set it as ORGANIZR2_COMMIT value
Then ./mambo update organizr2 ./mambo up organizr2
- access to tautulli - setup wizard will be launched
- create an admin account
- signin with your plex account
- For Plex Media Server :
- Plex IP or Hostname :
plex
- Port Number :
32400
- Use SSL :
disabled
- Remote Server :
disabled
- Click Verify
- Plex IP or Hostname :
- Then after setup finished, in settings
- Web interface / advanced settings / Enable HTTP Proxy :
enabled
- Web interface / advanced settings / Enable HTTPS" :
disabled
- Web interface / advanced settings / Public Tautulli Domain :
https://web.mydomain.com
(usefull for newsletters and images - newsletters are exposed through mambo serviceweb
)
- Web interface / advanced settings / Enable HTTP Proxy :
-
TODO : mail setup
-
Settings / Notifications & Newsletters / Show Advanced
-
Settings / Notifications & Newsletters / Newsletters
- Self-Hosted Newsletters : checked
- Use Inline Styles Templates : checked
- Newsletter Output Directory :
/newsletters
- Custom newsletter Templates Folder : set value
/default_template
- if you want to customize the default newsletter template : set value folder as
/custom_template/templates
and edit in your data folderebooks_list/recently_added.mtml
followingmambo/ebooks/recently_added.html
(the default one) as guide. And - if you want a real preview of your newsletter with your custom template use :
https://tautulli.domain.com/real_newsletter?newsletter_id=1&preview=true
instead of this proposed urlhttps://tautulli.domain.com/newsletter_preview?newsletter_id=1
- if you want to customize the default newsletter template : set value folder as
-
TIPS : Inside newsletter configuration; to edit subject and message in default newsletter you can use theses variables https://github.com/Tautulli/Tautulli/blob/master/plexpy/common.py
Newsletter url : {newsletter_url}
-
to add a new plex user just refresh user list
-
edit user and check "Allow guest access"
-
more info :
./mambo info tautulli
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Tautulli or choose one
- Tab Url :
https://tautulli.mydomain.com
- Ping Url : tautulli
- Choose image : tautulli
- Tab editor / Tabs list
- Group : User
- Tab editor / add a tab ("plus" button)
-
SSO : Allow to login only to organizr2, tautulli login is automatic
- System Settings / Single Sign-On / Tautulli
- Tautulli Url :
http://tautulli:8181
(DO NOT CHANGE THIS : it is the local docker network url) Enable
SSO
- Tautulli Url :
- System Settings / Single Sign-On / Tautulli
-
Integration to Homepage :
- Tab Editor / Homepage Items / Taututlli
- Enable, Minimum Authentication : User
- Personalize all viewing options
- Connection / Url : http://tautulli:8181
- Connection / API : get api key from tautulli or from
./mambo info tautulli
- Tab Editor / Homepage Items / Taututlli
- Free and easy binary newsreader
- https://sabnzbd.org/
-
Auto configuration steps :
./mambo init sabnzbd
* will set right downloads and other folders./mambo init nzbtomedia
* will set nzbToMedia settings : connect transmission to medusa -
Start service
./mambo up sabnzbd
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Sabnzbd or choose one
- Tab Url :
https://sabnzbd.mydomain.com
- Ping Url : sabnzbd
- Choose image : sabnzbd
- Tab editor / Tabs list
- Group : Co-Admin
- Tab editor / add a tab ("plus" button)
-
Integration to Homepage :
- Tab Editor / Homepage Items / sabnzbd
- Check Enable
- Minimum Authentication : Co-Admin
- Connection / Url : http://sabnzbd:8080
- Connection / Token : get API key with
./mambo info sabnzbd
or from within sabnzbd admin panel (you can get also from here a QRCode)
- Tab Editor / Homepage Items / sabnzbd
go to sabnzbd through organizr https://organizr.mydomain.com/#Sabnzbd
- Sabnzbd Config
- Servers
- Add your newsgroup servers
- Categories : Create categories for each kind of media files in
/media/folders
as defined by variablesTANGO_ARTEFACT_FOLDERS
- tv
- script : nzbToSickBeard.sh
- folder : /download/processdir/tv
- tv
- Switches
- enable Direct Unpack
- Servers
-
SABconnect++ (chrome plugin)
- SABnzbd URL : https://sabnzbd.domain.com
- SABnzbd API Key : get API key with
./mambo info sabnzbd
or from within sabnzbd admin panel (you can get also from here a QRCode)
-
SabNzbd Remote 2.0 (android app)
- URL : sabnzbd.domain.com
- Port: 443
- Use SSL
- Authentification Method : use api key
- API Key : get API key with
./mambo info sabnzbd
or from within sabnzbd admin panel (you can get also from here a QRCode)
- Kindle Comic Converter is a Python app to convert comic/manga files or folders to EPUB, Panel View MOBI or E-Ink optimized CBZ.
- source code : https://github.com/StudioEtrange/kcc
- docker image code : https://github.com/StudioEtrange/docker-kcc
- Start service
./mambo up kcc
Into Organizr2
* Image manager
* Add image file `KCC_logo.png` from https://github.com/StudioEtrange/mambo/tree/master/pool/artefacts/img
* Add a tab in Organizr2 menu
* Tab editor / add a tab ("plus" button)
* Tab name : KCC or choose one
* Tab Url : `https://kcc.mydomain.com`
* Ping Url : kcc
* Choose image : KCC_logo.png
* Tab editor / Tabs list
* Group : Co-Admin
- Usage guide : https://community.seedboxes.cc/articles/how-to-use-medusa-with-your-seedbox
- Post processing guide : https://github.com/pymedusa/Medusa/wiki/Post-Processing
-
Auto configuration steps :
./mambo init medusa
* will set plex notification * will set sabnzbd as search provider * will set transmission as search provider./mambo init nzbtomedia
* will set nzbToMedia settings : connect transmission to medusa -
Start service
./mambo up medusa
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Medusa or chosse one
- Tab Url :
https://medusa.mydomain.com
- Ping Url : medusa
- Choose image : medusa
- Tab editor / Tabs list
- Group : Co-Admin
- Tab editor / add a tab ("plus" button)
-
Integration to Homepage :
- Tab Editor / Homepage Items / Sickrage
- Enable, Minimum Authentication : User
- Connection / Url : http://medusa:8081
- Connection / API : get api key from medusa (./mambo info medusa)
- Personalize all viewing options - recommended :
- Misc Options / Default view : week
- Misc Options / Items by day : 7
- Tab Editor / Homepage Items / Sickrage
Into Medusa, deactivate login because access is protected with organizr2 * General / Interface / Web Interface / HTTP username : blank * General / Interface / Web Interface / HTTP password : blank
- In settings
- General / Misc / Show root directories : Add TV show folders
- Search Settings / Episode Search
- Set any search filters needed (i.e
required words
)
- Set any search filters needed (i.e
- Search Providers : add your providers
- Subtitles / Subtitles Search
- Languages : add any language you need
- Perfect Match - Only download subtitles that match release group : yes
- Subtitles Multi-Language - Append language codes to subtitle : yes
- Subtitles / Subtitles Plugin : select subtitle provider
- Subtitles / Plugin settings : configure subtitle provider
- Post-Processing / Episode naming
- Custom name pattern : SEASON %S/%RN
-
Special tool used to connect medusa with sabnzbd and transmission
-
Sequence for newsgroup :
- Medusa will find a tv show file in an nzb indexer or torrent tracker
- Download order is sent to sabnzbd/transmission
- When finished sabnzbd/transmission will execute an nzbToMedia script
- process downloaded file with nzbTomedia
- notify medusa at the end of the process
- Medusa will post-process the file
-
Usage
- Only init it after init of sabnzbd and medusa with
./mambo init nzbtomedia
- Only init it after init of sabnzbd and medusa with
- sync workflow for a tv show download
- medusa send signal to transmission to download file in /download/transmission/complete/tv (medusa variable : torrent_path)
- transmission download file in /download/transmission/incomplete/file
- transmission move file in /download/transmission/complete/tv/file
- transmission seed file from /download/transmission/complete/tv/file
- transmission exec nzbtomedia script TorrentToMedia
- nzbtomedia create hard link from /download/transmission/complete/tv/file to /download/processdir/file (nzbtomedia variable : outputDirectory)
- nzbtomedia send signal to medusa
- medusa process file from /download/processdir
- medusa copy file from /download/processdir to /library/tv/show/folder
- Parameters
- Ombi
- base url : -leave empty-
- do not allow to collect analytics data
- Configuration / User importer
- Import Plex Users :
enabled
- Import Plex Admin :
enabled
- Default Roles : Request Movie/TV
- Import Plex Users :
- Configuration / Authentification
- Enable plex OAuth :
enabled
(Allow to use Plex credentials to login Ombi)
- Enable plex OAuth :
- Media Server / Plex configuration / Add server
- Server Name : free text
- Hostname :
plex
- Port :
32400
- SSL :
enabled
- Plex Authorization Token (X-Plex-Token) : get Auth token with
./mambo info plex
- Click on Test Connectivity
- Click on Load Libraries and select libraries in which content will look for user request
- Configuration / Customization
- Application Name : Your App
- Application URL : https://organizr.domain.com/ (portail URL)
- Notifications / Email
- settings based on your mail provider, sample for [email protected] :
- Enable SMTP Authentification
- SMTP Host : smtp.gmail.com
- SMTP port : 587
- Email sender address : [email protected]
- Admin email : [email protected]
- Email sender name : My Name
- Username : [email protected]
- Password : xxxx
- Ombi
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Ombi or choose one
- Tab Url :
https://ombi.mydomain.com/auth/cookie
- Ping Url : ombi
- Choose image :
ombi-plex
- Tab editor / Tabs list
- Group : User
- Tab editor / add a tab ("plus" button)
-
SSO : Delegate ombi authentification to organizr2
- System Settings / Single Sign-On / Ombi
- Ombi Url :
http://ombi:5000
- Token : get API Key from Ombi settings / Ombi / Ombi Configuration
- Ombi Url :
- System Settings / Single Sign-On / Ombi
-
Integration to Homepage : TODO ?
- To add users
- Parameters / Configuration / User importer : Run importer
- Start service
./mambo up overseerr
go to overseerr https://overseerr.mydomain.com
- At first Launch
- Connect with plex account
- Plex settings
- Server : choose the secure url
- Hostname : https://plex.domain.com
- Port : 443
- Enable SSL
- Save
- Plex libraries
- select wanted libraries
- Start Scan
- Settings
- General
- Application Title : will be used in mail
- Application Url : https://organizr.domain.com/#OverseerTabName
- Users
- Enable New Plex User Sign-In Allow Plex users to sign in without first being imported : enable
- Default Permissions
- View requests : if you want that all requests to anybody
- Notifications
- Email
- settings based on your mail provider, sample for [email protected] :
- Enable Agent
- Sender name : choose a name
- Sender address : [email protected]
- SMTP Host : smtp.gmail.com
- SMTP port : 587
- Encryption : use starttls if available
- SMTP Username : [email protected]
- SMTP Password : xxxx
- Email
- General
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Overseerr or choose one
- Tab Url :
https://overseerr.mydomain.com
- Ping Url : overseerr
- Choose image :
overseerr
- Tab editor / Tabs list
- Group : User
- Tab editor / add a tab ("plus" button)
-
SSO : Delegate Overseerr authentification to organizr2
- System Settings / Single Sign-On / overseerr
- overseerr Url :
http://overseerr:5055
- Token : get API Key from Overseerr settings or with
./mambo info overseerr
- Enable
- overseerr Url :
- System Settings / Single Sign-On / overseerr
- direct url :
https://mkvtoolnix.domain.com
- Start service
./mambo up mkvtoolnix
Into Organizr2
-
Image manager
- Add image file
mkvtoolnix_logo.png
from https://github.com/StudioEtrange/mambo/tree/master/pool/artefacts/img
- Add image file
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : MKVToolNix or choose one
- Tab Url :
https://mkvtoolnix.mydomain.com
- Ping Url : mkvtoolnix
- Choose image :
mkvtoolsnix_logo
- Tab editor / Tabs list
- Group : Co-Admin
- Tab editor / add a tab ("plus" button)
- create an account on https://my.jdownloader.org/ and install a browser extension
- set
JDOWNLOADER2_EMAIL
andJDOWNLOADER2_PASSWORD
variables before launch - you can see your instance at https://my.jdownloader.org/
access through https://lazylibrarian.domain.com
- Config / Processing
- Folders / eBook Library Folder :
/calibredb/books
- Filename formatting
- Magazine Foldername Pattern :
/calibredb/press/$Title
- Magazine Filename Pattern:
$Title - $IssueDate
- Uncheck Magazines inside book folder
- Magazine Foldername Pattern :
- Folders / eBook Library Folder :
Into Organizr2
- Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Lazylibrarian or choose one
- Tab Url :
https://lazylibrarian.mydomain.com
- Ping Url : lazylibrarian
- Choose image :
lazylibrarian
- Tab editor / Tabs list
- Group : Co-Admin
- Tab editor / add a tab ("plus" button)
-
Direct UI Access through https://internal-transmission.mydomain.com
- protected by organizr auth and will auto login with a transmission auth basic
-
Third tools access through https://transmission.mydomain.com using credentials defined by
TRANSMISSION_USER
andTRANSMISSION_PASSWORD
-
P2P network traeffik use port defined by
TRANSMISSION_PORT
env var -
vpn
- you may want to attach this service to a vpn, if so see VPN section and if you have PIA provider the plugin Transmission PIA port
- Test P2P traffic really use VPN :
- when transmission is attached to a VPN all port declaration in compose-file are removed, TRANSMISSION_PORT env var is not used anymore
-
NOTE : when modify settings from webui, they are saved only when transmission is stopped
Into mambo.env * set TRANSMISSION_USER and TRANSMISSION_PASSWORD
- Auto configuration steps :
./mambo init transmission
* will set right download folders./mambo init nzbtomedia
* will set nzbToMedia settings : connect transmission to medusa - Start service
./mambo up transmission
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Transmission or choose one
- Tab Url :
https://internal-transmission.mydomain.com
- Ping Url : transmission_internal - MUST be same name as listed in
mambo services list
- Choose image :
transmission_internal
- Tab editor / Tabs list
- Group : Co-Admin
- Tab editor / add a tab ("plus" button)
-
Integration to Homepage :
- Tab Editor / Homepage Items / Transmission
- Enable, Minimum Authentication : Co-Admin
- Connection / Url :
https://transmission.mydomain.com/transmission/rpc/
(We can not use internal network alias http://transmission when transmission is tied to a vpn service) - Connection / User and password : fill with correct values from TRANSMISSION_USER and TRANSMISSION_PASSWORD
- Tab Editor / Homepage Items / Transmission
- Transmission Easy Client
- https://chrome.google.com/webstore/detail/transmission-easy-client/cmkphjiphbjkffbcbnjiaidnjhahnned
- user/pass : use
TRANSMISSION_USER
andTRANSMISSION_PASSWORD
values - IP : transmission.mydomain.com
- Port 443
- Auth required
- WebUI : /transmission/web
- Use SSL
- Path : /transmission/rpc
Calibre-web will print ebooks registerd in a calibre database. When configured, it can send to kindle a converted ebook. Each converted created file is updated with metadata from its metadata.opf file and added to calibre database
- About sending to kindle and format :
- https://github.com/janeczku/calibre-web/blob/34a474101fa2b3dd97046f5febc84cb10ac9c27b/cps/helper.py#L211
- If Mobi file is existing, it's directly send to kindle email,
- If Epub file is existing, it's converted and send to kindle email,
- If Pdf file is existing, it's directly send to kindle email
- Start service
./mambo up calibreweb_books
Into Calibre web https://books.mydomain.com
-
First access :
- Location of Calibre database : /calibreweb_books_db
- Connexion : admin/admin123 (do forget me)
-
Admin / Configuration / Edit UI Configuration
- Default Settings for New Users
- Allow Downloads (needed by the feature : send to kindle)
- Allow eBook Viewer
- Default Visibilities for New Users
- depending of books type remove some selection
- For regular ebooks : Remove show publisher selection
- depending of books type remove some selection
- Default Settings for New Users
-
Admin / Users / Add New user
- Username : same as your plex admin user
- Password : change password to anything you want
- Mail/... : anything you want
- Admin User
-
Admin / Users
- Select admin user
- Password : change password to anything you want
- Mail/... : anything you want (but different from the previous one)
- Select admin user
-
Admin / Configuration / Edit Basic Configuration
- Feature Configuration : Enable Uploads
- External binaries
- Path to Calibre E-Book Converter : /pool/mambo/ebooks/ebook_convert_wrapper.sh
- Calibre E-Book Converter Settings : METADATA_FROM_OPF /usr/bin /books -v
- for calibre-web < v0.6.11 which do not auto add the converted book to calibre library : Calibre E-Book Converter Settings : ADD_CALIBREDB_AND_METADATA_FROM_OPF /usr/bin /books -v
- Path to Kepubify E-Book Converter : /usr/bin/kepubify
- Location of Unrar binary : /usr/bin/unrar
-
Admin / Email server smtp settings
- needed at least to get send to kindle feature
- settings based on your mail provider, sample for [email protected] :
- SMTP hostname : smtp.gmail.com
- SMTP port : 465 (Calibre-web do not accept use of port 587 for SMTPS dont know why)
- Encryption : SSL/TLS
- SMTP login : [email protected]
- SMTP Password: xxxx
- From e-mail : My Name
-
Admin / Configuration / Edit UI Configuration
- View Configuration
- Title : choose a title
- Theme : caliblur
- sort regexp : tweak it if needed
- i.e: ^(A|The|An|Der|Die|Das|Den|Ein|Eine|Einen|Dem|Des|Einem|Eines|Le|La|Du|Des|De|Les|Un|Une)\s+
- View Configuration
Into Organizr2
- Settings / Image manager
- Add image file
press_logo.png
from https://github.com/StudioEtrange/mambo/tree/master/pool/artefacts/img
- Add image file
Into Calibre web
- Admin-Settings / Configuration / Edit Basic Configuration / Feature Configuration
- Allow Reverse Proxy Authentication : enable
- Reverse Proxy Header Name :
X-Organizr-User
Into Organizr2
-
Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : books or choose one
- Tab Url :
https://books.mydomain.com
- Ping Url : calibreweb_books
- Choose image :
calibre-web
- Tab editor / Tabs list
- Group : User
- Tab editor / add a tab ("plus" button)
-
Settings / System Settings / Main / Security
- Iframe sandbox : add
Allow Downloads
to authorize ebooks downloading from within organizr window
- Iframe sandbox : add
WARN
- when setting is done, you cannot logout of calibreweb but only by logout from organizr2. And you can not to login as a different user into calibreweb for debug or test purpose
- to debug/test add a direct access port to calibreweb dedicated to your media :
CALIBREWEB_BOOKS_DIRECT_ACCESS_PORT=22222
and access it throughhttp://localhost:22222
To add a matching plex user to Calibre web, you can check registerd plex username/mail in Ombi user list
- Admin / Users / Add New user
- Username : same as plex username
- Password : anything you want
- Mail : same as plex mail
- Language : choose a language for UI
Each user can set himself it's kindle mail. Calibre-web convert on the fly the sent ebook as mobo format for kindle if necessary.
For press, do the same than books but replace books
by press
Into Organizr2
- Image manager
- Add image file
press_logo.png
from https://github.com/StudioEtrange/mambo/tree/master/pool/artefacts/img
- Add image file
Into Calibre Web
- Admin / Configuration / Edit UI Configuration
- Remove view by author and publisher
NOTE : to copy/paste inside calibre use Ctrl+shift+alt
- Start service
./mambo up calibre
Into Organizr2
- Add a tab in Organizr2 menu
- Tab editor / add a tab ("plus" button)
- Tab name : Calibre or choose one
- Tab Url :
https://calibre.mydomain.com
- Ping Url : calibre
- Choose image : cops
- Tab editor / Tabs list
- Group : Co-Admin
Into Calibre
- recommended action to add to toolbar
- Preferences / Toolbars & menus / main toolbar
- "Embed Metadata" action (FR : "integrer metadonnees") - for any file format
- "Polish book" action (FR : "polir livres") - for ePub and AZW3 files
- to not keep an original file : Preferences / Tweaks / Save origin file when... / set both values as False (Click on restart calibre)
- Update metadata in ebook
- Update the cover in ebook
- Remove unused CSS
- Losslessly compress image
- Preferences / Toolbars & menus / main toolbar
- recommended plugins
- Preferences / Advanced / Plugins / Get new plugins
- "Modify ePub" - for ePub files
- "Quality check" - for ePub files
- "Babelio" plugins - for babelio.com metadata https://www.mobileread.com/forums/showthread.php?t=294421 (Load plugin from file : babelio_calibre.zip)
- "Mass Search/Replace" - Usefull to take care of press/magazines
- "Comments cleaner" https://github.com/un-pogaz/Comments-Cleaner
- "GetFileName" - Usefull to store in a column original filename https://www.mobileread.com/forums/showthread.php?t=278559
- "Google Images"
- Preferences / Advanced / Plugins / Get new plugins
- all calibre database folders are in folder
/calibredb
(i.e /calibredb/books, /calibredb/press)
- for more information see https://github.com/StudioEtrange/tango/blob/master/README.md
-
Mambo use 2 logical areas.
main
andadmin
. Each of them have a HTTP entrypoint and a HTTPS entrypoint. -
By default
- all services are on
main
area, so accessible throuh ports 80/443 (ie: http://ombi.mydomain.com) - traefik admin services are on
admin
area, so accessible throuh ports 9000/9443 (ie: http://traefik.mydomain.com)
- all services are on
logical area | entrypoint name | protocol | default port | variable |
---|---|---|---|---|
main | web_main | HTTP | 80 | NETWORK_PORT_MAIN |
main | web_main_secure | HTTPS | 443 | NETWORK_PORT_MAIN_SECURE |
admin | web_admin | HTTP | 9000 | NETWORK_PORT_ADMIN |
admin | web_admin_secure | HTTPS | 9443 | NETWORK_PORT_ADMIN_SECURE |
HTTPS redirection
-
By default HTTP to HTTPS auto redirection is active
-
To enable/disable HTTPS only access to each service, declare them in
NETWORK_SERVICES_REDIRECT_HTTPS
variable. An autosigned certificate will be autogenerate- NOTE : some old plex client do not support HTTPS (like playstation 3) so plex might be excluded from this variable
-
ie in user env file :
NETWORK_SERVICES_REDIRECT_HTTPS=traefik ombi organizr2
- see documentation in tango https://github.com/StudioEtrange/tango/blob/master/README.md
List of available plugins
-
Plugin name : transmission_pia_port
-
Allow port forwarding with PIA vpn provider
- first, ask for an open port to enter your vpn on the active VPN connexion
- second, set transmission with this remote port
-
To declare it as auto launched at each transmission launch set in your own mambo.env file with
TANGO_PLUGINS=transmission_pia_port%transmission
-
To declare it as manually launched at each transmission launch set in your own mambo.env file with
TANGO_PLUGINS=transmission_pia_port%!transmission
- then launch this plugin to set transmission remote port :
./mambo plugins exec-service transmission
- then launch this plugin to set transmission remote port :
-
Declare a vpn connection provided by PIA and attached it to transmission services
- choose a server. All servers support port forwarding except from USA
VPN_1_PATH=../mambo-data/vpn/pia_ovpn_default_recommended_conf_20200509 VPN_1_VPN_FILES=Switzerland.ovpn VPN_1_VPN_AUTH=user;password VPN_1_DNS=1 VPN_1_SERVICES=transmission
-
To get PIA ovpn configuration files : https://www.privateinternetaccess.com/helpdesk/kb/articles/where-can-i-find-your-ovpn-files
-
restart
# must stop vpn and transmission to remove containers ./mambo down <vpn_id> ./mambo down transmission ./mambo up transmission # wait for transmission docker container to be healthy then launch plugin execution - NOTE : <vpn_id> is auto launched because is is declared as attached to transmission (see VPN_1_SERVICES) ./mambo plugins exec-service transmission
-
Check settings in transmission : Config / Network / port
-
Problem with a volume
- May occurs when you move some folder with your data
- FIX : delete docker volume with
docker volume rm <volumename>
- Sample
ERROR: Configuration for volume tango_shared_internal_data specifies "device" driver_opt /foo/folder/tango_shared, but a volume with the same name uses a different "device" driver_opt (/foo/bar/tango_shared). If you wish to use the new configuration, please remove the existing volume "tango_shared_internal_data" first: $ docker volume rm tango_shared_internal_data
-
Problem with number of folders or while transcoding audio like EAC
- may occurs while transcoding video or sound (like from EAC format) because the transcoder need one free slot of watched directory (https://forums.plex.tv/t/video-with-eac3-audio-wont-play/385000/30)
- Error sample
EAE timeout! EAE not running
- https://forums.plex.tv/t/unable-to-play-mediad-due-to-eae-error/536851
- FIX : on host increase fs.inotify.max_user_watches which have a default value of 8182 directories. This value is set on the host and shared at the kernel level by all docker container
sysctl fs.inotify echo fs.inotify.max_user_watches=NEW_MAX_DIRECTORIES >> /etc/sysctl.conf sysctl -p sysctl fs.inotify
- How to calculate new number : https://forums.plex.tv/t/increase-the-number-of-directories-linux-can-monitor-notify/209156
- about inotify values : https://transang.me/enospc-inotify-in-ubuntu/