(define-module (mirenn services tailscale) #:use-module (guix gexp) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (mirenn packages tailscale)) (define (tailscale-shepherd-service config) (list (shepherd-service (documentation "Run the tailscale daemon") (provision '(tailscale tailscaled)) (requirement '(user-processes NetworkManager)) (start #~(make-forkexec-constructor ;; (mkdir-p "/var/lib/tailscale") ;; (mkdir-p "/run/tailscale") (list #$(file-append tailscale "/bin/tailscaled")))) ;; "--state=/var/lib/tailscale/tailscaled.state" ;; "--socket=/run/tailscale/tailscaled.sock" ;; "--port=41641") ;; #:preserve-environment? #t ;; #:directory "/var/lib/tailscale")) (stop #~(make-kill-destructor))))) ;; (list #(file-append tailscale "bin/tailscaled") ;; "--cleanup"))))) (define-public tailscale-service-type (service-type (name 'tailscale) (extensions (list (service-extension shepherd-root-service-type tailscale-shepherd-service) (service-extension profile-service-type (lambda _ (list tailscale))))) (default-value #f) (description "Run and connect to tailscale")))