|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<title>Tasks of the Contingent Librarian</title>
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="tasks.css">
|
|
|
|
|
<script src="tasks.js"></script>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<div class="cardback"><DOCUMENT_FRAGMENT><div class="mw-parser-output"><div class="thumb tright"><div class="thumbinner" style="width:152px;"><a class="image" href="https://pzwiki.wdka.nl/mw-mediadesign/images/thumb/8/82/Bl_announcement_poster.jpeg/640px-Bl_announcement_poster.jpeg"><img alt="" class="thumbimage" decoding="async" src="https://pzwiki.wdka.nl/mw-mediadesign/images/thumb/8/82/Bl_announcement_poster.jpeg/320px-Bl_announcement_poster.jpeg"></a> <div class="thumbcaption"><div class="magnify"><a class="internal" href="File:Bl_announcement_poster.jpeg.html" title="Enlarge"></a></div>Poster announcing the bootleg library, July 2019</div></div></div>
|
|
|
|
|
<div class="toc" id="toc"><input class="toctogglecheckbox" id="toctogglecheckbox" role="button" style="display:none" type="checkbox"><div class="toctitle" dir="ltr" lang="en"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="toclevel-1"><a href="#calibre-web_configuration"><span class="tocnumber">1</span> <span class="toctext">calibre-web configuration</span></a>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="toclevel-2"><a href="#Creating_a_unit_file"><span class="tocnumber">1.1</span> <span class="toctext">Creating a unit file</span></a></li>
|
|
|
|
|
<li class="toclevel-2"><a href="#Starting_the_calibre-server_service"><span class="tocnumber">1.2</span> <span class="toctext">Starting the calibre-server service</span></a></li>
|
|
|
|
|
<li class="toclevel-2"><a href="#Stopping_the_calibre-server_service"><span class="tocnumber">1.3</span> <span class="toctext">Stopping the calibre-server service</span></a></li>
|
|
|
|
|
<li class="toclevel-2"><a href="#Checking_the_status_of_the_calibre-server_service"><span class="tocnumber">1.4</span> <span class="toctext">Checking the status of the calibre-server service</span></a></li>
|
|
|
|
|
<li class="toclevel-2"><a href="#Enabling_the_calibre-server_service_to_start_at_boot"><span class="tocnumber">1.5</span> <span class="toctext">Enabling the calibre-server service to start at boot</span></a>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="toclevel-3"><a href="#Note"><span class="tocnumber">1.5.1</span> <span class="toctext">Note</span></a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2><span class="mw-headline" id="calibre-web_configuration">calibre-web configuration</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/prototypes/calibre-web_configuration&action=edit&section=T-1" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
|
|
|
|
|
<p>This is the configuration for calibre-web to listen on localhost:
|
|
|
|
|
</p>
|
|
|
|
|
<pre>--- a/cps/server.py
|
|
|
|
|
+++ b/cps/server.py
|
|
|
|
|
@@ -152,7 +152,7 @@ class WebServer(object):
|
|
|
|
|
http_server = HTTPServer(WSGIContainer(self.app),
|
|
|
|
|
max_buffer_size=209700000,
|
|
|
|
|
ssl_options=self.ssl_args)
|
|
|
|
|
- http_server.listen(self.listen_port, self.listen_address)
|
|
|
|
|
+ http_server.listen(self.listen_port, address="127.0.0.1")
|
|
|
|
|
self.wsgiserver = IOLoop.instance()
|
|
|
|
|
self.wsgiserver.start()
|
|
|
|
|
# wait for stop signal
|
|
|
|
|
</pre>
|
|
|
|
|
<h3><span class="mw-headline" id="Creating_a_unit_file">Creating a unit file</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-1" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
|
|
|
|
|
<p>You can easily create a unit file for calibre to run on boot on a modern (systemd) based Linux system. This means it will also restart after a crash. Create the file <code>/etc/systemd/system/calibre-server.service</code> with the contents shown below:
|
|
|
|
|
</p>
|
|
|
|
|
<pre>[Unit]
|
|
|
|
|
Description=Calibre.
|
|
|
|
|
After=syslog.target network.target
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
Type=simple
|
|
|
|
|
User=pi
|
|
|
|
|
Group=pi
|
|
|
|
|
WorkingDirectory=/home/pi/calibre-web
|
|
|
|
|
ExecStart=python cps.py
|
|
|
|
|
Restart=always
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=multi-user.target</pre>
|
|
|
|
|
<p>The <code>User</code> and <code>Group</code> should be the same ones that own the files in the calibre library directory. It's generally not a good idea to run the server as root. Also change the path to the calibre library directory to suit your system.
|
|
|
|
|
</p>
|
|
|
|
|
<h3><span class="mw-headline" id="Starting_the_calibre-server_service">Starting the calibre-server service</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-2" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
|
|
|
|
|
<p>Run:
|
|
|
|
|
</p><p><code>sudo systemctl start calibre-server</code>
|
|
|
|
|
</p><p>to start the server.
|
|
|
|
|
</p>
|
|
|
|
|
<h3><span class="mw-headline" id="Stopping_the_calibre-server_service">Stopping the calibre-server service</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-3" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
|
|
|
|
|
<p>Stopping the service is as easy as running:
|
|
|
|
|
</p><p><code>sudo systemctl stop calibre-server</code>
|
|
|
|
|
</p>
|
|
|
|
|
<h3><span class="mw-headline" id="Checking_the_status_of_the_calibre-server_service">Checking the status of the calibre-server service</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-4" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
|
|
|
|
|
<p>Check its status with:
|
|
|
|
|
</p><p><code>sudo systemctl status calibre-server</code>
|
|
|
|
|
</p>
|
|
|
|
|
<h3><span class="mw-headline" id="Enabling_the_calibre-server_service_to_start_at_boot">Enabling the calibre-server service to start at boot</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-5" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
|
|
|
|
|
<p>To make it start at boot, run:
|
|
|
|
|
</p><p><code>sudo systemctl enable calibre-server</code>
|
|
|
|
|
</p>
|
|
|
|
|
<h5><span class="mw-headline" id="Note">Note</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/mw-mediadesign/index.php?title=User:Simon/Trim4/prototypes/calibre_service_file&action=edit&section=T-6" title="Edit section: ">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
|
|
|
|
|
<p>The calibre server does not need a running X server, but it does need the X libraries installed as some components it uses link against them.
|
|
|
|
|
</p><p>The calibre server also supports systemd socket activation, so you can use that, if needed, as well.
|
|
|
|
|
</p>
|
|
|
|
|
<!--
|
|
|
|
|
NewPP limit report
|
|
|
|
|
Cached time: 20200617092214
|
|
|
|
|
Cache expiry: 86400
|
|
|
|
|
Dynamic content: false
|
|
|
|
|
CPU time usage: 0.026 seconds
|
|
|
|
|
Real time usage: 0.052 seconds
|
|
|
|
|
Preprocessor visited node count: 18/1000000
|
|
|
|
|
Preprocessor generated node count: 58/1000000
|
|
|
|
|
Post‐expand include size: 1656/2097152 bytes
|
|
|
|
|
Template argument size: 0/2097152 bytes
|
|
|
|
|
Highest expansion depth: 2/40
|
|
|
|
|
Expensive parser function count: 0/100
|
|
|
|
|
Unstrip recursion depth: 0/20
|
|
|
|
|
Unstrip post‐expand size: 745/5000000 bytes
|
|
|
|
|
-->
|
|
|
|
|
<!--
|
|
|
|
|
Transclusion expansion time report (%,ms,calls,template)
|
|
|
|
|
100.00% 4.697 1 -total
|
|
|
|
|
48.95% 2.299 1 User:Simon/prototypes/calibre-web_configuration
|
|
|
|
|
48.25% 2.266 1 User:Simon/Trim4/prototypes/calibre_service_file
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<!-- Saved in parser cache with key wdka_mw_mediadesign-mw_:pcache:idhash:31721-0!canonical and timestamp 20200617092214 and revision id 174004
|
|
|
|
|
-->
|
|
|
|
|
</div></DOCUMENT_FRAGMENT></div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|