[arch-commits] Commit in (7 files)

Jelle van der Waa jelle at archlinux.org
Thu Jan 28 13:10:35 UTC 2021


    Date: Thursday, January 28, 2021 @ 13:10:35
  Author: jelle
Revision: 833276

Add hedgedoc

New service for Arch Linux

Added:
  hedgedoc/
  hedgedoc/repos/
  hedgedoc/trunk/
  hedgedoc/trunk/PKGBUILD
  hedgedoc/trunk/hedgedoc.service
  hedgedoc/trunk/sysusers.conf
  hedgedoc/trunk/tmpfiles.conf

------------------+
 PKGBUILD         |  132 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 hedgedoc.service |   46 ++++++++++++++++++
 sysusers.conf    |    1 
 tmpfiles.conf    |    2 
 4 files changed, 181 insertions(+)

Added: hedgedoc/trunk/PKGBUILD
===================================================================
--- hedgedoc/trunk/PKGBUILD	                        (rev 0)
+++ hedgedoc/trunk/PKGBUILD	2021-01-28 13:10:35 UTC (rev 833276)
@@ -0,0 +1,132 @@
+# Maintainer: Jelle van der Waa <jelle at archlinux.org>
+
+pkgname=hedgedoc
+pkgver=1.7.2
+pkgrel=1
+pkgdesc="Platform to write and share markdown"
+arch=('any')
+url='https://github.com/hedgedoc/hedgedoc'
+license=('AGPL3')
+depends=('nodejs' 'npm')
+makedepends=('nodejs' 'sqlite' 'python' 'node-gyp' 'git' 'yarn')
+optdepends=('postgresql: postgresql database support'
+            'mariadb: mariadb database support'
+            'sqlite: sqlite database support')
+backup=("etc/webapps/${pkgname}"/{config.json,sequelizerc})
+source=("${pkgname}-${pkgver}.tar.gz::https://github.com/hedgedoc/${pkgname}/archive/${pkgver}.tar.gz"
+        "sysusers.conf"
+        "tmpfiles.conf"
+        "hedgedoc.service")
+options=(!emptydirs)
+sha1sums=('d9420b702529558bddcbc7686ba8f0ce76e8b3c9'
+          'dc4220c9d7e21d2b5b5c54462bb681375d1cce62'
+          'faee704ac2e65e565f7bdcb527c2d0c73c20e682'
+          '1214d01fbe0c042f5a5b2e3790d1f02b3fcb9d95')
+
+build() {
+  cd "${pkgname}-${pkgver}"
+  # Build steps from Dockerfile
+  yarn install --production=false
+  yarn run build
+  rm -rf node_modules
+  # Production modules
+  yarn install --production=true
+}
+
+package() {
+  cd "${pkgname}-${pkgver}"
+
+  # removing unneeded files and directories
+  find node_modules -type f \
+          \( \
+         -iname '*Makefile*' -o \
+         -iname '*armv*' -o \
+         -iname '*.cache' -o \
+         -iname '*Makefile*' -o \
+         -iname '*appveyor.yml' -o \
+         -iname '*.babelrc' -o \
+         -iname '*.bak' -o \
+         -iname '*bower.json' -o \
+         -iname '*.c' -o \
+         -iname '*.cc' -o \
+         -iname '*.cpp' -o \
+         -iname '*.md' -o \
+         -iname '*.markdown' -o \
+         -iname '*.rst' -o \
+         -iname '*.nycrc' -o \
+         -iname '*.npmignore' -o \
+         -iname '*.editorconfig' -o \
+         -iname '*.el' -o \
+         -iname '*.eslintignore' -o \
+         -iname '*.eslintrc*' -o \
+         -iname '*.fimbullinter.yaml' -o \
+         -iname '*.gitattributes' -o \
+         -iname '*.gitmodules' -o \
+         -iname '*.h' -o \
+         -iname '*.html' -o \
+         -iname '*.jshintrc' -o \
+         -iname '*.jscs.json' -o \
+         -iname '*.log' -o \
+         -iname '*logo.svg' -o \
+         -iname '*.nvmrc' -o \
+         -iname '*.o' -o \
+         -iname '*package-lock.json' -o \
+         -iname '*.travis.yml' -o \
+         -iname '*.prettierrc' -o \
+         -iname '*.sh' -o \
+         -iname '*.tags*' -o \
+         -iname '*.Dockerfile*' -o \
+         -iname '*.tm_properties' -o \
+         -iname '*.wotanrc.yaml' -o \
+         -iname '*tsconfig.json' -o \
+         -iname '*yarn.lock' \
+         \) \
+         -delete
+
+  find node_modules -type d \
+          \( \
+         -iwholename '*.github' -o \
+         -iwholename '*.tscache' -o \
+         -iwholename '*/man' -o \
+         -iwholename '*/test' -o \
+         -iwholename '*/scripts' -o \
+         -iwholename '*/git-hooks' -o \
+         -iwholename '*/linux-arm64' -o \
+         -iwholename '*/linux-armvy' -o \
+         -iwholename '*/linux-armv7' -o \
+         -iwholename '*/win32-ia32' -o \
+         -iwholename '*/win32-x64' -o \
+         -iwholename '*/darwin-x64' \
+         \) \
+         -exec rm -rvf {} +
+
+  install -m0755 -d "${pkgdir}/usr/share/webapps/${pkgname}"
+
+  # install application parts
+  cp -a bin public lib locales node_modules "${pkgdir}/usr/share/webapps/${pkgname}"  
+  install -m0644 app.js -t "${pkgdir}/usr/share/webapps/${pkgname}"
+  install -m0644 package.json -t "${pkgdir}/usr/share/webapps/${pkgname}"
+
+  # Make public/uploads a symlink to the hedgedoc  writable directory.
+  # An alternative would be to configure the uploadsPath in config.json.
+  rm "${pkgdir}/usr/share/webapps/${pkgname}/public/uploads/.gitkeep"
+  rm -d "${pkgdir}/usr/share/webapps/${pkgname}/public/uploads"
+  ln -s "/var/lib/${pkgname}/uploads" \
+          "${pkgdir}/usr/share/webapps/${pkgname}/public/uploads"
+
+
+  # Setup config files in /etc.
+  install -m0755 -d "${pkgdir}/etc/webapps/${pkgname}"
+  cp config.json.example "${pkgdir}/etc/webapps/${pkgname}/config.json"
+  cp .sequelizerc.example "${pkgdir}/etc/webapps/${pkgname}/sequelizerc"
+
+  ln -s "/etc/webapps/${pkgname}"/config.json "${pkgdir}/usr/share/webapps/${pkgname}/config.json"
+  ln -s "/etc/webapps/${pkgname}"/sequelizerc "${pkgdir}/usr/share/webapps/${pkgname}/.sequelizerc"
+
+  # Configure hedgedoc user and some directories writable for that user.
+  install -Dm0644 ${srcdir}/sysusers.conf "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
+  install -Dm0644 ${srcdir}/tmpfiles.conf "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+
+  # Install systemd service file.
+  install -Dm0644 -t "${pkgdir}/usr/lib/systemd/system/" "${srcdir}"/hedgedoc.service
+}

