diyhosting/calibre.html

128 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html lang=en>
<head>
<title>Setting up a Calibre library server &ndash; diyhosting.bhh.sh</title>
<!--# include file=".nav.html" -->
</head>
<body>
<header><h1>Setting up a Calibre library server</h1></header>
<nav></nav>
<main>
<img src="pix/calibre.png" alt="Calibre logo" class=titleimg>
<p>
The Calibre library server is a great way to store your eBooks.
It allows you to:
</p>
<ul>
<li>Share your books with others.</li>
<li>Easily transfer your books between devices and access them from anywhere.</li>
</ul>
<h2>Installation</h2>
<p>Install the Calibre package.
You might also want rsync to upload books.</p>
<pre><code>apt install -y calibre rsync
mkdir /opt/calibre</code></pre>
<p>
Either upload your existing library using <code>rsync</code>. For example to <code>/opt/calibre/</code>.
<pre><code>cd ~/Documents
rsync -avuP <strong>your-library-dir</strong> root@<strong>example.org</strong>:/opt/calibre/</code></pre>
<p>
Or create a library and add a book to it:
</p>
<pre><code>cd /opt/calibre
calibredb add <strong>book.epub</strong> --with-library <strong>your-library</strong></code></pre>
<aside>
<p>
For more information about the <code>calibredb</code> command see <code>man calibredb</code>.
</p>
</aside>
<p>
Add a new user to protect your server:
</p>
<pre><code>calibre-server --manage-users</code></pre>
<h2>Creating a service</h2>
<p>
Create a new file <code>/etc/systemd/system/calibre-server.service</code> and add the following:
</p>
<pre><code>[Unit]
Description=Calibre library server
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/calibre-server --enable-auth --enable-local-write /opt/calibre/your_library --listen-on 127.0.0.1
[Install]
WantedBy=multi-user.target
</code></pre>
<aside>
<p>
You can change the port with the <code>--port</code> prefix. Additional information <code>man calibre-server</code>.
</p>
</aside>
<p>
Issue <code>systemctl daemon-reload</code> to apply the changes.
</p>
<p>
Enable and start the service.
</p>
<pre><code>systemctl enable calibre-server
systemctl start calibre-server</code></pre>
<h2>A reverse proxy with Nginx</h2>
<p>
Create a new file <code>/etc/nginx/sites-available/calibre</code> and enter the following:
</p>
<pre><code>server {
listen 80;
client_max_body_size 64M; # to upload large books
server_name <strong>calibre.example.org</strong> ;
location / {
proxy_pass http://127.0.0.1:8080;
}
}</code></pre>
<p>Issue a Let's Encrypt certificate. <a href="certbot.html">Detailed instructions and additional information</a>.</p>
<pre><code>certbot --nginx</code></pre>
<p>Now just go to <strong>calibre.example.org</strong>. The server will request an username and a password.</p>
<a href="pix/calibre-1.png">
<img src="pix/calibre/calibre-1.png" alt="calibre">
</a>
<p>After login you will see something like this.</p>
<a href="pix/calibre-1.png">
<img src="pix/calibre/calibre-2.png" alt="calibre">
</a>
<h2>Contribution</h2>
<li>Author: rflx &ndash; <a href="https://rflx.xyz">website</a> -- XMR: <code class=crypto>48T5XpHTXAZ5Nn8YCypA4aWn1ffQLHJkFGDArXQB6cmrP6cqLY72cu7CR2iq2MmL5Ndu3d47e5MKjGpL4prYgdrTCFAHD9c</code>
</li>
</main>
<!--# include file=".footer.html" -->
</body>
</html>