bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Appwrite на VPS: встановлення, налаштування та обслуговування

calendar_month June 10, 2026 schedule 18 хв. читання visibility 40 переглядів
person
Valebyte Team
Appwrite на VPS: встановлення, налаштування та обслуговування

Встановлення Appwrite на VPS, його налаштування та подальше обслуговування включає розгортання платформи через Docker Compose на віртуальному сервері з мінімум 2 vCPU, 4 GB RAM та 40 GB NVMe-диска, що дозволяє розробникам швидко отримати потужний, самохостинговий бек-енд для своїх застосунків з повним контролем над інфраструктурою.

Appwrite — це потужний відкритий бек-енд сервіс (Backend-as-a-Service, BaaS), який надає розробникам усі необхідні API та інструменти для створення масштабованих застосунків. Він пропонує бази даних, автентифікацію, сховище файлів, функції та багато іншого, позбавляючи вас необхідності писати бек-енд з нуля. Розгортання Appwrite на власному VPS-сервері дає повний контроль над даними, безпекою та продуктивністю, що є критично важливим для багатьох проєктів. У цій статті ми детально розглянемо, як виконати встановлення Appwrite на VPS, налаштувати його для стабільної роботи та забезпечити ефективне обслуговування.

Що таке Appwrite і чому варто використовувати Appwrite на VPS?

Appwrite — це комплексне рішення для бек-енду, яке значно прискорює розробку застосунків. Замість того, щоб витрачати час на створення інфраструктури для користувацької автентифікації, роботи з базами даних, зберігання файлів або виконання фонових завдань, розробники можуть використовувати готові API Appwrite. Це дозволяє зосередитися на логіці клієнтської частини та бізнес-вимогах.

Вибір Appwrite на VPS, або як його ще називають, Appwrite self-hosted, обумовлений кількома ключовими перевагами:

  • Повний контроль: Ви повністю володієте своїми даними та інфраструктурою. Це особливо важливо для проєктів з високими вимогами до безпеки, конфіденційності або специфічними регуляторними нормами.
  • Гнучкість та кастомізація: Ви можете налаштовувати серверну середу, встановлювати додаткові інструменти та оптимізувати Appwrite під свої унікальні потреби, чого часто не вистачає в хмарних BaaS-рішеннях.
  • Економія на масштабі: Для багатьох проєктів самостійне розміщення Appwrite на VPS виявляється значно вигіднішим, ніж використання платних хмарних BaaS-провайдерів, особливо зі зростанням трафіку та обсягу даних.
  • Продуктивність: Ви можете вибрати VPS з оптимальними характеристиками (NVMe-диски, високочастотні процесори, великий обсяг RAM) для забезпечення максимальної продуктивності, не залежно від "сусідніх" клієнтів у хмарі.
  • Відсутність прив'язки до постачальника (Vendor Lock-in): Ви не прив'язані до одного хмарного провайдера і завжди можете перенести Appwrite на інший сервер або хостинг.

Appwrite vs. BaaS-конкуренти: чому самохостинг?

На ринку існує безліч BaaS-рішень, таких як Firebase від Google, Supabase, Parse Server тощо. Кожне з них має свої сильні сторони. Firebase пропонує глибоку інтеграцію з екосистемою Google та бессерверні функції, але може бути дорогим і менш гнучким у плані контролю даних. Supabase, як і Appwrite, є відкритим аналогом Firebase, але базується на PostgreSQL і має дещо іншу архітектуру.

Основна відмінність Appwrite self-hosted від багатьох конкурентів полягає саме в можливості повного контролю над середовищем. У той час як Firebase — це повністю керований сервіс, де ви платите за використання і не можете впливати на інфраструктуру, Appwrite дозволяє вам розгорнути його на будь-якому сервері. Це дає вам свободу вибору обладнання, операційної системи та мережевої конфігурації. Якщо ви шукаєте схоже рішення, але з акцентом на PostgreSQL, рекомендуємо ознайомитися з нашою статтею щодо встановлення Supabase на VPS.

