@@ -9,17 +9,40 @@ name: Deploy documentation
99# DEPLOY_SSH_KEY Private SSH key (ed25519) for the deploy user. The matching
1010# public key goes into the deploy user's ~/.ssh/authorized_keys
1111# on the server, ideally locked to rrsync, e.g.:
12- # command="rrsync -wo /var/www/docu/htdocs ",restrict ssh-ed25519 AAAA...
13- # DEPLOY_HOST Server hostname or IP (e.g. docs.humhub.org)
12+ # command="rrsync -wo <RRSYNC_ROOT> ",restrict ssh-ed25519 AAAA...
13+ # DEPLOY_HOST Server hostname or IP
1414# DEPLOY_USER Deploy user name on the server
1515# DEPLOY_KNOWN_HOSTS Output of `ssh-keyscan -H <host>` — pins the server key so
1616# the connection cannot be MITM'd.
1717# Optional:
1818# DEPLOY_PORT SSH port (defaults to 22)
19- # DEPLOY_PATH Destination path. Use "." when the key is locked to rrsync
20- # (the path is relative to the rrsync root); use an absolute
21- # path like "/var/www/docu/htdocs" if the key is unrestricted.
22- # Defaults to ".".
19+ # DEPLOY_PATH Destination directory for the built site (defaults to ".").
20+ # See "How rrsync root and DEPLOY_PATH combine" below.
21+ #
22+ # How rrsync root and DEPLOY_PATH combine
23+ # ---------------------------------------
24+ # When the deploy key is locked to rrsync (recommended), rrsync confines rsync to
25+ # one directory — the "rrsync root", the path given in the authorized_keys line:
26+ # command="rrsync -wo <RRSYNC_ROOT>",restrict ssh-ed25519 AAAA...
27+ # rrsync then interprets DEPLOY_PATH *relative to that root* and joins the two.
28+ # The site is written to: <RRSYNC_ROOT>/<DEPLOY_PATH>
29+ #
30+ # IMPORTANT: DEPLOY_PATH must be relative. An absolute path (one starting with "/")
31+ # gets re-rooted under RRSYNC_ROOT and points nowhere, so rsync fails with
32+ # 'mkdir "..." failed: No such file or directory'. Use "." to write into the root
33+ # itself, or a sub-directory name to write one level below it.
34+ #
35+ # RRSYNC_ROOT (authorized_keys) DEPLOY_PATH writes to
36+ # ----------------------------- ----------- -----------------------------
37+ # <root>/webroot . <root>/webroot (tightest)
38+ # <root> webroot <root>/webroot
39+ # <root> staging <root>/staging
40+ #
41+ # The RRSYNC_ROOT must already exist and be writable by the deploy user; rsync
42+ # only creates the final DEPLOY_PATH sub-directory, not missing parents. Prefer
43+ # jailing rrsync directly to the target dir (DEPLOY_PATH=".") so the key can
44+ # write nowhere else. Note: --delete removes anything in the target not present
45+ # in build/, so keep unrelated files (e.g. /.well-known) out of that directory.
2346
2447on :
2548 # Enable automatic deploys on push once the server-side deploy setup is done.
5477 - name : Install dependencies
5578 run : npm install
5679
80+ - name : Refresh browser data
81+ run : npx update-browserslist-db@latest
82+
5783 - name : Build
5884 run : npm run build
5985
0 commit comments