Files
hotdog-cms/starter/site/publish.example.yaml

38 lines
1.5 KiB
YAML

# Where `hotdog-cms publish` sends the site. Copy to publish.yaml and keep the
# targets you use. ${NAME} reads an environment variable, so host names and
# registries can stay out of the repository. No passwords or keys go here:
# SSH uses your keys and agent, registries use `docker login` / `podman login`.
targets:
# A web server on this machine: publish into its document root.
local:
type: dir
path: /var/www/example.org
# Bare metal or a VPS over SSH. Only changed files are sent, and the new
# site replaces the old one in a single swap on the server.
server:
type: rsync
host: deploy@${DEPLOY_HOST}
path: /var/www/example.org
# port: 2222
# Your own steps around publishing, run without a shell. before can change
# the build ({out}); after runs once the site is live.
# before:
# - [pagefind, --site, "{out}"]
# after:
# - [curl, -fsS, "https://hc-ping.com/${HEALTHCHECK_ID}"]
# A container image with the site and a small web server (nginx or caddy)
# on port 8080. push sends it to the registry named in the image.
image:
type: container
image: ${REGISTRY}/example-site:latest
server: nginx
push: false
# context: build/image # only write the build context, for a pipeline that builds images itself
# Anything else: your own command, run without a shell. {out} is the build.
# bucket:
# type: command
# command: [aws, s3, sync, "{out}", "s3://example-site", --delete]