BareGit

Add Arch Linux package definition

Author: MetroWind <chris.corsair@gmail.com>
Date: Thu Sep 10 15:59:32 2026 -0700
Commit: dad39a66cae80f7aa993d354dc2d015a1ccf6ff8

Changes

diff --git a/packages/arch/PKGBUILD b/packages/arch/PKGBUILD
new file mode 100644
index 0000000..37a48f7
--- /dev/null
+++ b/packages/arch/PKGBUILD
@@ -0,0 +1,66 @@
+# Maintainer: MetroWind
+
+pkgname=card-collection-git
+pkgver=r67.gc905f92
+pkgrel=1
+pkgdesc='Server for card collection games'
+arch=('x86_64')
+url='https://git.xeno.darksair.org/card-collection.git'
+license=('WTFPL')
+depends=('curl' 'gcc-libs' 'glibc' 'openssl' 'sqlite' 'imagemagick')
+makedepends=('cmake' 'git')
+provides=('card-collection')
+conflicts=('card-collection')
+backup=('etc/card-collection.toml')
+
+source=(
+    'card-collection::git+https://git.xeno.darksair.org/card-collection.git'
+    'card-collection.service'
+    'card-collection.sysusers'
+    'card-collection.tmpfiles'
+    'config.toml'
+)
+sha256sums=(
+    'SKIP'
+    'c76cb2bef8a68ba70b00df359181160b35aef491d6186f4e6a01bd8e12fd3ace'
+    '854a27c8fb3cc72d6cf541a654e4717339e8dab940b5b653df4c67e2908fd545'
+    '13f941070585e369e52ad4344bf2e5bb02f58fa37ec7f229694f649137ae57df'
+    '4b15c9d5e323ceb0ac2d3bd064a139933b546b3a9feb15b3ff98f413ea884718'
+)
+
+pkgver()
+{
+    cd "$srcdir/card-collection"
+    printf 'r%s.g%s' \
+        "$(git rev-list --count HEAD)" \
+        "$(git rev-parse --short=7 HEAD)"
+}
+
+build()
+{
+    cd "$srcdir"
+    cmake -S card-collection -B build \
+        -DCMAKE_BUILD_TYPE=None \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCARD-COLLECTION_BUILD_TESTS=OFF \
+        -Wno-dev
+    cmake --build build
+}
+
+package()
+{
+    cd "$srcdir"
+    install -Dm755 build/card-collection "$pkgdir/usr/bin/card-collection"
+
+    install -d "$pkgdir/usr/share/card-collection"
+    cp -a card-collection/templates "$pkgdir/var/lib/card-collection/"
+    cp -a card-collection/static "$pkgdir/var/lib/card-collection/"
+
+    install -Dm644 config.taml "$pkgdir/etc/card-collection.taml"
+    install -Dm644 card-collection.service \
+        "$pkgdir/usr/lib/systemd/system/card-collection.service"
+    install -Dm644 card-collection.sysusers \
+        "$pkgdir/usr/lib/sysusers.d/card-collection.conf"
+    install -Dm644 card-collection.tmpfiles \
+        "$pkgdir/usr/lib/tmpfiles.d/card-collection.conf"
+}
diff --git a/packages/arch/card-collection.service b/packages/arch/card-collection.service
new file mode 100644
index 0000000..24c4bfc
--- /dev/null
+++ b/packages/arch/card-collection.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Card collection server
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=card
+Group=card
+ExecStart=/usr/bin/card-collection /etc/card-collection.toml
+WorkingDirectory=/var/lib/card-collection
+Restart=on-failure
+RestartSec=5s
+NoNewPrivileges=true
+PrivateTmp=true
+ProtectSystem=strict
+ProtectHome=true
+ReadOnlyPaths=/etc/card-collection.toml
+ReadWritePaths=/var/lib/card-collection
+
+[Install]
+WantedBy=multi-user.target
diff --git a/packages/arch/card-collection.sysusers b/packages/arch/card-collection.sysusers
new file mode 100644
index 0000000..d74d6ed
--- /dev/null
+++ b/packages/arch/card-collection.sysusers
@@ -0,0 +1 @@
+u card - "Card collection game server" /var/lib/card-collection
diff --git a/packages/arch/card-collection.tmpfiles b/packages/arch/card-collection.tmpfiles
new file mode 100644
index 0000000..d4652d8
--- /dev/null
+++ b/packages/arch/card-collection.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/card-collection 0750 card card -
diff --git a/packages/arch/config.toml b/packages/arch/config.toml
new file mode 100644
index 0000000..4ad17a8
--- /dev/null
+++ b/packages/arch/config.toml
@@ -0,0 +1,26 @@
+base_url = "http://localhost:8080/"
+listen_address = "localhost"
+listen_port = 8080
+static_root = "static"
+database_path = "/var/lib/card-collection/data.sqlite3"
+card_storage_root = "/var/lib/card-collection/cards"
+avif_quality = 80
+thumbnail_long_side = 256
+
+# Immutable after the first database initialization.
+administrator_email = "admin@example.com"
+
+# Lowering this value can permanently discard accrued availability.
+maximum_accumulated_pulls = 3
+
+[email]
+transport = "file"
+link_file = "/tmp/card-collection-authentication-link.txt"
+
+# Production Mailjet alternative (replace the file settings above):
+# transport = "mailjet"
+# from_address = "cards@example.com"
+# from_name = "Card Collection"
+# mailjet_api_key_environment = "CARD_COLLECTION_MAILJET_API_KEY"
+# mailjet_secret_key_environment = "CARD_COLLECTION_MAILJET_SECRET_KEY"
+# daily_attempt_limit = 180