Appwrite на собственном VPS
Appwrite — открытый backend-as-a-service: база, авторизация, storage, функции и realtime из коробки. Развернём его на VPS одним скриптом и подключим свой домен.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Почему Appwrite на своём VPS
Appwrite закрывает типичные задачи бэкенда без написания рутины: юзеры, права, файлы, функции, realtime-подписки. На своём VPS вы не платите за каждую операцию и держите данные под контролем — особенно важно, когда пользователи в России.
Стек Appwrite поднимает десяток контейнеров и активно пишет на диск. NVMe + AMD EPYC у MAATRIX дают ему нужную скорость, а оплата картой РФ, СБП или криптой решает проблему аренды зарубежного сервера из РФ.
По сути Appwrite заменяет связку из пяти-шести отдельных сервисов: базу, систему аутентификации с OAuth-провайдерами, файловое хранилище с трансформацией картинок, realtime-канал и раннер серверных функций. Собирать это вручную из микросервисов долго и дорого в поддержке. Appwrite отдаёт всё готовым стеком, а вы платите только за VPS — и данные пользователей физически лежат на вашем сервере, а не в чужом облаке.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для AppwriteТребования и Docker
Appwrite ставится через Docker Compose. Нужен сервер с 2+ ГБ RAM и открытыми портами 80/443 — Traefik внутри стека сам получит и продлит Let's Encrypt-сертификат. Заранее направьте A-запись домена на IP вашего VPS, иначе выпуск сертификата не пройдёт.
apt update && apt install -y docker.io docker-compose-plugin
systemctl enable --now docker
docker --version
Установка одной командой
Официальный установщик сам создаёт docker-compose.yml и .env, задавая вопросы (порты HTTP/HTTPS, домен):
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:1.5.7
Установщик спросит адрес сервера, HTTP/HTTPS-порты и секретный ключ. Тег версии (здесь 1.5.7) фиксируйте явно — так апгрейд будет контролируемым, а не случайным при повторном запуске. После установки контейнеры поднимаются автоматически. Проверяем:
cd appwrite
docker compose ps
Домен, TLS и вход в консоль
Appwrite умеет сам выпускать Let's Encrypt через встроенный Traefik. Задайте переменные в appwrite/.env:
_APP_DOMAIN=appwrite.example.com
_APP_DOMAIN_TARGET=appwrite.example.com
_APP_DOMAIN_FUNCTIONS=functions.example.com
Перезапустите стек, чтобы применить домен и получить сертификат:
docker compose up -d --remove-orphans
Откройте https://appwrite.example.com, создайте админ-аккаунт и первый проект. Далее подключаете SDK (web, Flutter, Node) по project ID и endpoint. В настройках проекта сразу добавьте домен вашего фронтенда в список платформ — иначе браузерные запросы упрутся в CORS. Для мобильных приложений регистрируйте платформу по bundle ID.
Бэкапы и частые ошибки
Данные Appwrite лежат в docker-томах и в MariaDB. Бэкапим базу и тома:
docker compose exec mariadb sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/appwrite-$(date +%F).sql
tar czf /root/appwrite-vol-$(date +%F).tar.gz appwrite/
- Сертификат не выпускается — домен не резолвится на IP сервера или занят порт 80; проверьте DNS и
ss -tlnp | grep :80. - Контейнеры OOM — мало RAM, добавьте swap или увеличьте тариф.
- Функции не запускаются — не задан
_APP_DOMAIN_FUNCTIONSили нет доступа к docker.sock.
Обновляется Appwrite тоже через Docker: меняете тег образа в docker-compose.yml, затем docker compose up -d — миграции применяются автоматически. Перед мажорным апгрейдом обязательно снимите бэкап, чтобы можно было откатиться.
Ежедневные бэкапы MAATRIX страхуют тома Appwrite на случай сбоя — восстановление проекта займёт минуты, а не дни. А поскольку весь backend живёт на одном VPS, вы платите фиксированную цену от $8/мес вместо роста счёта за операции в облачном BaaS.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для AppwriteОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Appwrite или Supabase?
Appwrite — ближе к Firebase с функциями и realtime из коробки; Supabase — вокруг чистого Postgres и SQL. Выбор зависит от того, нужен ли вам полноценный SQL.
Сколько ресурсов нужно Appwrite?
Минимум 2 ГБ RAM и 2 ядра, комфортно от 4 ГБ. Диск — NVMe, стек активно пишет.
Можно ли писать серверные функции?
Да, Appwrite Functions запускают код на Node, Python, PHP, Dart и др. в изолированных контейнерах по событию или расписанию.