summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--0x0-prune.service22
-rw-r--r--0x0-prune.timer9
-rw-r--r--README.rst10
3 files changed, 39 insertions, 2 deletions
diff --git a/0x0-prune.service b/0x0-prune.service
new file mode 100644
index 0000000..b28fb2d
--- /dev/null
+++ b/0x0-prune.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Prune 0x0 files
+After=remote-fs.target
+
+[Service]
+Type=oneshot
+User=nullptr
+WorkingDirectory=/path/to/0x0
+BindPaths=/path/to/0x0
+
+Environment=FLASK_APP=fhost
+ExecStart=/usr/bin/flask prune
+ProtectProc=noaccess
+ProtectSystem=strict
+ProtectHome=tmpfs
+PrivateTmp=true
+PrivateUsers=true
+ProtectKernelLogs=true
+LockPersonality=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/0x0-prune.timer b/0x0-prune.timer
new file mode 100644
index 0000000..df6a594
--- /dev/null
+++ b/0x0-prune.timer
@@ -0,0 +1,9 @@
+[Unit]
+Description=Prune 0x0 files
+
+[Timer]
+OnCalendar=hourly
+Persistent=true
+
+[Install]
+WantedBy=timers.target
diff --git a/README.rst b/README.rst
index af9074d..916a6f3 100644
--- a/README.rst
+++ b/README.rst
@@ -35,8 +35,14 @@ downsides, one of them being that range requests will not work. This is a
problem for example when streaming media files: It won’t be possible to seek,
and some ISOBMFF (MP4) files will not play at all.
-To make files expire, simply create a cronjob that runs ``FLASK_APP=fhost
-flask prune`` every now and then.
+To make files expire, simply run ``FLASK_APP=fhost flask prune`` every
+now and then. You can use the provided systemd unit files for this::
+
+ 0x0-prune.service
+ 0x0-prune.timer
+
+Make sure to edit them to match your system configuration. In particular,
+set the user and paths in ``0x0-prune.service``.
Before running the service for the first time, run ``FLASK_APP=fhost flask db upgrade``.