Craft Server
@craftquest/craft-serverv2026.08.02.1
Security Notice
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.
01README
Provision a Craft-ready Hetzner server — nginx, PHP-FPM, MySQL, vhost, database, optional TLS and Tailscale — with a protected teardown. Deployment is intentionally out of scope.
02Models
@craftquest/craft-serverv2026.08.02.1craft_server.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| dbName | string | MySQL database name |
| dbUser | string | MySQL application user |
fn wait_ssh()
Wait for SSH to come up on the new server (30 attempts, 10s apart) and initialize state
fn setup_storage()
Create and attach a Hetzner volume (skipped when volumeSize is 0), then verify the mount
fn install_tailscale()
Install Tailscale and join the tailnet (skipped when useTailscale is false)
fn install_stack()
Install nginx, MySQL, PHP-FPM + extensions, Composer, and certbot on the server
fn setup_database()
Create the MySQL application database and user
fn configure_nginx()
Write and enable the nginx vhost, create the webroot, and serve a placeholder page
fn setup_backups()
Configure nightly database + webroot backups (30-day retention) on the volume or /var/backups, and enable Hetzner server backups when serverBackups is true
fn setup_tls()
Issue a Let's Encrypt certificate via certbot (requires domain DNS to point at the server)
fn verify()
Verify the stack: services active, app database present, placeholder page answering
fn confirm_teardown()
Teardown safety gate: fails unless confirmServerName exactly matches the provisioned server name
fn delete_volume()
Delete the client's Hetzner volume — requires the confirm gate AND deleteData: true (otherwise the volume is preserved)
Resources
state(infinite)— Server provisioning progress and connection details
03Workflows
@craftquest/provision-craft47433567-e84c-4aba-be00-009fd0198671
Provision a Craft-ready Hetzner server — nginx, PHP-FPM, MySQL, database, vhost with placeholder page (no app deploy)
infrastructureCreate Hetzner Cloud infrastructure (SSH key, firewall, server)
1.create-ssh-keyhtz-ssh-key.create— Register the SSH public key with Hetzner
2.create-firewallcr-firewall.create— Create the firewall (SSH, HTTP, HTTPS)
3.create-serverhtz-server.create— Spin up an Ubuntu 24.04 server with the SSH key and firewall
provisionPrepare the server to receive a Craft site
1.wait-sshcraft-server.wait_ssh— Wait for SSH and initialize server state
2.setup-storagecraft-server.setup_storage— Create and attach a Hetzner volume (skipped if volume_size is 0)
3.install-tailscalecraft-server.install_tailscale— Install Tailscale and join the tailnet (skipped if use_tailscale is false)
4.install-stackcraft-server.install_stack— Install nginx, MySQL, PHP-FPM + extensions, Composer, and certbot
5.setup-databasecraft-server.setup_database— Create the MySQL application database and user
6.configure-nginxcraft-server.configure_nginx— Write the nginx vhost, webroot, and placeholder page
7.setup-backupscraft-server.setup_backups— Configure nightly db/webroot backups and Hetzner server backups
8.verifycraft-server.verify— Verify services, database, backups, and the placeholder page
@craftquest/teardown-craftaddeb7fc-ace8-497b-9d72-a95c76ba176a
Tear down a Craft server's Hetzner resources — gated on an exact server-name confirmation; volumes preserved unless delete_data is true
teardownDelete Hetzner resources in reverse provision order, after the confirm gate
1.confirmcraft-server.confirm_teardown— Abort unless confirm_server_name matches the provisioned server
2.delete-volumecraft-server.delete_volume— Delete the volume only when delete_data is true (else preserved)
3.delete-serverhtz-server.delete— Delete the Hetzner server
4.delete-firewallcr-firewall.delete— Delete the Hetzner firewall
@craftquest/enable-tls6d3ecf39-1f0d-4189-8a19-e110cced1150
Attach a domain to a provisioned Craft server and issue a Let's Encrypt certificate (run after DNS points at the server)
tlsUpdate the vhost for the domain, issue the certificate, verify
1.configure-nginxcraft-server.configure_nginx— Rewrite the nginx vhost with the domain as server_name
2.setup-tlscraft-server.setup_tls— Issue the Let's Encrypt certificate and enable the HTTPS redirect
3.verifycraft-server.verify— Verify services and the HTTPS response
04Skills
craft-server1 file
05Previous Versions
2026.08.01.3
Modified 1 models
2026.08.01.2
2026.08.01.1
06Stats
B
85 / 100
Downloads
1
Archive size
34.1 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository0/2missing
07Platforms
08Labels