Subject: [PATCH 0/5] Some basic Home Shepherd Services
From: "Jan (janneke) Nieuwenhuizen" <[email-masked]>
To: [email-masked]
Cc: Janneke Nieuwenhuizen <[email-masked]>
Date: Mon, 13 Feb 2023 17:46:42 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

From: "Janneke Nieuwenhuizen" <[email-masked]>

Hi!

I've been waiting for Guix Home to offer some basic shepherd services for most
used daemons, replacing the neat shepherd hack described in

    https://guix.gnu.org/en/blog/2020/gnu-shepherd-user-services/

that I've been using, and am a bit puzzled as to why this didn't happen.  Are
people using Guix Home?

Anyway, here's my attempt to address this, adding ssh-agent, git-daemon, and
also the probably less-used kodi and znc that I use on my home server.

To add a git-daemon and ssh-agent to your guix home profile, you need
a home-configuration.scm that has something like this:

--8<---------------cut here---------------start------------->8---
(use-modules (gnu home)
             (gnu home services shells)
             (gnu home services shepherd)
             (gnu home services shepherd-xyz)
             (gnu packages)
             (gnu packages base)
             (gnu services)
             (guix gexp))

(services
 (list (service home-shepherd-service-type)
       (service home-git-daemon-service-type)
       (service home-ssh-agent-service-type)))
--8<---------------cut here---------------end--------------->8---

The weird thing is that after running

    ./pre-inst-env guix home reconfigure home-configuration.scm

the shepherd starts automatically, starting ssh-agent and git-daemon.  Upon a
fresh login, however, it seems the shepherd must still be started manually,
kind of defeating its purpose as a home service...

Thoughts?

Greetings,
Janneke

Also pushed to https://gitlab.com/janneke/guix/-/commits/wip-home/

Janneke Nieuwenhuizen (5):
  DRAFT gnu: home: services: Add home-git-daemon-service-type.
  DRAFT gnu: home: services: Add home-ssh-agent-service-type.
  DRAFT gnu: home: services: Add home-znc-service-type.
  DRAFT gnu: home: services: Add home-kodi-service-type.
  DRAFT doc: Document Home Shepherd Services.

 doc/guix.texi                      |  90 ++++++++++-
 gnu/home/services/shepherd-xyz.scm | 239 +++++++++++++++++++++++++++++
 gnu/local.mk                       |   3 +-
 3 files changed, 330 insertions(+), 2 deletions(-)
 create mode 100644 gnu/home/services/shepherd-xyz.scm

-- 
2.38.1