10 Sentinels Active
SENTINEL 01: [AEGIS] AUDITING POCKETBASE INFRASTRUCTURE...
Back to Self-Hosted Stacks
Appwrite

Deploy Appwrite

Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more

Quick Start

1

Create a directory

mkdir appwrite-self-hosted && cd appwrite-self-hosted
2

Create config file

Copy the content from the Config tab below into a file named docker-compose.yml

3

Deploy

docker compose up -d
Fast Track

Deploy Appwrite in Minutes

Use our optimized Docker templates to deploy Appwrite on any cloud provider. Get $200 in free credit to start on DigitalOcean.

Start with free creditDeploy on DigitalOcean
$200

Metadata

License
BSD-3-Clause
Language
TypeScript
Last Updated
10/14/2026
Category
Backend as a Service

Configuration

yaml

# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 🚀 BUILT & MAINTAINED BY THE ALTSTACK
# 🌍 https://thealtstack.com
# 💡 Open-source deployment templates for modern self-hosting.
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

# Appwrite Production-Ready Docker Compose
version: '3.8'

services:
  appwrite:
    image: appwrite/appwrite:latest
    container_name: appwrite
    ports:
      - "80:80"
      - "443:443"
    environment:
      - _APP_ENV=production
      - _APP_DB_HOST=appwrite_mariadb
      - _APP_DB_PORT=3306
      - _APP_DB_USER=${_APP_DB_USER:-appwrite}
      - _APP_DB_PASS=${_APP_DB_PASS:-password}
      - _APP_DB_SCHEMA=appwrite
      - _APP_REDIS_HOST=appwrite_redis
      - _APP_REDIS_PORT=6379
    volumes:
      - appwrite_uploads:/storage/uploads
      - appwrite_cache:/storage/cache
    depends_on:
      appwrite_mariadb:
        condition: service_healthy
      appwrite_redis:
        condition: service_healthy
    networks:
      - appwrite_net
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/v1/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  appwrite_mariadb:
    image: mariadb:10.7
    container_name: appwrite-mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS:-rootsecretpassword}
      - MYSQL_DATABASE=appwrite
      - MYSQL_USER=${_APP_DB_USER:-appwrite}
      - MYSQL_PASSWORD=${_APP_DB_PASS:-password}
    volumes:
      - appwrite_mariadb:/var/lib/mysql
    networks:
      - appwrite_net
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u root -p${MYSQL_ROOT_PASSWORD}"]
      interval: 10s
      timeout: 5s
      retries: 3

  appwrite_redis:
    image: redis:7.0-alpine
    container_name: appwrite-redis
    volumes:
      - appwrite_redis:/data
    networks:
      - appwrite_net
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3

networks:
  appwrite_net:
    driver: bridge

volumes:
  appwrite_mariadb:
  appwrite_redis:
  appwrite_uploads:
  appwrite_cache:

Community Notes

Help others by adding context, corrections, or warnings about this tool. Sign in to contribute.

No community notes yet. Be the first to add context.