frostmoln_webserver_deployment (Resource)
Deploys static/PHP site content to a managed Apache or Nginx webserver instance. The provider runs the full deploy flow: it requests a presigned upload from the platform, uploads the local archive, starts the deploy with the archive checksum, and waits for the in-guest agent to verify, extract, and publish the release. A changed archive (detected via source_hash) triggers a new deploy. Destroying the resource only drops it from Terraform state — content already published on the instance is left in place (there is no "undeploy" API; destroy the instance to remove it).
Example Usage
terraform
# Deploy site content to a managed webserver instance.
#
# source_archive is a LOCAL filesystem path, read at plan time by the machine
# running Terraform at plan and apply time — it is not a bucket key or a URL.
# Terraform tracks the
# archive's content hash, so rebuilding site.tar.gz makes the next apply push a
# new deployment automatically.
#
# Destroying this resource only drops it from Terraform state; content already
# published on the instance stays live (there is no "undeploy" API — destroy the
# instance to remove it).
resource "frostmoln_webserver_deployment" "site" {
instance_id = frostmoln_nginx_instance.site.id
source_archive = "${path.module}/site.tar.gz"
}Schema
Required
instance_id(String) The ID of the Apache or Nginx webserver instance to deploy content to.source_archive(String) Local filesystem path to the .tar.gz archive to deploy (the archive's top level becomes the site document root). The provider reads this file at plan and apply time; it is never uploaded to or returned by the API as-is — only its SHA-256 (source_hash) is tracked in state. Changing the file's contents changes source_hash and triggers a new deploy.
Read-Only
deploy_id(String) The ID of the most recent content deploy for this instance.id(String) Synthetic resource identifier (equal to instance_id — one deployment per instance).source_hash(String) SHA-256 hex digest of source_archive, computed by the provider at plan time. It is the change driver: when the archive's bytes change, this hash changes and a new deploy runs. It is also sent to the deploy's start call so the in-guest agent can verify the upload.status(String) Terminal status of the most recent deploy (succeeded once applied).