Nomploy Nomad Packs

← All packs

radicale v0.1.0

Apps

Radicale — a lightweight CalDAV and CardDAV server: self-host your calendars and contacts and sync them across phones and desktops. Deployed as a single host-networked Nomad service with a rendered config, htpasswd auth, and a data volume.

nomad-pack run radicale --registry nomploy
2 tasks http 5232 1 volume image rockstorm/radicale:latest
Variables 11
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run radicale -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "radicale"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The Radicale container image. Pin a tag in production.
image = "rockstorm/radicale:latest"

# Host port for the Radicale CalDAV/CardDAV server.
port = 5232

# The user allowed to sync (htpasswd).
username = "admin"

# Password for the user (stored plaintext in the users file — switch to bcrypt for production). CHANGE THIS.
password = "changeme-please"

# UID Radicale runs as. The data volume is chown'd to this at startup.
uid = 2999

# Named volume for stored calendars and contacts (/var/lib/radicale/collections).
data_volume = "radicale_data"

# Placement constraints. Pin to the node holding the volume. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 200
    memory = 128
  }
NameTypeDefaultDescription
job_name string
"radicale"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"rockstorm/radicale:latest"
The Radicale container image. Pin a tag in production.
port number
5232
Host port for the Radicale CalDAV/CardDAV server.
username string
"admin"
The user allowed to sync (htpasswd).
password set me string
"changeme-please"
Password for the user (stored plaintext in the users file — switch to bcrypt for production). CHANGE THIS.
uid number
2999
UID Radicale runs as. The data volume is chown'd to this at startup.
data_volume string
"radicale_data"
Named volume for stored calendars and contacts (/var/lib/radicale/collections).
constraints list
[]
Placement constraints. Pin to the node holding the volume. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 200
    memory = 128
  }
The task resources.
Readme

radicale

Radicale — a lightweight CalDAV and CardDAV server. Self-host your calendars and contacts and sync them across phones and desktops.

Single host-networked Nomad service with a rendered config, htpasswd auth, and a data volume. A busybox prestart task chowns the data volume to Radicale's UID.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run radicale --registry=nomploy

Configure

Variable Default Description
port 5232 CalDAV/CardDAV port.
username / password admin / changeme-please Sync login (htpasswd). Change the password.
uid 2999 User Radicale runs as; volume is chown'd to it.
data_volume radicale_data /var/lib/radicale/collections.
image rockstorm/radicale:latest Container image. Pin a tag in production.
resources { cpu = 200, memory = 128 } Task resources.

Add a CalDAV/CardDAV account on your device pointing at http://<node-ip>:5232. The users file uses plaintext passwords for simplicity — for production switch htpasswd_encryption to bcrypt (supply a hashed users file) and put TLS in front. Pin the job to the node holding the volume with constraints.