100 lines
2.9 KiB
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",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|