diff --git a/testing/rest-server/APKBUILD b/testing/rest-server/APKBUILD
index d939c3e6c0a87207fc016838bdfdacaf219496d6..fce452c0015f13b62805f95fd6bd5808258761cb 100644
--- a/testing/rest-server/APKBUILD
+++ b/testing/rest-server/APKBUILD
@@ -9,10 +9,13 @@ arch="all"
 license="BSD-2-Clause"
 depends=""
 makedepends="go"
-install=""
-subpackages="$pkgname-doc"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
 source="$pkgname-$pkgver.tar.gz::https://github.com/restic/$pkgname/archive/v$pkgver.tar.gz
-	0001-Move-TestIsUserPath-to-correct-package.patch"
+	0001-Move-TestIsUserPath-to-correct-package.patch
+	
+	$pkgname.confd
+	$pkgname.initd"
 builddir="$srcdir/src/github.com/restic/$pkgname"
 
 export GOPATH="$srcdir"
@@ -39,7 +42,14 @@ package() {
 	install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
 	install -Dm644 README.md \
 		"$pkgdir"/usr/share/doc/$pkgname/README.md
+
+	install -Dm755 "$srcdir"/$pkgname.initd \
+		"$pkgdir"/etc/init.d/$pkgname
+	install -Dm644 "$srcdir"/$pkgname.confd \
+		"$pkgdir"/etc/conf.d/$pkgname
 }
 
 sha512sums="2288f93703d03859ec1a5d9085eda7ca5b82e801bc74cd66fcc58601e73a2bf5150f85e948749ca7d95e4598087acf5115499404ccbbfba62a4cc9043437ed29  rest-server-0.9.7.tar.gz
-98a9fbb7c0b60dbb3682bab40f7b4f488da93d7c7afdab174185bc62ad250bf8e1238b6513a239dd5da276935b51bd05495f13c7e03befa3a0f651cf3d109979  0001-Move-TestIsUserPath-to-correct-package.patch"
+98a9fbb7c0b60dbb3682bab40f7b4f488da93d7c7afdab174185bc62ad250bf8e1238b6513a239dd5da276935b51bd05495f13c7e03befa3a0f651cf3d109979  0001-Move-TestIsUserPath-to-correct-package.patch
+cd9e4d3df04c26aa602a57196bdfb14d7ad6e957f1d9596a09e596b9d01543eee08474817ba47192659fe6f5ab15b8fa64400fb6a8d24111f5c792b1412f5e5b  rest-server.confd
+185c0022d07c66fcee2d84af1bb0a11ac0753bd79deb8f5ae7dc2bd84909886aa3e58f42cd6ace4f191da6128d0385036948d4a8accd14cf9cdb9603001b9aca  rest-server.initd"
diff --git a/testing/rest-server/rest-server.confd b/testing/rest-server/rest-server.confd
new file mode 100644
index 0000000000000000000000000000000000000000..20e9a4552c0183f88eb1740d9e73a6b3582f3015
--- /dev/null
+++ b/testing/rest-server/rest-server.confd
@@ -0,0 +1,5 @@
+# Storage directory used by the rest-server.
+REST_SERVER_PATH="/var/lib/restic"
+
+# Additional commandline flags passed to rest-server.
+#REST_SERVER_OPTS=""
diff --git a/testing/rest-server/rest-server.initd b/testing/rest-server/rest-server.initd
new file mode 100644
index 0000000000000000000000000000000000000000..25745876e3ebbf7e6087a6f03f63d9ad58578767
--- /dev/null
+++ b/testing/rest-server/rest-server.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+name="rest-server"
+command="/usr/bin/$name"
+command_args="$REST_SERVER_OPTS --path '${REST_SERVER_PATH}'"
+command_background="yes"
+command_user="${REST_USER:-restic}"
+pidfile="/var/run/$RC_SVCNAME.pid"
+
+depend() {
+	need net
+	after firewall
+}
+
+start_pre() {
+	checkpath --directory "${REST_SERVER_PATH}" \
+		--owner "${REST_USER:-restic}:${REST_GROUP:-restic}"
+}
diff --git a/testing/rest-server/rest-server.pre-install b/testing/rest-server/rest-server.pre-install
new file mode 100644
index 0000000000000000000000000000000000000000..0c7845dc50b8752cf662576c89bababf16dadfb7
--- /dev/null
+++ b/testing/rest-server/rest-server.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S restic 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin \
+	-G restic -g 'Rest Server Daemon' restic 2>/dev/null
+
+exit 0