Compare commits

...

4 Commits

Author SHA1 Message Date
Hilton Chain
92c6a14084
services: Add sing-box-service-type.
* modules/rosenthal/services/networking.scm (<sing-box-configuration>): New data
type.
(file-object?, sing-box-activation, sing-box-shepherd-service): New procedures.
(sing-box-account, sing-box-service-type): New variables.
2025-08-08 13:35:45 +08:00
Hilton Chain
55fbf529c7
services: caddy: Expose configuration interfaces for shepherd service.
* modules/rosenthal/services/web.scm (caddy-configuration)
[shepherd-provision, shepherd-requirement, auto-start?]: New fields.
* modules/rosenthal/services/web.scm (caddy-shepherd-services): Use them.
2025-08-08 13:33:04 +08:00
Hilton Chain
8837ea1b4e
rosenthal: sing-box: Set default wireguard listen port for tailscale.
* modules/rosenthal/packages/networking.scm (sing-box) [arguments] <#:phases>:
Add 'set-tailscale-default-wireguard-port'.
2025-08-08 01:31:35 +08:00
Hilton Chain
40d6224034
rosenthal: Unify comments style. 2025-08-08 01:31:34 +08:00
29 changed files with 252 additions and 154 deletions

View File

@ -1,7 +1,7 @@
;; -*- mode: scheme -*- ;;; -*- mode: scheme -*-
;; SPDX-FileCopyrightText: 2022, 2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: CC0-1.0 ;;; SPDX-License-Identifier: CC0-1.0
(authorizations (authorizations
(version 0) (version 0)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2024, 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2024, 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (guix import rosenthal-updaters) (define-module (guix import rosenthal-updaters)
#:use-module (srfi srfi-71) #:use-module (srfi srfi-71)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal bootloader grub) (define-module (rosenthal bootloader grub)
#:use-module (gnu bootloader) #:use-module (gnu bootloader)

View File

@ -1,8 +1,8 @@
;;; -*- lexical-binding: t -*- ;;; -*- lexical-binding: t -*-
;; SPDX-FileCopyrightText: DogLooksGood <doglooksgood@hotmail.com> ;;; SPDX-FileCopyrightText: DogLooksGood <doglooksgood@hotmail.com>
;; SPDX-FileCopyrightText: 2022 Nyk Ma <i@nyk.ma> ;;; SPDX-FileCopyrightText: 2022 Nyk Ma <i@nyk.ma>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;; https://github.com/DogLooksGood/meomacs/blob/master/laf.org ;; https://github.com/DogLooksGood/meomacs/blob/master/laf.org
;; https://github.com/nykma/nema/blob/develop/my-sample/font.el ;; https://github.com/nykma/nema/blob/develop/my-sample/font.el

View File

@ -1,7 +1,7 @@
;; SPDX-FileCopyrightText: 2022, 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2025 Hilton Chain <hako@ultrarare.space>
;; SPDX-FileCopyrightText: 2025 William Goodspeed ;;; SPDX-FileCopyrightText: 2025 William Goodspeed
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages admin) (define-module (rosenthal packages admin)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023-2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023-2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages binaries) (define-module (rosenthal packages binaries)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages bootloaders) (define-module (rosenthal packages bootloaders)
#:use-module (guix download) #:use-module (guix download)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023-2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023-2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages browser-extensions) (define-module (rosenthal packages browser-extensions)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages busybox) (define-module (rosenthal packages busybox)
#:use-module (guix gexp) #:use-module (guix gexp)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages ci) (define-module (rosenthal packages ci)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages dns) (define-module (rosenthal packages dns)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages emacs-xyz) (define-module (rosenthal packages emacs-xyz)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages networking) (define-module (rosenthal packages networking)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
@ -186,6 +186,12 @@ bypass network restrictions." )
"vendor"))) "vendor")))
(replace 'install-license-files (replace 'install-license-files
(assoc-ref gnu:%standard-phases 'install-license-files)) (assoc-ref gnu:%standard-phases 'install-license-files))
(add-after 'unpack 'set-tailscale-default-wireguard-port
(lambda _
;; See also: https://tailscale.com/kb/1082/firewall-ports
;; https://github.com/tailscale/tailscale/blob/51c11a864b1241d1cf1a736fbc94b0f8c76da563/cmd/tailscaled/tailscaled.go#L102
(substitute* "vendor/github.com/sagernet/tailscale/tsnet/tsnet.go"
(("s\\.Port") "41641"))))
(add-after 'install 'install-extras (add-after 'install 'install-extras
(lambda _ (lambda _
(let ((sing-box (let ((sing-box

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages password-utils) (define-module (rosenthal packages password-utils)
#:use-module (guix gexp) #:use-module (guix gexp)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages rust-apps) (define-module (rosenthal packages rust-apps)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages ssh) (define-module (rosenthal packages ssh)
#:use-module (guix gexp) #:use-module (guix gexp)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages tree-sitter) (define-module (rosenthal packages tree-sitter)
#:use-module (guix gexp) #:use-module (guix gexp)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages video) (define-module (rosenthal packages video)
#:use-module (guix gexp) #:use-module (guix gexp)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022, 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages web) (define-module (rosenthal packages web)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages wm) (define-module (rosenthal packages wm)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages xorg) (define-module (rosenthal packages xorg)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services bittorrent) (define-module (rosenthal services bittorrent)
#:use-module (ice-9 format) #:use-module (ice-9 format)
@ -18,9 +18,9 @@
qbittorrent-service-type qbittorrent-service-type
home-qbittorrent-service-type)) home-qbittorrent-service-type))
;; ;;;
;; qBittorrent ;;; qBittorrent
;; ;;;
(define-configuration qbittorrent-configuration (define-configuration qbittorrent-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services child-error) (define-module (rosenthal services child-error)
#:use-module (guix records) #:use-module (guix records)
@ -42,9 +42,9 @@
home-socks2http-configuration home-socks2http-configuration
home-socks2http-service-type)) home-socks2http-service-type))
;; ;;;
;; Clash ;;; Clash
;; ;;;
(define-configuration clash-configuration (define-configuration clash-configuration
@ -122,9 +122,9 @@
(description "Run Clash."))) (description "Run Clash.")))
;; ;;;
;; Cloudflare Tunnel ;;; Cloudflare Tunnel
;; ;;;
(define-maybe string) (define-maybe string)
@ -213,9 +213,9 @@ headers. This can expose sensitive information in your logs.")
(description "Run cloudflared, the Cloudflare Tunnel daemon."))) (description "Run cloudflared, the Cloudflare Tunnel daemon.")))
;; ;;;
;; Cloudflare Warp ;;; Cloudflare Warp
;; ;;;
(define-configuration cloudflare-warp-configuration (define-configuration cloudflare-warp-configuration
@ -250,9 +250,9 @@ headers. This can expose sensitive information in your logs.")
(description "Run warp-svc, the Cloudflare Warp daemon."))) (description "Run warp-svc, the Cloudflare Warp daemon.")))
;; ;;;
;; Miniflux ;;; Miniflux
;; ;;;
(define-maybe string) (define-maybe string)
@ -326,9 +326,9 @@ headers. This can expose sensitive information in your logs.")
(description "Run Miniflux, a minimalist and opinionated feed reader."))) (description "Run Miniflux, a minimalist and opinionated feed reader.")))
;; ;;;
;; Wakapi ;;; Wakapi
;; ;;;
(define-configuration home-wakapi-configuration (define-configuration home-wakapi-configuration
@ -365,9 +365,9 @@ headers. This can expose sensitive information in your logs.")
(description "Run Wakapi, a self-hosted WakaTime-compatible backend."))) (description "Run Wakapi, a self-hosted WakaTime-compatible backend.")))
;; ;;;
;; ShadowTLS ;;; ShadowTLS
;; ;;;
(define-maybe list-of-strings (define-maybe list-of-strings
@ -524,9 +524,9 @@ is @code{443} by default")
(default-value (for-home (shadow-tls-configuration))))) (default-value (for-home (shadow-tls-configuration)))))
;; ;;;
;; Socks2http ;;; Socks2http
;; ;;;
(define-configuration home-socks2http-configuration (define-configuration home-socks2http-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2022, 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services dns) (define-module (rosenthal services dns)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -12,9 +12,9 @@
#:export (smartdns-configuration #:export (smartdns-configuration
smartdns-service-type)) smartdns-service-type))
;; ;;;
;; Smartdns ;;; Smartdns
;; ;;;
(define-configuration smartdns-configuration (define-configuration smartdns-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services file-systems) (define-module (rosenthal services file-systems)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -16,9 +16,9 @@
dumb-runtime-dir-service-type)) dumb-runtime-dir-service-type))
;; ;;;
;; Btrbk ;;; Btrbk
;; ;;;
(define-configuration btrbk-configuration (define-configuration btrbk-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services mail) (define-module (rosenthal services mail)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2023 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services networking) (define-module (rosenthal services networking)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -15,15 +15,19 @@
#:use-module (gnu services configuration) #:use-module (gnu services configuration)
#:use-module (gnu services dbus) #:use-module (gnu services dbus)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu system shadow)
#:export (iwd-configuration #:export (iwd-configuration
iwd-service-type iwd-service-type
sing-box-service-type
sing-box-configuration
tailscale-configuration tailscale-configuration
tailscale-service-type)) tailscale-service-type))
;; ;;;
;; iwd ;;; iwd
;; ;;;
(define %iwd-config-general (define %iwd-config-general
@ -378,9 +382,84 @@ list, power save will be disabled."))
(description "Run iwd, the iNet wireless daemon."))) (description "Run iwd, the iNet wireless daemon.")))
;; ;;;
;; Tailscale ;;; sing-box
;; ;;;
(define (file-object? val)
(or (string? val)
(file-like? val)))
(define-configuration/no-serialization sing-box-configuration
(sing-box
(file-like sing-box)
"")
(config-file
file-object
"")
(data-directory
(string "/var/lib/sing-box")
"")
;; Shepherd
(shepherd-provision
(list-of-symbols '(sing-box))
"")
(shepherd-requirement
(list-of-symbols '(networking))
"")
(log-file
(string "/var/log/sing-box.log")
"")
(auto-start?
(boolean #t)
""))
(define sing-box-account
(list (user-group (name "sing-box") (system? #t))))
(define sing-box-activation
(match-record-lambda <sing-box-configuration>
(data-directory)
#~(begin
(use-modules (guix build utils))
(mkdir-p #$data-directory))))
(define sing-box-shepherd-service
(match-record-lambda <sing-box-configuration>
(sing-box data-directory config-file
shepherd-provision shepherd-requirement log-file auto-start?)
(list (shepherd-service
(provision shepherd-provision)
(requirement `(user-processes ,@shepherd-requirement))
(start
#~(make-forkexec-constructor
(list #$(file-append sing-box "/bin/sing-box")
"--config" #$config-file
"--directory" #$data-directory
"--disable-color"
"run")
#:log-file #$log-file))
(stop #~(make-kill-destructor))
(auto-start? auto-start?)))))
(define sing-box-service-type
(service-type
(name 'sing-box)
(extensions
(list (service-extension account-service-type
(const sing-box-account))
(service-extension activation-service-type
sing-box-activation)
(service-extension shepherd-root-service-type
sing-box-shepherd-service)
(service-extension log-rotation-service-type
(compose list sing-box-configuration-log-file))))
(description "")))
;;;
;;; Tailscale
;;;
(define-configuration tailscale-configuration (define-configuration tailscale-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2024 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal services web) (define-module (rosenthal services web)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -51,6 +51,16 @@
"") "")
(caddyfile (caddyfile
file-like file-like
"")
;; Shepherd
(shepherd-provision
(list-of-symbols '(caddy))
"")
(shepherd-requirement
(list-of-symbols '())
"")
(auto-start?
(boolean #t)
"")) ""))
(define (caddy-accounts config) (define (caddy-accounts config)
@ -91,22 +101,25 @@
(chown file (passwd:uid user) (passwd:gid user))) (chown file (passwd:uid user) (passwd:gid user)))
(find-files data-dir #:directories? #t))))))) (find-files data-dir #:directories? #t)))))))
(define (caddy-shepherd-services config) (define caddy-shepherd-services
(list (shepherd-service (match-record-lambda <caddy-configuration>
(provision '(caddy)) (shepherd-provision shepherd-requirement auto-start?)
(requirement '(user-processes loopback)) (list (shepherd-service
(start (provision shepherd-provision)
#~(make-forkexec-constructor (requirement `(user-processes loopback ,@shepherd-requirement))
(list "/run/privileged/bin/caddy" "run" (start
"--environ" "--config" "/etc/caddy/Caddyfile") #~(make-forkexec-constructor
#:user "caddy" (list "/run/privileged/bin/caddy" "run"
#:group "caddy" "--environ" "--config" "/etc/caddy/Caddyfile")
#:directory "/var/lib/caddy" #:user "caddy"
#:log-file "/var/log/caddy.log" #:group "caddy"
#:resource-limits '((nofile 1048576 1048576)) #:directory "/var/lib/caddy"
#:environment-variables '("HOME=/var/lib/caddy"))) #:log-file "/var/log/caddy.log"
(stop #:resource-limits '((nofile 1048576 1048576))
#~(make-kill-destructor))))) #:environment-variables '("HOME=/var/lib/caddy")))
(stop
#~(make-kill-destructor))
(auto-start? auto-start?)))))
(define caddy-service-type (define caddy-service-type
(service-type (service-type
@ -125,9 +138,9 @@
;; ;;;
;; Forgejo ;;; Forgejo
;; ;;;
(define (file-object? val) (define (file-object? val)
@ -218,9 +231,9 @@
(description "Run Forgejo."))) (description "Run Forgejo.")))
;; ;;;
;; Jellyfin ;;; Jellyfin
;; ;;;
(define-maybe string) (define-maybe string)
@ -362,9 +375,9 @@
(description "Run Komga."))) (description "Run Komga.")))
;; ;;;
;; Misskey ;;; Misskey
;; ;;;
(define-configuration misskey-configuration (define-configuration misskey-configuration
@ -512,9 +525,9 @@
(description "Run Navidrome."))) (description "Run Navidrome.")))
;; ;;;
;; Vaultwarden ;;; Vaultwarden
;; ;;;
(define-configuration vaultwarden-configuration (define-configuration vaultwarden-configuration

View File

@ -1,6 +1,6 @@
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space> ;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;; ;;;
;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal utils download) (define-module (rosenthal utils download)
#:use-module (guix gexp) #:use-module (guix gexp)