Files
alo-cluster/services/tiddlypwa.hcl

100 lines
2.9 KiB
HCL

job "tiddlypwa" {
datacenters = ["alo"]
group "server" {
volume "code" {
type = "host"
read_only = true
source = "code"
}
volume "appdata" {
type = "host"
read_only = false
source = "appdata"
}
volume "nix-store" {
type = "host"
read_only = true
source = "nix-store"
}
volume "sw" {
type = "host"
read_only = true
source = "sw"
}
volume "sw" {
type = "host"
read_only = true
source = "sw"
}
network {
port "http" { }
}
task "sync" {
driver = "exec"
config {
command = "/sw/bin/deno"
args = [
"run",
"--unstable-broadcast-channel",
"--allow-env",
"--allow-read=/appdata/tiddlypwa",
"--allow-write=/appdata/tiddlypwa",
"--allow-net=:${NOMAD_PORT_http}",
"/code/tiddlypwa/server/run.ts",
"--port=${NOMAD_PORT_http}",
]
}
env {
ADMIN_PASSWORD_HASH = "T2JTyY9jplOqXO5FwnLmPpUu79SXOOW7hav9moTQuD4"
ADMIN_PASSWORD_SALT = "SB_uRmIlJPPssPWyOUEip-HwQZJZn1q2A6QA8ptB7aY"
DB_PATH = "/appdata/tiddlypwa/tiddly.db"
}
volume_mount {
volume = "code"
destination = "/code"
}
volume_mount {
volume = "appdata"
destination = "/appdata"
}
volume_mount {
volume = "nix-store"
destination = "/nix/store"
}
volume_mount {
volume = "sw"
destination = "/sw"
}
service {
name = "tiddlypwa"
port = "http"
tags = [
"traefik.enable=true",
"traefik.http.routers.tiddlypwa-main.rule=Host(`wiki.alo.land`)",
"traefik.http.routers.tiddlypwa-main.entryPoints=websecure",
"traefik.http.routers.tiddlypwa-main.middlewares=authentik@file",
# by default, / is the admin UI and the wikis are behind a token
# move the admin from / to /admin
"traefik.http.routers.tiddlypwa-admin.rule=Host(`wiki.alo.land`) && Path(`/admin`)",
"traefik.http.routers.tiddlypwa-admin.entryPoints=websecure",
"traefik.http.routers.tiddlypwa-admin.middlewares=authentik@file,tiddlypwa-admin",
"traefik.http.middlewares.tiddlypwa-admin.replacepath.path=/",
# redirect / to the alo wiki
"traefik.http.routers.tiddlypwa-root.rule=Host(`wiki.alo.land`) && Path(`/`)",
"traefik.http.routers.tiddlypwa-root.entryPoints=websecure",
"traefik.http.routers.tiddlypwa-root.middlewares=authentik@file,tiddlypwa-root",
"traefik.http.middlewares.tiddlypwa-root.redirectregex.regex=^https://wiki.alo.land/$",
"traefik.http.middlewares.tiddlypwa-root.redirectregex.replacement=https://wiki.alo.land/3B5wygCxN7Xq47G9Gr6wD/app.html",
]
}
}
}
}