---
layout: article
title: Preparation
description: Optimize self-hosted Appwrite for production environments. Learn key concepts and best practices for deploying Appwrite in production.
---

Appwrite's default setup is designed to help you start building quickly. To succeed with Appwrite in a production environment, you should follow key concepts and best practices outlined in this section.

This guide assumes you have some basic understanding of Docker and Docker Compose command-line tools.

# Production checklist {% #production-checklist %}

Before deploying Appwrite to production, ensure you have configured:

- **[Security](/docs/advanced/self-hosting/production/security)** - Implement essential security practices
- **[Scaling](/docs/advanced/self-hosting/production/scaling)** - Configure horizontal and vertical scaling for your containers
- **[Rate limits](/docs/advanced/self-hosting/production/rate-limits)** - Enable rate limiting to protect against abuse
- **[Email delivery](/docs/advanced/self-hosting/production/emails)** - Set up reliable SMTP for production email delivery
- **[Error monitoring](/docs/advanced/self-hosting/production/errors)** - Configure error tracking and logging
- **[Backups](/docs/advanced/self-hosting/production/backups)** - Set up regular database and storage backups
- **[Updates](/docs/advanced/self-hosting/production/updates)** - Plan for version updates and migrations
- **[Debugging](/docs/advanced/self-hosting/production/debugging)** - Set up monitoring and debugging tools

# Key principles {% #key-principles %}

When deploying Appwrite in production:

- **Security first** - Always use HTTPS, secure your console access, and implement proper authentication
- **Monitor everything** - Set up logging, error tracking, and performance monitoring
- **Plan for scale** - Design your infrastructure to handle growth
- **Backup regularly** - Implement automated backup strategies for data protection
- **Stay updated** - Keep Appwrite and dependencies up to date with security patches

{% arrow_link href="/docs/advanced/self-hosting/production/scaling" %}
Start with scaling configuration
{% /arrow_link %}