132 lines
4.1 KiB
HTML
132 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang=en>
|
|
<head>
|
|
<title>Setting up a Calibre library server – diyhosting.bhh.sh</title>
|
|
<meta charset="utf-8"/>
|
|
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
|
<link rel='stylesheet' type='text/css' href='style.css'>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel='alternate' type='application/rss+xml' title='RSS Feed' href='/rss.xml'>
|
|
</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 – <a href="https://rflx.xyz">website</a> -- XMR: <code class=crypto>48T5XpHTXAZ5Nn8YCypA4aWn1ffQLHJkFGDArXQB6cmrP6cqLY72cu7CR2iq2MmL5Ndu3d47e5MKjGpL4prYgdrTCFAHD9c</code>
|
|
</li>
|
|
</main>
|
|
<!--# include file=".footer.html" -->
|
|
</body>
|
|
</html>
|