aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2025-12-04 07:00:00 -0300
committerEuAndreh <eu@euandre.org>2025-12-04 07:00:00 -0300
commit8b3bb0966c3864e06f7bff2a435f8b0d2fdfde72 (patch)
tree1437ac9e2ec711dde2dabbce01f184d5c8ea1923 /src
parentsrc/org/euandre/packages.scm: Wrap "datomic" output and add transactor service (diff)
downloadpackages-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.scm42
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))