Skip to content

Terraform provider

The Terraform provider for Appwrite lets you declare TablesDB (databases, tables, columns, indexes, rows), Storage (buckets and files), Auth (users and teams), Functions (functions and variables), Sites (sites and variables), Messaging (providers, topics, subscribers), webhooks, backup policies, and more in .tf files, and apply those changes through HashiCorp Terraform. 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
TablesDB
appwrite_tablesdb, appwrite_tablesdb_table, appwrite_tablesdb_column, appwrite_tablesdb_index, appwrite_tablesdb_row
Storage
appwrite_storage_bucket, appwrite_storage_file
Auth
appwrite_auth_user, appwrite_auth_team
Functions
appwrite_function, appwrite_function_variable, appwrite_function_deployment
Sites
appwrite_site, appwrite_site_variable, appwrite_site_deployment
Messaging
appwrite_messaging_provider, appwrite_messaging_topic, appwrite_messaging_subscriber
Webhooks
appwrite_webhook
Backups
appwrite_backup_policy

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_tablesdb
Look up a database by ID
appwrite_storage_bucket
Look up a storage bucket by ID
appwrite_auth_user
Look up a user by ID
appwrite_auth_team
Look up a team by ID
appwrite_function
Look up a function by ID
appwrite_site
Look up a site by ID
appwrite_messaging_topic
Look up a messaging topic by ID
appwrite_webhook
Look up a webhook by ID
Looking for self-hosting?

This section is about Appwrite resources inside a project (for example databases and tables) using Terraform. If you want to install or operate the Appwrite server itself (Docker, configuration, TLS, scaling), go to the self-hosting documentation instead.

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