Для розробників, яким важлива незалежність, приватність даних та економічна ефективність у довгостроковій перспективі, встановлення Appwrite на сервері стає очевидним вибором. Valebyte.com пропонує надійні VPS та виділені сервери, що ідеально підходять для таких завдань.

Системні вимоги Appwrite та вибір оптимального VPS

Перед тим як приступити до встановлення Appwrite, важливо правильно підібрати віртуальний сервер. Appwrite працює в контейнерах Docker, що робить його досить портативним, але при цьому вимогливим до ресурсів, особливо при активному навантаженні. Правильний вибір VPS-конфігурації є запорукою стабільності та продуктивності вашого застосунку.

Мінімальні та рекомендовані конфігурації для Appwrite self-hosted

Appwrite, як і будь-яка інша складна система, має свої вимоги до апаратного забезпечення. Ці вимоги залежать від очікуваного навантаження: кількості активних користувачів, обсягу даних, частоти запитів та складності виконуваних функцій.

  • Мінімальні вимоги (для розробки та тестування):
    • CPU: 1 vCPU
    • RAM: 2 GB
    • Диск: 20 GB NVMe/SSD
    • ОС: Ubuntu 20.04+ (або інша сучасна Linux)

    На такій конфігурації Appwrite запуститься і працюватиме, але при будь-якому значному навантаженні ви зіткнетеся з уповільненнями. Це підходить виключно для особистих проєктів, навчання або демонстрацій.

  • Рекомендовані вимоги (для невеликих та середніх продакшн-застосунків):
    • CPU: 2-4 vCPU (чим більше, тим краще для паралельних операцій)
    • RAM: 4-8 GB (достатньо для більшості операцій з базами даних та кешування)
    • Диск: 40-80 GB NVMe (NVMe критично важливий для швидкості роботи бази даних та операцій з файлами)
    • ОС: Ubuntu 22.04 LTS

    Ця конфігурація забезпечить стабільну роботу для застосунків з помірним навантаженням, витримуючи сотні активних користувачів та тисячі запитів на хвилину. NVMe-диски тут відіграють ключову роль, значно прискорюючи операції введення/виведення, що безпосередньо впливає на чутливість бази даних та файлового сховища Appwrite.

  • Вимоги для високого навантаження (масштабовані продакшн-застосунки):
    • CPU: 8+ vCPU
    • RAM: 16+ GB
    • Диск: 100+ GB NVMe (можливо, з окремим томом для даних)
    • ОС: Ubuntu 22.04 LTS

    Для проєктів з тисячами активних користувачів, інтенсивними операціями з даними та великою кількістю фонових завдань, знадобиться більш потужний сервер. У цьому випадку, можливо, варто розглянути не просто VPS, а виділений сервер, який надасть максимальну продуктивність без "сусідів".

Який VPS вибрати для Appwrite на сервері?

Вибір провайдера VPS має не менше значення, ніж сама конфігурація. Зверніть увагу на наступні аспекти при виборі VPS для Appwrite на сервері:

  • Тип віртуалізації: Для Appwrite рекомендується KVM-віртуалізація, яка забезпечує повну ізоляцію ресурсів та максимальну продуктивність. KVM VPS vs OpenVZ VPS — це важливий вибір, і KVM завжди кращий для продакшн-навантажень.
  • Тип накопичувача: NVMe-диски є стандартом для високопродуктивних застосунків. Вони забезпечують значно вищу швидкість читання/запису порівняно зі звичайними SSD або HDD, що критично важливо для бази даних Appwrite (MariaDB) та файлового сховища.
  • Розташування сервера: Вибирайте дата-центр, географічно близький до вашої основної аудиторії, щоб мінімізувати затримки.
  • Пропускна здатність мережі: Переконайтеся, що ваш VPS-тариф пропонує достатню пропускну здатність (мінімум 1 Гбіт/с) та обсяг трафіку.
  • Підтримка: Надійний провайдер з оперативною технічною підтримкою завжди буде плюсом.