Added: hedgedoc/trunk/hedgedoc.service
===================================================================
--- hedgedoc/trunk/hedgedoc.service	                        (rev 0)
+++ hedgedoc/trunk/hedgedoc.service	2021-01-28 13:10:35 UTC (rev 833276)
@@ -0,0 +1,46 @@
+[Unit]
+Description=Hedgedoc real-time collaborative markdown editor
+After=network.target
+
+[Service]
+Type=exec
+
+Environment=NODE_ENV=production
+
+Restart=always
+RestartSec=2s
+
+User=hedgedoc
+Group=hedgedoc
+
+WorkingDirectory=/usr/share/webapps/hedgedoc
+ExecStart=/usr/bin/npm start --production
+
+CapabilityBoundingSet=
+NoNewPrivileges=true
+PrivateDevices=true
+RemoveIPC=true
+LockPersonality=true
+
+ProtectControlGroups=true
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectClock=true
+ProtectHostname=true
+ProtectProc=noaccess
+
+RestrictRealtime=true
+RestrictSUIDSGID=true
+RestrictNamespaces=true
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+
+ProtectSystem=strict
+ProtectHome=true
+ReadWritePaths=/var/lib/hedgedoc
+
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+
+[Install]
+WantedBy=multi-user.target

Added: hedgedoc/trunk/sysusers.conf
===================================================================
--- hedgedoc/trunk/sysusers.conf	                        (rev 0)
+++ hedgedoc/trunk/sysusers.conf	2021-01-28 13:10:35 UTC (rev 833276)
@@ -0,0 +1 @@
+u  hedgedoc  -  "Hedgedoc user"

Added: hedgedoc/trunk/tmpfiles.conf
===================================================================
--- hedgedoc/trunk/tmpfiles.conf	                        (rev 0)
+++ hedgedoc/trunk/tmpfiles.conf	2021-01-28 13:10:35 UTC (rev 833276)
@@ -0,0 +1,2 @@
+d  /var/lib/hedgedoc          0750  hedgedoc  hedgedoc  -
+d  /var/lib/hedgedoc/uploads  0750  hedgedoc  hedgedoc  -



More information about the arch-commits mailing list