From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 2C2D71F66E for ; Sun, 23 Aug 2020 07:49:18 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] examples: add imapd systemd examples Date: Sun, 23 Aug 2020 07:49:18 +0000 Message-Id: <20200823074918.31414-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We've got examples for all the other daemons, too! --- examples/public-inbox-imap-onion.socket | 12 +++++++ examples/public-inbox-imapd.socket | 12 +++++++ examples/public-inbox-imapd@.service | 43 +++++++++++++++++++++++++ examples/public-inbox-imaps.socket | 12 +++++++ 4 files changed, 79 insertions(+) create mode 100644 examples/public-inbox-imap-onion.socket create mode 100644 examples/public-inbox-imapd.socket create mode 100644 examples/public-inbox-imapd@.service create mode 100644 examples/public-inbox-imaps.socket diff --git a/examples/public-inbox-imap-onion.socket b/examples/public-inbox-imap-onion.socket new file mode 100644 index 00000000..76b4e7ca --- /dev/null +++ b/examples/public-inbox-imap-onion.socket @@ -0,0 +1,12 @@ +# ==> /etc/systemd/system/public-inbox-imap-onion.socket <== +# This unit is for the corresponding line in torrc(5): +# HiddenServicePort 143 unix:/run/imapd.onion.sock +[Unit] +Description = public-inbox-imap .onion socket + +[Socket] +ListenStream = /run/imapd.onion.sock +Service = public-inbox-imapd@1.service + +[Install] +WantedBy = sockets.target diff --git a/examples/public-inbox-imapd.socket b/examples/public-inbox-imapd.socket new file mode 100644 index 00000000..fcd924fd --- /dev/null +++ b/examples/public-inbox-imapd.socket @@ -0,0 +1,12 @@ +# ==> /etc/systemd/system/public-inbox-imapd.socket <== +[Unit] +Description = public-inbox-imapd socket + +[Socket] +ListenStream = 0.0.0.0:143 +BindIPv6Only = ipv6-only +ListenStream = [::]:143 +Service = public-inbox-imapd@1.service + +[Install] +WantedBy = sockets.target diff --git a/examples/public-inbox-imapd@.service b/examples/public-inbox-imapd@.service new file mode 100644 index 00000000..e0446ed3 --- /dev/null +++ b/examples/public-inbox-imapd@.service @@ -0,0 +1,43 @@ +# ==> /etc/systemd/system/public-inbox-imapd@.service <== +# Since SIGUSR2 upgrades do not work under systemd, this service file +# allows starting two simultaneous services during upgrade time +# (e.g. public-inbox-imapd@1 public-inbox-imapd@2) with the intention +# that they take turns running in-between upgrades. This should +# allow upgrading without downtime. + +[Unit] +Description = public-inbox-imapd IMAP server %i +Wants = public-inbox-imapd.socket public-inbox-imaps.socket \ +public-inbox-imap-onion.socket +After = public-inbox-imapd.socket public-inbox-imaps.socket \ +public-inbox-imap-onion.socket + +[Service] +Environment = PI_CONFIG=/home/pi/.public-inbox/config \ +PATH=/usr/local/bin:/usr/bin:/bin \ +PERL_INLINE_DIRECTORY=/tmp/.pub-inline + +LimitNOFILE = 30000 +ExecStartPre = /bin/mkdir -p -m 1777 /tmp/.pub-inline +ExecStart = /usr/local/bin/public-inbox-imapd -W0 \ +-1 /var/log/public-inbox/imapd.out.log \ +--cert /etc/ssl/certs/news.example.com.pem \ +--key /etc/ssl/private/news.example.com.key +StandardError = syslog + +# NonBlocking is REQUIRED to avoid a race condition if running +# simultaneous services +NonBlocking = true + +Sockets = public-inbox-imapd.socket public-inbox-imaps.socket \ +public-inbox-imap-onion.socket + +KillSignal = SIGQUIT +User = nobody +Group = ssl-cert +ExecReload = /bin/kill -HUP $MAINPID +TimeoutStopSec = 86400 +KillMode = process + +[Install] +WantedBy = multi-user.target diff --git a/examples/public-inbox-imaps.socket b/examples/public-inbox-imaps.socket new file mode 100644 index 00000000..b61cc742 --- /dev/null +++ b/examples/public-inbox-imaps.socket @@ -0,0 +1,12 @@ +# ==> /etc/systemd/system/public-inbox-imaps.socket <== +[Unit] +Description = public-inbox-imaps socket + +[Socket] +ListenStream = 0.0.0.0:993 +BindIPv6Only = ipv6-only +ListenStream = [::]:993 +Service = public-inbox-imapd@1.service + +[Install] +WantedBy = sockets.target