Docs
Skip to content

Tooling

Terraform provider_

Manage Appwrite infrastructure as code with the official Terraform provider. Works with Appwrite Cloud and Community Edition.

4 min read

Raw

The Terraform provider for Appwrite lets you declare Appwrite resources in .tf files and apply them through HashiCorp Terraform. It covers TablesDB (databases, tables, columns, indexes, rows), dedicated databases (PostgreSQL, MySQL, and MongoDB), DocumentsDB, VectorsDB, Storage (buckets and files), Auth (users and teams), Functions, Sites, Messaging (providers, topics, subscribers), webhooks, backup policies, projects, and custom domains. It is the official way to automate Appwrite project configuration alongside the rest of your stack.

Resources

Resource types use the appwrite_ prefix and match the Terraform Registry documentation.

AreaResources
TablesDBappwrite_tablesdb, appwrite_tablesdb_table, appwrite_tablesdb_column, appwrite_tablesdb_index, appwrite_tablesdb_row
Dedicated databasesappwrite_postgresql_database, appwrite_mysql_database, appwrite_mongo_database, and per engine *_backup_policy, *_backup_storage, *_branch, *_pooler (PostgreSQL and MySQL), appwrite_postgresql_extension
DocumentsDBappwrite_documentsdb, appwrite_documentsdb_collection, appwrite_documentsdb_index, appwrite_documentsdb_document
VectorsDBappwrite_vectorsdb, appwrite_vectorsdb_collection, appwrite_vectorsdb_index, appwrite_vectorsdb_document
Storageappwrite_storage_bucket, appwrite_storage_file
Authappwrite_auth_user, appwrite_auth_team
Functionsappwrite_function, appwrite_function_variable, appwrite_function_deployment
Sitesappwrite_site, appwrite_site_variable, appwrite_site_deployment
Messagingappwrite_messaging_provider, appwrite_messaging_topic, appwrite_messaging_subscriber
Webhooksappwrite_webhook
Backupsappwrite_backup_policy
Custom domainsappwrite_proxy_rule

Data sources

Data sources read resources that already exist instead of creating them. Use them to reference identifiers or attributes from resources created outside Terraform or in another state.

NameDescription
appwrite_tablesdbLook up a database by ID
appwrite_postgresql_database, appwrite_mysql_database, appwrite_mongo_databaseLook up a dedicated database by ID, including connection credentials
appwrite_postgresql_databases, appwrite_mysql_databases, appwrite_mongo_databasesList dedicated databases, with query filtering
appwrite_postgresql_specifications, appwrite_mysql_specifications, appwrite_mongo_specificationsList the compute specifications your plan allows
appwrite_postgresql_database_status, appwrite_mysql_database_status, appwrite_mongo_database_statusRead live health, replication, and storage
appwrite_postgresql_backups, appwrite_mysql_backups, appwrite_mongo_backupsList backups of a dedicated database
appwrite_postgresql_extensionsList installed and installable PostgreSQL extensions
appwrite_documentsdb, appwrite_vectorsdbLook up a DocumentsDB or VectorsDB database by ID
appwrite_documentsdb_specifications, appwrite_vectorsdb_specificationsList the specifications each product allows
appwrite_storage_bucketLook up a storage bucket by ID
appwrite_auth_userLook up a user by ID
appwrite_auth_teamLook up a team by ID
appwrite_functionLook up a function by ID
appwrite_siteLook up a site by ID
appwrite_messaging_topicLook up a messaging topic by ID
appwrite_webhookLook up a webhook by ID

What is Terraform?

Terraform is an infrastructure-as-code tool. You write configuration in a declarative language (HCL) that describes what should exist; Terraform figures out how to create or update it.

If you are new to the idea:

  • Provider: A plugin that teaches Terraform how to talk to a specific API (here, Appwrite).
  • Resource: Something Terraform should create and manage (for example an Appwrite database or table).
  • State: Terraform remembers what it already created so the next run can update or destroy only what changed.
  • Plan / apply: You run terraform plan to preview changes, then terraform apply to execute them.

You still use the Appwrite Console and SDKs for day-to-day app development; the provider is for repeatable, version-controlled setup of project resources across environments.

Official repository and registry

Source code, issues, and contribution guidelines:

The provider works with Appwrite Cloud and Community Edition (self-hosted Appwrite). You point it at your API endpoint and authenticate with a project API key.

Next steps

Was this page helpful?

Share what worked or what we should fix. Once approved, our agents automatically apply suggested updates to the docs.