Valebyte.com пропонує різні тарифи VPS, які ідеально підходять для розгортання Appwrite. Ось приблизна таблиця конфігурацій та їх застосовності:

Тариф Valebyte (приклад) CPU (vCores) RAM (GB) Диск (NVMe, GB) Пропускна здатність Приблизне навантаження Appwrite Рекомендована ціна (міс.)
Basic-2 2 4 40 1 Гбіт/с Розробка, тестування, невеликі проєкти (до 500 активних користувачів) Від $15
Standard-4 4 8 80 1 Гбіт/с Середні продакшн-застосунки (до 5000 активних користувачів) Від $30
Pro-8 8 16 160 1 Гбіт/с Великі продакшн-застосунки, високе навантаження (до 20000 активних користувачів) Від $60
Dedicated Entry 16+ 32+ 240+ 10 Гбіт/с Дуже високе навантаження, вимогливі сервіси (більше 20000 активних користувачів) Від $150

Вибираючи VPS, завжди краще взяти конфігурацію з невеликим запасом, щоб мати простір для зростання та уникнути проблем з продуктивністю в майбутньому.

Шукаєте надійний сервер для ваших проєктів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Дивитись пропозиції →

Підготовка VPS до встановлення Appwrite

Перш ніж приступати до встановлення Appwrite, необхідно підготувати ваш віртуальний сервер. Цей етап включає оновлення операційної системи, встановлення Docker та Docker Compose, а також базове налаштування файрволу для забезпечення безпеки. Ми будемо використовувати Ubuntu Server 22.04 LTS як найбільш поширену та добре підтримувану ОС для таких завдань.

Оновлення системи та встановлення Docker

Першим кроком завжди є оновлення вашої системи. Це гарантує, що у вас встановлені всі останні патчі безпеки та доступні версії пакетів.

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

Після оновлення системи необхідно встановити Docker та Docker Compose. Appwrite повністю контейнеризований і використовує Docker для розгортання всіх своїх компонентів (база даних, кеш, черги, API-сервери тощо).

Найпростіший спосіб встановити Docker — використовувати офіційний скрипт:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Цей скрипт встановить Docker Engine, Docker CLI та Docker Compose Plugin. Після встановлення рекомендується додати вашого користувача до групи docker, щоб уникнути використання sudo при кожній команді Docker:

sudo usermod -aG docker $USER
newgrp docker

Перевірте, що Docker встановлений і працює:

docker --version
docker compose version

Ви повинні побачити версії Docker та Docker Compose. Якщо ви бачите помилку "command not found" для Docker Compose, можливо, у вас стара версія Docker, і Docker Compose потрібно встановлювати окремо. Однак для сучасних дистрибутивів та скрипта get-docker.sh це не повинно бути проблемою.

Розуміння роботи з контейнерами Docker є ключовим для успішного керування Appwrite. Для глибшого занурення в тему контейнеризації рекомендуємо ознайомитися зі статтею Контейнери vs ВМ vs Bare-metal: хостинг-картина 2026.

Налаштування Firewall (UFW)

Налаштування файрволу (брандмауера) — критично важливий крок для захисту вашого сервера. Ми будемо використовувати UFW (Uncomplicated Firewall), який попередньо встановлений в Ubuntu і простий у налаштуванні.

