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 <je...@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 -