38 lines
1.5 KiB
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]
|