share-plan
v1.0.0
Published
Publish short-lived static HTML plans to Appwrite Sites
Maintainers
Readme
Share Plan
Share Plan is a tiny CLI for publishing static HTML plans to Appwrite Sites for short-lived sharing.
pnpm install
pnpm link --global
share-plan ./planThe path can be a folder or a single .html file. Folders should contain index.html at the root, or exactly one root HTML file that Share Plan can publish as index.html. CSS, images, fonts, and other static assets are allowed. JavaScript, framework manifests, and build scripts are rejected by the create-site function before deployment. IDs are generated from the path by default and converted into DNS-safe slugs before being used in share-plan-<id>.<sites-domain>. Pass --id only when you want to choose the public slug yourself.
Appwrite Functions
This repo defines two Appwrite Functions in appwrite.config.json.
create-share-plan-site: public HTTP function that receives atar.gz, validates it, creates or reuses a static Appwrite Site, createsshare-plan-<id>.<APPWRITE_SITES_DOMAIN>, and uploads an active deployment.cleanup-share-plan-sites: scheduled hourly function that deletes Share Plan sites at least 48 hours old.
Set APPWRITE_SITES_DOMAIN on both functions to the Sites base domain for your environment, for example appwrite.network or a local Sites domain.
Local Deploy
Link the Appwrite CLI to your local project first:
appwrite init project
appwrite push functionsFor local Cloud, the Sites domain is usually sites.localhost:
appwrite functions create-variable --function-id create-share-plan-site --variable-id create_sites_domain --key APPWRITE_SITES_DOMAIN --value sites.localhost
appwrite functions create-variable --function-id cleanup-share-plan-sites --variable-id cleanup_sites_domain --key APPWRITE_SITES_DOMAIN --value sites.localhostThe CLI defaults to the production create function at https://share-plan-api.appwrite.network/. Use --url or SHARE_PLAN_CREATE_URL to override it for local testing or another deployment.
share-plan ./plan
share-plan ./plan.html
SHARE_PLAN_CREATE_URL=https://<create-function-domain> share-plan ./plan