Skip to content

Instantly share code, notes, and snippets.

@billy-idle
Last active January 25, 2024 05:50
Show Gist options
  • Save billy-idle/ec0c66dd746cc5e9808ebc0c88871f82 to your computer and use it in GitHub Desktop.
Save billy-idle/ec0c66dd746cc5e9808ebc0c88871f82 to your computer and use it in GitHub Desktop.

Calibre-web on FreeNAS

Creating the Jail

  • Step 1 - Name Jail and Choose FreeBSD Release

    • Name: calibre-jail
    • Jail Type: Default(Clone Jail)
    • Release: 11.3-RELEASE
  • Step 2 - Configure Networking

    • DHCP Autoconfigure IPv4 (check)
    • VNET (check)
  • Step 3 - Confirm Options

Running the Jail and setting up calibre-web

  1. Start the jail and go to the shell.
  2. Make sure you have installed the package manager:
pkg update
  1. Install git, pip, python and sqlite3:
pkg install git && pkg install py37-pip && pkg install python && pkg install sqlite3 && pkg install py37-sqlite3
  1. Clone the calibre-web repository
cd /
git clone https://github.com/janeczku/calibre-web.git
  1. Follow the "Quick start":
cd calibre-web/
pip install --target vendor -r requirements.txt
  1. Execute:
python cps.py

Open your web browser and go to http://[jail-ip-address]:8083, if everything goes fine you will see:

  1. Stop de Jail and add the mountpoint of your library (do not forget to check the Auto-start box in the edit section)

  2. Start the Jail, go to the jail's shell and create an startup script:

touch /calibre-web/cw-startup.sh

echo '#\!/bin/sh' >> /calibre-web/cw-startup.sh
echo 'nohup python /calibre-web/cps.py &' >> /calibre-web/cw-startup.sh

chmod +x /calibre-web/cw-startup.sh
  1. Add the script to the crontab
echo '@reboot root /calibre-web/cw-startup.sh' >> /etc/crontab
  1. Restart the jail and go to http://[jail-ip-address]:8083
@Zamana
Copy link

Zamana commented Jun 20, 2022

Hi!

June, 2022: after also installing py38-Flask and py38-Flask-Login, I have this error after python cps.py:

Traceback (most recent call last):
  File "cps.py", line 28, in <module>
    from cps.main import main
  File "/usr/local/calibre-web/cps/__init__.py", line 29, in <module>
    from .MyLoginManager import MyLoginManager
  File "/usr/local/calibre-web/cps/MyLoginManager.py", line 24, in <module>
    from flask_login import LoginManager
  File "/usr/local/lib/python3.8/site-packages/flask_login/__init__.py", line 16, in <module>
    from .login_manager import LoginManager
  File "/usr/local/lib/python3.8/site-packages/flask_login/login_manager.py", line 24, in <module>
    from .utils import (login_url as make_login_url, _create_identifier,
  File "/usr/local/lib/python3.8/site-packages/flask_login/utils.py", line 13, in <module>
    from werkzeug.security import safe_str_cmp
ImportError: cannot import name 'safe_str_cmp' from 'werkzeug.security' (/usr/local/lib/python3.8/site-packages/werkzeug/security.py)```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment