diff options
| author | EuAndreh <eu@euandre.org> | 2025-12-04 07:00:00 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2025-12-04 07:00:00 -0300 |
| commit | 8b3bb0966c3864e06f7bff2a435f8b0d2fdfde72 (patch) | |
| tree | 1437ac9e2ec711dde2dabbce01f184d5c8ea1923 /src | |
| parent | src/org/euandre/packages.scm: Wrap "datomic" output and add transactor service (diff) | |
| download | packages-8b3bb0966c3864e06f7bff2a435f8b0d2fdfde72.tar.gz packages-8b3bb0966c3864e06f7bff2a435f8b0d2fdfde72.tar.xz | |
src/org/euandre/packages.scm: Add cronjobs for datomic backup and gc
Diffstat (limited to 'src')
| -rw-r--r-- | src/org/euandre/packages.scm | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/src/org/euandre/packages.scm b/src/org/euandre/packages.scm index 0f2addf..8971fd5 100644 --- a/src/org/euandre/packages.scm +++ b/src/org/euandre/packages.scm @@ -364,8 +364,8 @@ (define-public datomic (let ((p (pkg "datomic" - "62348b5b8cb55f95b83ffd0dd588da7fa7530816" - "01gbmq9056awq6cv7zhadi64kk52lzgsgv58bjc87q079dsq3hyb"))) + "13edba0fa2bd4c3847160809499ce837f52d1264" + "158sqawmbszawa132bhfghzlkhd3b0bicdg5dr93v56vvm4i25kl"))) (package (inherit p) (arguments @@ -857,13 +857,13 @@ root ALL=(ALL) ALL (group transactor-configuration-group (default "peer")) (port transactor-configuration-port (default 50200)) (log-file transactor-configuration-log-file (default "/var/log/transactor/transactor.log")) - (data-directory transactor-configuration-data-directory (default "/var/lib/transactor")) + (base-directory transactor-configuration-data-directory (default "/var/lib/transactor")) (run-in-container? transactor-configuration-run-in-container? (default #t)) (container-name transactor-configuration-container-name (default "datomic-container"))) (define-public (transactor-command config) (match-record config <transactor-configuration> - (package user group data-directory run-in-container? container-name) + (package user group base-directory run-in-container? container-name) (let ((bin (file-append package "/bin/transactor"))) (if (not run-in-container?) bin @@ -871,7 +871,7 @@ root ALL=(ALL) ALL bin #:user user #:group group - #:directory data-directory + #:directory base-directory #:name container-name #:namespaces (s1:fold delq container:%namespaces '(net)) #:preserved-environment-variables @@ -879,13 +879,13 @@ root ALL=(ALL) ALL #:mappings (list (file-system-mapping - (source data-directory) + (source base-directory) (target source) (writable? #t)))))))) (define-public (transactor-shepherd-services config) (match-record config <transactor-configuration> - (port user group log-file data-directory) + (port user group log-file base-directory) (list (shepherd-service (provision '(transactor)) @@ -894,25 +894,30 @@ root ALL=(ALL) ALL #~(make-forkexec-constructor (list #$(transactor-command config) "-p" (number->string #$port) - (string-append #$data-directory "/storage.db")) + (string-append #$base-directory "/data/storage.db")) #:user #$user #:group #$group #:log-file #$log-file - #:directory #$data-directory)) + #:directory #$base-directory)) (stop #~(make-kill-destructor)) (documentation "Daemon transactor process."))))) (define-public (transactor-activation config) (match-record config <transactor-configuration> - (user log-file data-directory) + (user log-file base-directory) #~(begin (use-modules (guix build utils)) (format (current-error-port) - "Creating Transactor data directory: \"~a\".~%" - #$data-directory) - (mkdir-p/perms #$data-directory (getpwnam #$user) #o750) + "Creating Transactor data directories under: \"~a\".~%" + #$base-directory) + (mkdir-p/perms (string-append #$base-directory "/data") + (getpwnam #$user) + #o750) + (mkdir-p/perms (string-append #$base-directory "/backup") + (getpwnam #$user) + #o750) (format (current-error-port) "Creating Transactor log directory for \"~a\".~%" @@ -938,6 +943,15 @@ root ALL=(ALL) ALL (name group) (system? #t))))) +(define (transactor-cronjobs config) + (match-record config <transactor-configuration> + (base-directory) + (let ((from (string-append base-directory "/data/storage.db")) + (to (string-append base-directory "/backup"))) + (list + #~(job "0 23 * * *" (format #f "cronjob datomic backup ~a ~a" #$from #$to)) + #~(job "0 6 * * *" (format #f "cronjob datomic gc ~a" #$from)))))) + (define-public transactor-service-type (service-type (name 'transactor) @@ -949,6 +963,8 @@ root ALL=(ALL) ALL transactor-activation) (service-extension account-service-type transactor-accounts) + (service-extension mcron-service-type + transactor-cronjobs) (service-extension profile-service-type (compose list transactor-configuration-package)))) (default-value (transactor-configuration)) |
