From 1859296186d22cae6eceb1acbd9d3e347d2e76db Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Fri, 25 Oct 2024 22:59:54 -0400 Subject: Package `hi` for Debian. This commit provides a Docker-based build process for generating `.deb` packages, which can be run in Docker Desktop. I don't love it, but it's the best option I have _right now_ for doing this. The resulting packages: * Install `hi` (and `hi-recanonicalize`), in `/usr/bin`. * Create a user (`hi`) and a data directory (`/var/lib/hi`). * Create and start a systemd service unit for `hi`. Packages are built for arm64 and amd64 (aka x86_64). --- debian/hi.service | 10 ++++++++++ debian/postinst | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 debian/hi.service create mode 100755 debian/postinst (limited to 'debian') diff --git a/debian/hi.service b/debian/hi.service new file mode 100644 index 0000000..ec444c8 --- /dev/null +++ b/debian/hi.service @@ -0,0 +1,10 @@ +[Unit] +Description=Hi chat service +After=network-online.target + +[Service] +ExecStart=/usr/bin/hi --database-url sqlite:///var/lib/hi/hi.db +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..b7d02c3 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,10 @@ +#!/bin/sh +set -ex + +adduser \ + --system \ + --group \ + --home /var/lib/hi \ + hi + +#DEBHELPER# -- cgit v1.2.3 From 5fa6c3169cc0bf156a2003d794c45a41ebaa34d0 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Tue, 29 Oct 2024 17:51:01 -0400 Subject: Stop logging every step of postinst --- debian/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/postinst b/debian/postinst index b7d02c3..d88a7ad 100755 --- a/debian/postinst +++ b/debian/postinst @@ -1,5 +1,5 @@ #!/bin/sh -set -ex +set -e adduser \ --system \ -- cgit v1.2.3 From 2bac295504960ac4a18d7c19513160363f587f01 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Wed, 30 Oct 2024 00:32:17 -0400 Subject: Load DB paths from a file, rather than hard-coding them in the systemd unit. --- Cargo.toml | 8 ++++++++ debian/default | 2 ++ debian/hi.service | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 debian/default (limited to 'debian') diff --git a/Cargo.toml b/Cargo.toml index 630ebe9..c8b37e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,14 @@ authors = [ [package.metadata.deb] maintainer = "Owen Jacobson " maintainer-scripts = "debian" +assets = [ + # Binaries + ["target/release/hi", "/usr/bin/hi", "755"], + ["target/release/hi-recanonicalize", "/usr/bin/hi-recanonicalize", "755"], + + # Configuration + ["debian/default", "/etc/default/hi", "644"], +] [package.metadata.deb.systemd-units] diff --git a/debian/default b/debian/default new file mode 100644 index 0000000..3076699 --- /dev/null +++ b/debian/default @@ -0,0 +1,2 @@ +DATABASE_URL=sqlite:///var/lib/hi/hi.db +BACKUP_DATABASE_URL=sqlite:///var/lib/hi/backup.db diff --git a/debian/hi.service b/debian/hi.service index ec444c8..cc4a951 100644 --- a/debian/hi.service +++ b/debian/hi.service @@ -3,7 +3,8 @@ Description=Hi chat service After=network-online.target [Service] -ExecStart=/usr/bin/hi --database-url sqlite:///var/lib/hi/hi.db +EnvironmentFile=/etc/default/hi +ExecStart=/usr/bin/hi Restart=on-failure [Install] -- cgit v1.2.3