summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Wilhelmsson <samuel.wilhelmsson@gmail.com>2025-01-11 00:45:55 +0100
committerSamuel Wilhelmsson <samuel.wilhelmsson@gmail.com>2025-01-11 00:45:55 +0100
commit979b2bcb3259c31bd134aa6b8e2ec5890187e4c6 (patch)
treef68299131b071c10459e1cf49330806b3157d05d
parent15ad5e7bb68f432d9bc5683fce21c9b5d4bacb60 (diff)
downloadtinygram-979b2bcb3259c31bd134aa6b8e2ec5890187e4c6.tar.gz
tinygram-979b2bcb3259c31bd134aa6b8e2ec5890187e4c6.zip
add secrets and service template, soon deploying anywhere
-rwxr-xr-xdeploy30
-rw-r--r--prod.env.ageboxbin594 -> 594 bytes
-rw-r--r--service/tinygram.service.template1
3 files changed, 31 insertions, 0 deletions
diff --git a/deploy b/deploy
index 6bb97ee..62fb075 100755
--- a/deploy
+++ b/deploy
@@ -6,16 +6,22 @@
(def bin-dir "/opt/tinygram/")
(def asset-dir "/srv/tinygram/")
+(def service-dir "/etc/systemd/system/")
(def ssh-target (string user "@" host))
(def bin-target (string ssh-target ":" bin-dir))
(def asset-target (string ssh-target ":" asset-dir))
+(def service-target (string ssh-target ":" service-dir))
(def rsync-path ["--rsync-path" "sudo -u tinygram rsync"])
+(def rsync-path-sudo ["--rsync-path" "sudo rsync"])
(def rsync-bin-args [;rsync-path "tinygram" bin-target])
(def rsync-asset-args [;rsync-path "-r" "assets" asset-target])
+(def rsync-service-args [;rsync-path-sudo "service/tinygram.service" service-target])
+
+(def rsync-service [;rsync-path "-r" "assets" asset-target])
(print "-- building templ --")
@@ -30,8 +36,32 @@
(print "-- syncing assets --")
($ rsync ;rsync-asset-args)
+(print "-- creating service locally--")
+(def template (slurp "service/tinygram.service.template"))
+
+(print "-- decrypting env --")
+($ agebox decrypt --all)
+(def envfile (slurp "prod.env"))
+($ agebox encrypt --all)
+(print "-- encrypting env --")
+
+(def env-statements
+ (filter (fn [s] (not (empty? s)))
+ (string/split "\n" envfile)))
+
+(def env-block (string ;(map (fn [env] (string "Environment=\"" env "\"\n")) env-statements)))
+
+(spit "service/tinygram.service"
+ (peg/replace "<1>\n" env-block template))
+
+(print "-- syncing service --")
+($ rsync ;rsync-service-args)
+
+(print "-- cleaning up service locally --")
+($ rm "service/tinygram.service")
(print "-- restarting service --")
+($ ssh ,ssh-target "sudo systemctl daemon-reload")
($ ssh ,ssh-target "sudo systemctl restart tinygram.service")
(print "done!")
diff --git a/prod.env.agebox b/prod.env.agebox
index bbe712a..bf1d545 100644
--- a/prod.env.agebox
+++ b/prod.env.agebox
Binary files differ
diff --git a/service/tinygram.service.template b/service/tinygram.service.template
index 0667884..6e49781 100644
--- a/service/tinygram.service.template
+++ b/service/tinygram.service.template
@@ -2,6 +2,7 @@
Description=Tinygram Service
[Service]
+<1>
Type=simple
User=tinygram
WorkingDirectory=/opt/tinygram