Hello everybody.
Recently I bought a mini pc and starting playing around with Proxmox. one of the things I wanted to do first was to setup a Calibre server on it.
Seeing how few and sometime unclear the steps and guides I found on the internet, I felt like sharing my experience and how I got it working in the end.
Sorry if the steps are not clear or the if conditions are too specific. But I hope this thread would help at least one person out there who is struggling like I did on this little project.
Now first of all, on Proxmox you would want to create a container using the built-in function. The container I made is a "Ubuntu 24.04.1 LTS" container.
Next update and upgrade the system. Then use these commands:
Code:
sudo apt install -y libegl1 libopengl0
sudo apt install -y libxcb-cursor0
sudo apt install -y libnss3
sudo apt install -y libxdamage1
sudo apt install -y x11-utils libxrandr2 libxtst6
sudo apt install -y libx11-6 libxext6 libxrender1
sudo apt install -y alsa-utils
sudo apt install -y xdg-utils
sudo apt install -y libgtk-3-0
I'm not sure if half of these are even required for the server, but when installing Calibre I got alot of errors until I realized that I'm not looking to run Calibre on this container, I only need Calibre-Server.
Anyway after downloading these libraries, start downloading Calibre using this command:
Code:
sudo wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python3 -
This will get you the newest release. Also don't worry if you get a warning at the end about desktop stuff, you don't need them you just want to run the server.
after that run type "calibre-server" or "calibre-server ~/test" in the command line. If it says something like "There is no calibre library" you are good to go.
Now make the directory which you want to be your calibre library.
For example:
Code:
mkdir ~/calibre-library
Now you need at least one book to initialize the library. So download your book and move it to the folder you just made. Suppose the book name is book.epub
Code:
calibredb add book.epub --library-path ~/calibre-library
now you can start your server on which port you like
Code:
calibre-server --port=8080 --enable-local-write ~/calibre-library
I read that "--enable-local-write" is important if you need to edit the library while it's running.
By now everything should be working fine and you can test by opening the browser on a machine on the same network and typing the container's IP address and port.
Next you might want the server to start automatically in the background. Stop the server process for now and using the following command:
Code:
sudo nano /etc/systemd/system/calibre-server.service
and write the following
Code:
[Unit]
Description=Calibre E-book Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/calibre-server --port=8080 --enable-local-write /home/[your user name]/calibre-library
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
Don't forget to change [your user name] or use the right path to your library. Don't use "~/" it will not work I tried.
Press Ctrl+O then Enter to save the file then Ctrl+X to exit. Then running the following commands:
Code:
sudo systemctl start calibre-server
sudo systemctl status calibre-server
if everthing goes will you will see the service as active, otherwise troubleshoot the error and fix what needs to fixed then restart the service with the following commands
Code:
sudo systemctl daemon-reload
sudo systemctl restart calibre-server
And that's it!
I do apologize for my bad English and poor writing skills. Also this whole thing is new to me but I wanted to share my experience for anyone who might need it.
I would love to read from you guys if there's any mistake that I made or a suggestion to make the process easier.
Next I need to figure out how to get my books from my windows PC to the server and then how to expose it to the internet for my use with Moon+ reader.
Thank you for reading.