Дозвольте необхідні порти:

  • 22/tcp: Для SSH-доступу. Обов'язково переконайтеся, що ви дозволили цей порт, перш ніж вмикати файрвол, інакше ви втратите доступ до сервера!
  • 80/tcp: Для HTTP-трафіку (знадобиться для отримання SSL-сертифікатів Let's Encrypt).
  • 443/tcp: Для HTTPS-трафіку (основний порт для доступу до Appwrite).
  • Будь-які інші порти, якщо Appwrite буде використовувати їх безпосередньо (наприклад, для специфічних функцій або кастомних сервісів, але зазвичай 80/443 достатньо, коли використовується зворотний проксі).
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Команда sudo ufw enable активує файрвол. Після цього sudo ufw status verbose покаже поточні правила. Переконайтеся, що всі необхідні порти дозволені, а решта заблоковані за замовчуванням.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Покрокове встановлення Appwrite на VPS через Docker Compose

Після підготовки сервера можна приступати до самого встановлення Appwrite. Завдяки Docker, цей процес максимально спрощений і займає всього кілька хвилин.

Завантаження скрипта Appwrite Docker встановлення

Appwrite надає зручний скрипт для ініціалізації всіх необхідних файлів конфігурації Docker Compose. Виконайте наступну команду:

docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --pull always \
    appwrite/appwrite:latest install

Розберемо цю команду:

  • docker run -it --rm: Запускає контейнер в інтерактивному режимі, видаляючи його після завершення.
  • --volume /var/run/docker.sock:/var/run/docker.sock: Дозволяє контейнеру Appwrite взаємодіяти з Docker-демоном на хост-машині. Це необхідно для того, щоб Appwrite міг керувати своїми власними контейнерами.
  • --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw: Монтує поточну директорію appwrite на хості в контейнер. Тут зберігатимуться всі конфігураційні файли Appwrite та файли Docker Compose.
  • --pull always: Гарантує, що ви використовуєте найсвіжішу версію образу Appwrite.
  • appwrite/appwrite:latest install: Вказує Docker запустити образ Appwrite з тегом latest і виконати команду install всередині нього.

Налаштування змінних середовища та запуск Appwrite Docker

Після виконання команди install скрипт поставить вам кілька запитань:

  1. Choose your server HTTP port: 80 (за замовчуванням, якщо ви не плануєте використовувати інший порт).
  2. Choose your server HTTPS port: 443 (за замовчуванням).
  3. Choose your Appwrite server hostname: Введіть доменне ім'я, яке ви будете використовувати для доступу до Appwrite (наприклад, appwrite.yourdomain.com). Якщо у вас поки немає домену, можете використовувати IP-адресу вашого VPS, але для продакшн-середовища вкрай рекомендується домен.
  4. Choose your Appwrite secret key: Залиште порожнім для генерації випадкового ключа або введіть свій власний. Це дуже важливий ключ для безпеки.

Після відповіді на запитання скрипт згенерує файл docker-compose.yml та інші конфігураційні файли в директорії appwrite, яку ви вказали. Тепер вам потрібно перейти до цієї директорії:

cd appwrite

І запустити Appwrite за допомогою Docker Compose:

docker compose up -d

Команда docker compose up -d запустить усі сервіси Appwrite у фоновому режимі (-d означає "detached"). Docker почне завантажувати необхідні образи та запускати контейнери. Це може зайняти кілька хвилин, залежно від швидкості вашого інтернет-з'єднання та продуктивності VPS.

Ви можете перевірити статус запущених контейнерів:

docker compose ps

Переконайтеся, що всі контейнери Appwrite (appwrite_appwrite, appwrite_mariadb, appwrite_redis, appwrite_influxdb, appwrite_telegraf, appwrite_functions, appwrite_worker та інші) знаходяться в стані "Up".

Тепер ви можете отримати доступ до вашої інсталяції Appwrite, перейшовши в браузері за IP-адресою вашого VPS або за доменним ім'ям, яке ви вказали під час встановлення. Ви побачите сторінку привітання Appwrite, де зможете створити обліковий запис адміністратора.

Налаштування Reverse Proxy та HTTPS для Appwrite

Прямий доступ до Appwrite за IP-адресою або за HTTP-портом 80 не є безпечним та професійним рішенням. Для продакшн-середовища вкрай важливо налаштувати зворотний проксі (Reverse Proxy) та забезпечити шифрування трафіку за допомогою HTTPS. Це підвищує безпеку, дозволяє використовувати доменне ім'я та спрощує керування SSL-сертифікатами.

Ми розглянемо два популярні варіанти зворотного проксі: Nginx та Caddy. Обидва здатні автоматично отримувати та оновлювати SSL-сертифікати від Let's Encrypt.

Використання Nginx як зворотного проксі

Nginx — це високопродуктивний веб-сервер та зворотний проксі, широко використовуваний для обслуговування високонавантажених сайтів та застосунків. Якщо у вас вже є досвід роботи з Nginx, це може бути кращим варіантом.

1. Встановлення Nginx:

sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx

2. Налаштування Nginx для Appwrite:

Створіть новий файл конфігурації для вашого домену (наприклад, appwrite.yourdomain.com.conf) у директорії /etc/nginx/conf.d/. Замініть appwrite.yourdomain.com на ваш фактичний домен.

sudo nano /etc/nginx/conf.d/appwrite.yourdomain.com.conf

Вставте наступний код:

server {
    listen 80;
    listen [::]:80;
    server_name appwrite.yourdomain.com; # Замініть на ваш домен

    location / {
        proxy_pass http://localhost:80; # Appwrite слухає на порту 80 всередині Docker
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;

        # Підтримка WebSocket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

3. Перевірка та перезавантаження Nginx:

sudo nginx -t
sudo systemctl reload nginx

4. Встановлення Certbot для Let's Encrypt (HTTPS):

Certbot автоматизує отримання та встановлення безкоштовних SSL-сертифікатів від Let's Encrypt.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d appwrite.yourdomain.com # Замініть на ваш домен

Дотримуйтесь інструкцій Certbot. Він автоматично змінить конфігурацію Nginx для використання HTTPS та налаштує автоматичне оновлення сертифікатів. Після цього ваш Appwrite буде доступний по HTTPS.

Налаштування Caddy для автоматичного HTTPS

Caddy — це сучасний веб-сервер з автоматичним HTTPS, який значно спрощує налаштування SSL. Він ідеально підходить, якщо ви хочете максимально швидко та безболісно отримати HTTPS.

1. Встановлення Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y

2. Налаштування Caddyfile:

Caddy використовує файл конфігурації під назвою Caddyfile. Відредагуйте його:

sudo nano /etc/caddy/Caddyfile

Видаліть існуючий вміст і вставте наступне, замінивши appwrite.yourdomain.com на ваш домен:

appwrite.yourdomain.com { # Замініть на ваш домен
    reverse_proxy localhost:80 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        
        # Підтримка WebSocket
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }
}

3. Перевірка та перезавантаження Caddy:

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Caddy автоматично отримає SSL-сертифікат від Let's Encrypt та налаштує HTTPS. Тепер ваш Appwrite доступний по HTTPS через вказаний домен.

Незалежно від вибору Nginx або Caddy, переконайтеся, що DNS-запис (A-запис) для вашого домену (наприклад, appwrite.yourdomain.com) вказує на IP-адресу вашого VPS.

Базове обслуговування Appwrite: резервні копії, оновлення та моніторинг

Встановлення Appwrite — це тільки початок. Для забезпечення стабільної, безпечної та актуальної роботи вашої платформи потребується регулярне обслуговування. Це включає в себе резервне копіювання даних, своєчасні оновлення та моніторинг стану системи.

Стратегії резервного копіювання даних Appwrite

Резервне копіювання — це найважливіший аспект обслуговування будь-якого сервера. Втрата даних може бути катастрофічною. Appwrite зберігає свої дані в кількох місцях:

  1. База даних MariaDB: Основні дані проєкту, користувачі, налаштування тощо.
  2. Сховище файлів (MinIO): Завантажені користувачами файли, аватари, документи тощо.
  3. Змінні середовища та конфігурація Docker Compose: Файл .env та docker-compose.yml у вашій директорії appwrite.

Рекомендована стратегія резервного копіювання:

1. Резервне копіювання бази даних MariaDB:

Ви можете зробити дамп бази даних прямо з Docker-контейнера MariaDB:

# Перейдіть до директорії Appwrite
cd ~/appwrite

# Знайдіть ім'я контейнера MariaDB (зазвичай appwrite_mariadb_1 або appwrite-mariadb-1)
docker compose ps

# Виконайте дамп бази даних
# Замініть `YOUR_MARIADB_ROOT_PASSWORD` на пароль з файлу .env
docker exec appwrite-mariadb-1 /usr/bin/mysqldump -u root --password=YOUR_MARIADB_ROOT_PASSWORD appwrite > appwrite_backup_$(date +%Y%m%d_%H%M%S).sql

2. Резервне копіювання сховища файлів (MinIO):

Файли зберігаються в томі Docker. Ви можете скопіювати вміст цього тому. Спочатку знайдіть ім'я тому:

docker volume ls | grep appwrite_uploads

Зазвичай це щось на зразок appwrite_appwrite_uploads. Потім використовуйте команду docker run --rm -v <ім'я_тому>:/volume -v $(pwd)/backups:/backup alpine tar czf /backup/appwrite_uploads_$(date +%Y%m%d_%H%M%S).tar.gz -C /volume . для створення архіву. Або ж просто скопіюйте файли з папки uploads, яка зазвичай монтується з локальної файлової системи.

Якщо ви використовуєте локальне сховище для MinIO (що є налаштуванням за замовчуванням при простому встановленні), то файли знаходяться в директорії appwrite/uploads на вашому хості. Просто скопіюйте цю директорію:

cd ~/appwrite
tar -czf appwrite_uploads_backup_$(date +%Y%m%d_%H%M%S).tar.gz uploads/

3. Резервне копіювання конфігураційних файлів:

Скопіюйте файли .env та docker-compose.yml з вашої директорії appwrite:

cd ~/appwrite
cp .env .env.backup_$(date +%Y%m%d_%H%M%S)
cp docker-compose.yml docker-compose.yml.backup_$(date +%Y%m%d_%H%M%S)

Автоматизація резервного копіювання:

Використовуйте cron для автоматизації цих завдань. Наприклад, для щоденного резервного копіювання бази даних та файлів у директорію ~/appwrite/backups:

mkdir -p ~/appwrite/backups
sudo nano /etc/crontab

Додайте рядки (замініть YOUR_MARIADB_ROOT_PASSWORD та YOUR_USER):

0 3 * * * YOUR_USER bash -c "cd /home/YOUR_USER/appwrite && docker exec appwrite-mariadb-1 /usr/bin/mysqldump -u root --password=YOUR_MARIADB_ROOT_PASSWORD appwrite > backups/appwrite_backup_$(date +\%Y\%m\%d_\%H\%M\%S).sql"
15 3 * * * YOUR_USER bash -c "cd /home/YOUR_USER/appwrite && tar -czf backups/appwrite_uploads_backup_$(date +\%Y\%m\%d_\%H\%M\%S).tar.gz uploads/"

Зберігайте резервні копії на окремому диску або в хмарному сховищі (наприклад, S3-сумісному). Ніколи не зберігайте єдині копії резервних копій на тому ж сервері, що й робочі дані.

Оновлення Appwrite та Docker-контейнерів

Регулярні оновлення Appwrite важливі для отримання нових функцій, виправлень помилок та патчів безпеки. Процес оновлення досить простий завдяки Docker.

1. Перевірте поточну версію Appwrite:

Увійдіть до панелі керування Appwrite та подивіться номер версії у футері або в налаштуваннях.

2. Оновлення:

Перед оновленням завжди робіть повну резервну копію. Потім перейдіть до директорії Appwrite та виконайте наступні команди:

cd ~/appwrite
docker compose pull # Завантажить останні версії образів Appwrite
docker compose up -d # Перестворить контейнери з новими образами

Якщо Appwrite вимагає міграції бази даних, він автоматично запустить необхідні скрипти при старті нових контейнерів. Після оновлення перевірте логи контейнерів на наявність помилок:

docker compose logs

І переконайтеся, що всі сервіси знову запущені та працюють коректно.

Моніторинг Appwrite на сервері

Моніторинг дозволяє відстежувати продуктивність та стан вашого Appwrite-сервера, виявляти проблеми до того, як вони стануть критичними.

  • Моніторинг Docker-контейнерів:

    Використовуйте docker stats для перегляду використання ресурсів (CPU, RAM, мережа) кожним контейнером Appwrite. Це дає швидкий огляд продуктивності.

    docker stats
            
  • Логи контейнерів:

    Перевіряйте логи контейнерів Appwrite на наявність помилок або попереджень:

    docker compose logs -f
            

    Це покаже логи всіх сервісів у реальному часі. Можна також дивитися логи конкретного сервісу, наприклад, docker compose logs appwrite_appwrite_1.

  • Моніторинг ресурсів VPS:

    Використовуйте інструменти, такі як htop, top, free -h, df -h для моніторингу загального завантаження CPU, RAM, диска та мережі на вашому VPS.

    htop
            
  • Вбудовані метрики Appwrite:

    Appwrite надає власну панель моніторингу з метриками використання API, бази даних та інших сервісів. Доступ до неї можна отримати через панель адміністратора Appwrite.

Для більш розширеного моніторингу можна налаштувати такі системи, як Prometheus та Grafana, які можуть збирати метрики з Docker-контейнерів та представляти їх у вигляді зручних дашбордів. Це виходить за рамки цієї статті, але є важливим кроком для продакшн-систем.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Оптимізація продуктивності Appwrite та масштабування

Після успішного встановлення Appwrite на VPS та базового налаштування важливо задуматися про оптимізацію продуктивності та можливості масштабування. Ефективне використання ресурсів сервера дозволяє Appwrite обробляти більше запитів та обслуговувати більше користувачів без уповільнень.

Конфігурація ресурсів та кешування

Appwrite за замовчуванням налаштований досить добре, але для специфічних навантажень або збільшення продуктивності можна внести зміни через змінні середовища у файлі .env вашої директорії Appwrite. Після будь-якої зміни .env необхідно перезапустити контейнери Appwrite (docker compose down && docker compose up -d).

1. Оптимізація Redis:

Appwrite активно використовує Redis для кешування та роботи з чергами. Переконайтеся, що Redis виділено достатньо оперативної пам'яті. У .env можна знайти змінні, пов'язані з Redis:

  • _APP_REDIS_HOST: Хост Redis.
  • _APP_REDIS_PORT: Порт Redis.

Для оптимізації самого Redis, можна налаштувати його параметри через конфігураційний файл (якщо ви не використовуєте контейнер Appwrite за замовчуванням, а запускаєте Redis окремо). Важливі такі параметри, як maxmemory та maxmemory-policy.

2. Налаштування воркерів (Workers):

Appwrite використовує воркери для виконання фонових завдань (відправка email, обробка файлів, виконання функцій). Кількість воркерів можна регулювати. Більше воркерів означає кращу паралельну обробку, але й більше споживання CPU та RAM.

  • _APP_WORKER_PER_CORE: Кількість воркерів на кожне ядро CPU. За замовчуванням Appwrite автоматично визначає оптимальну кількість.

Якщо у вас потужний VPS з великою кількістю ядер, але ви бачите затримки у фонових завданнях, можливо, варто збільшити кількість воркерів.

3. Кешування API:

Для зниження навантаження на базу даних та прискорення відповіді API, Appwrite підтримує кешування. Переконайтеся, що воно активне. У .env є змінні, пов'язані з кешуванням:

  • _APP_CACHE_ENABLED: Увімкнути/вимкнути кешування (enabled/disabled).
  • _APP_CACHE_TTL: Час життя кешу в секундах.

4. Оптимізація бази даних MariaDB:

MariaDB — це серце Appwrite. Для високонавантажених систем може знадобитися тонке налаштування MariaDB. Це включає в себе параметри innodb_buffer_pool_size (для кешування даних у RAM), query_cache_size та інші. Ці параметри зазвичай налаштовуються у файлі my.cnf всередині контейнера MariaDB. Для внесення таких змін, можливо, потрібно буде створити кастомний образ Docker для MariaDB або використовувати монтування конфігураційного файлу.

5. Використання CDN для статичних файлів:

Якщо ваш застосунок активно використовує сховище файлів Appwrite та обслуговує багато статичних активів (зображення, відео), розгляньте можливість використання Content Delivery Network (CDN). Це значно знизить навантаження на ваш VPS та прискорить завантаження контенту для користувачів по всьому світу. Appwrite дозволяє налаштувати кастомний домен для статичних файлів, який можна направити на CDN.

Коли варто задуматися про виділений сервер?

Хоча VPS надає відмінну гнучкість та масштабованість для більшості проєктів, настає момент, коли його ресурсів стає недостатньо. Ось кілька ознак, коли варто розглянути перехід з VPS на виділений сервер:

  • Постійне високе завантаження CPU: Якщо ваш VPS постійно працює із завантаженням CPU 80-90% і вище, це явна ознака нестачі обчислювальних ресурсів.
  • Нестача оперативної пам'яті: Якщо Appwrite або база даних постійно використовують своп (swap), це призводить до значного уповільнення роботи. Додавання RAM на VPS може допомогти, але в якийсь момент виділений сервер запропонує більше пам'яті за кращу ціну.
  • Пікові навантаження: Якщо ваш застосунок відчуває різкі та часті пікові навантаження, які VPS не може ефективно обробляти, виділений сервер з більш потужним залізом забезпечить стабільність.
  • Вимоги до I/O диска: Для застосунків з інтенсивними операціями читання/запису в базу даних або файлове сховище, виділений сервер з високопродуктивними NVMe-дисками (можливо, в RAID-масиві) може запропонувати значно кращу продуктивність, ніж VPS зі спільним дисковим сховищем.
  • Специфічні вимоги безпеки або відповідності: Деякі стандарти безпеки або регуляторні вимоги можуть диктувати використання фізично ізольованого обладнання.
  • Необхідність горизонтального масштабування: Для дуже великих проєктів, де потрібно запуск кількох екземплярів Appwrite за балансувальником навантаження, виділений сервер може стати основою для такої кластерної архітектури.

Valebyte.com пропонує широкий спектр виділених серверів, які можуть забезпечити максимальну продуктивність та надійність для найвимогливіших Appwrite-інсталяцій. Перехід на виділений сервер дає вам ексклюзивний доступ до всіх фізичних ресурсів машини, усуваючи "шумних сусідів" та забезпечуючи передбачувану продуктивність.

Висновки

Встановлення, налаштування та обслуговування Appwrite на VPS — це потужне рішення для розробників, які прагнуть отримати повний контроль над своїм бек-ендом, оптимізувати витрати та забезпечити високу продуктивність. Дотримуючись наведених інструкцій, ви зможете розгорнути стабільне та безпечне середовище Appwrite, а регулярне резервне копіювання та своєчасні оновлення гарантують довгострокову надійність вашої платформи. Для забезпечення оптимальної продуктивності та масштабованості, особливо для продакшн-застосунків, рекомендуємо вибирати VPS з NVMe-дисками та достатнім обсягом RAM, що надаються Valebyte.com.

Готові вибрати сервер?

VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.