added listmonk

This commit is contained in:
2021-11-20 17:18:13 +01:00
parent e7f735a3c4
commit 60f3c3cc32
4 changed files with 124 additions and 0 deletions

67
listmonk/PKGBUILD Normal file
View File

@@ -0,0 +1,67 @@
# Maintainer: Caleb Maclennan <caleb@alerque.com>
pkgname=listmonk
pkgver=2.0.0
pkgrel=1
pkgdesc='Self-hosted newsletter and mailing list manager with a modern dashboard'
arch=(x86_64)
url=https://listmonk.app
license=(AGPL3)
depends=(postgresql)
makedepends=(go node-gyp nodejs yarn)
backup=(etc/listmonk/config.toml)
install=$pkgname.install
source=("$pkgname-$pkgver.tar.gz::https://github.com/knadh/$pkgname/archive/v$pkgver.tar.gz"
"$pkgname.conf"
"$pkgname.service")
sha256sums=('8ec73d9ee65dd0f1c5f7a2453982692e34a5eaa588eb05d0ec30afc0635b033f'
'5cfc186438df2408ed88a5bec3a9a4b5f2afb0d3aec41c4cc63b2f5eb810b3cb'
'809ede70c932183889b2fa567b340fb82cce1ada76c7b0a0b9efb82b87c92fa0')
prepare() {
cd "$pkgname-$pkgver/frontend"
export YARN_CACHE_FOLDER="$srcdir/node_modules"
yarn install --frozen-lockfile
}
build() {
cd "$pkgname-$pkgver"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
go build \
-trimpath \
-buildmode=pie \
-mod=readonly \
-modcacherw \
-ldflags "-extldflags '$LDFLAGS' -X 'main.buildString=Arch Linux AUR v$pkgver-$pkgrel' -X 'main.versionString=v$pkgver'" \
-o $pkgname \
cmd/*.go
export YARN_CACHE_FOLDER="$srcdir/node_modules"
export VUE_APP_VERSION="v$pkgver"
pushd frontend
yarn build
}
check() {
cd "$pkgname-$pkgver"
go test ./...
}
package() {
cd "$pkgname-$pkgver"
install -Dm755 -t "$pkgdir/usr/bin" $pkgname
install -Dm644 config.toml.sample "$pkgdir/etc/$pkgname/config.toml"
install -Dm644 -t "$pkgdir/usr/lib/systemd/system/" "../$pkgname.service"
install -Dm644 -t "$pkgdir/usr/lib/sysusers.d/" "../$pkgname.conf"
install -Dm644 -t "$pkgdir/usr/share/$pkgname/" \
config.toml.sample \
schema.sql \
queries.sql
cp -a static "$pkgdir/usr/share/$pkgname/"
mkdir -p "$pkgdir/usr/share/$pkgname/frontend/dist/"
cp -a frontend/dist/ "$pkgdir/usr/share/$pkgname/frontend/"
cp -a i18n "$pkgdir/usr/share/$pkgname/"
}

1
listmonk/listmonk.conf Normal file
View File

@@ -0,0 +1 @@
u listmonk - "Listmonk mailing list and newsletter manager"

40
listmonk/listmonk.install Normal file
View File

@@ -0,0 +1,40 @@
post_install() {
cat <<- EOF
WARNING: Installed with default password!
To setup:
Setup PostgreSQL with credentials and a database:
\$ sudo -u postgres psql
postgres=# CREATE USER listmonk WITH PASSWORD '<your_password>';
postgres=# CREATE DATABASE listmonk;
postgres=# GRANT ALL PRIVILEGES ON DATABASE listmonk TO listmonk;
postgres=# \\q
Then edit /etc/listmonk/config.toml with your new database credentials.
Also be sure to change the admin password from the defalut.
Run manually once to setup the database tables:
\$ sudo -u listmonk listmonk --config /etc/listmonk/config.toml --install
Lastly you can enable the system service:
\$ sudo systemctl enable --now listmonk
EOF
}
post_upgrade() {
cat <<- EOF
To update the Listmonk database format, first backup your data, then run:
\$ sudo -u listmonk listmonk --config /etc/listmonk/config.toml --upgrade
Then restart the service:
\$ sudo systemctl restart listmonk
EOF
}
# vim: : ts=4 sw=4 noet

16
listmonk/listmonk.service Normal file
View File

@@ -0,0 +1,16 @@
[Unit]
Description=Listmonk mailing list and newsletter manager
Wants=network.target
[Service]
Type=simple
WorkingDirectory=/usr/share/listmonk
ExecStart=/usr/bin/listmonk --config /etc/listmonk/config.toml
User=listmonk
Group=listmonk
Restart=on-failure
LimitNOFILE=65536
TasksMax=infinity
[Install]
WantedBy=multi-user.target