Гид по технологиям

Установка TastyIgniter на Raspberry Pi

9 min read Ресторанное ПО Обновлено 05 Jan 2026
TastyIgniter на Raspberry Pi — установка и настройка
TastyIgniter на Raspberry Pi — установка и настройка

интерьер ресторана

Индустрия ресторанного бизнеса жестока, особенно для небольших заведений. Помимо приготовления и подачи пищи, управления персоналом и проверки санитарных требований, нужно ещё конкурировать с площадками, у которых есть удобный онлайн-заказ и резервирование столиков.

TastyIgniter — это простое в использовании, «всё в одном», само-хостящееся серверное приложение для ресторанов. Оно позволяет показать меню, принимать платежи, бронировать столики и управлять заказами и персоналом. В этом материале подробно описано, как развернуть TastyIgniter на Raspberry Pi и подготовить сайт к боевой эксплуатации.

Перед началом

Короткий список необходимого перед началом:

  • Raspberry Pi с поддерживаемой ОС (Raspbian / Raspberry Pi OS) и доступом в сеть.
  • Доменное имя (по желанию) и публичный IP для публикации сайта.
  • Минимум 4 ГБ свободного места на SD/SSD и корректные права доступа.
  • Резервная копия важных данных на случай ошибки.

Важная заметка: это руководство ориентировано на небольшие заведения и самоуправляемые инсталляции. Для высоконагруженных сайтов рассматривайте арендованный VPS или облачный хостинг.

Основные понятия

  • TastyIgniter — приложение для управления меню, заказами и бронированиями.
  • Apache — веб-сервер, который обслуживает PHP-приложения.
  • PHP 8+ — среда выполнения скриптов, требуется для TastyIgniter.
  • MariaDB — реляционная база данных, совместимая с MySQL.

Установка PHP, Apache и зависимостей

TastyIgniter требует PHP версии 8 или выше. На Raspberry Pi мы установим PHP 8.2 из репозитория. Сначала добавим открытый ключ и репозиторий PHP:

sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg


echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Обновите индекс пакетов и установите PHP 8.2 как модуль Apache:

sudo apt update


sudo apt install php8.2 libapache2-mod-php8.2

Интегрируйте PHP с MariaDB и добавьте расширения, которые потребуются для TastyIgniter:

sudo apt install php8.2-mysql php8.2-curl php8.2-openssl php8.2-dom php8.2-gd php8.2-zip

Включите модуль перезаписи URL в Apache:

sudo a2enmod rewrite

По умолчанию Apache игнорирует файлы .htaccess. Отредактируйте глобальную конфигурацию Apache, чтобы разрешить переопределение настроек:

sudo nano /etc/apache2/apache2.conf

Найдите секцию, начинающуюся с:

И измените AllowOverride None на AllowOverride All.

измените значение AllowOverride в конфигурации Apache

Сохраните изменения (Ctrl + O), выйдите (Ctrl + X), затем перезапустите Apache:

sudo service apache2 restart

Примечание: альтернативный и часто более производительный путь — Nginx + PHP-FPM. Если вы предпочитаете Nginx, используйте PHP-FPM и настройте сокет или порт для связи между Nginx и PHP.

Установка Composer и загрузка TastyIgniter

Composer понадобится для установки зависимостей:

wget -O composer-setup.php https://getcomposer.org/installer && sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Скачайте мастер установки TastyIgniter:

wget https://github.com/tastyigniter/setup/archive/master.zip

Распакуйте архив:

unzip master.zip

Переместите содержимое архива в директорию Apache:

sudo mv setup-master/* /var/www/html/

Передайте права на файлы пользователю Apache (www-data):

sudo chown -R www-data:www-data /var/www/html/

Настройка базы данных (MariaDB)

TastyIgniter требует базу данных. Установите и запустите MariaDB (если не установлен):

sudo apt install mariadb-server

Запустите безопасную настройку MariaDB:

sudo mysql_secure_installation

Затем войдите в MariaDB:

sudo mariadb

создание базы данных и пользователя для TastyIgniter в MariaDB

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

CREATE DATABASE tastyigniter;
CREATE USER tastyigniter IDENTIFIED BY 'topsecretpassword';
GRANT USAGE ON *.* TO tastyigniter@localhost IDENTIFIED BY 'topsecretpassword';
GRANT ALL privileges ON tastyigniter.* TO tastyigniter@localhost;
FLUSH PRIVILEGES;
quit;

Совет по безопасности: замените ‘topsecretpassword’ на долгую случайную фразу и храните её в менеджере паролей.

Запуск мастера установки через веб-интерфейс

Откройте браузер и перейдите по адресу your-pi-local-ip-address/setup.php. Нажмите кнопку Установить TastyIgniter и примите лицензию MIT.

проверка системных требований TastyIgniter в мастере установки

Мастер проверит системные требования. Перейдите к настройкам базы данных. Хост, порт и префикс таблиц обычно предзаполнены. Введите имя базы данных и имя пользователя tastyigniter и пароль, который вы задали в MariaDB.

настройка приложения TastyIgniter — ввод данных ресторана и администратора

Далее задайте базовые параметры ресторана и учётную запись администратора: имя, логин администратора, название ресторана и email. Система предложит ввести ключ Site Carte Key для доступа к маркетплейсу плагинов TastyIgniter. Режим “single location” подходит для одного заведения. Параметр “install demo data” заполнит сайт тестовыми записями — полезно для обучения.

Когда установка завершится, войдите в админку по адресу your-pi-ip-address/admin/login.

Базовая конфигурация в админ-панели

Панель управления в TastyIgniter интуитивна. Категории находятся в левой части интерфейса.

установка расширений TastyIgniter из раздела Система > Расширения

Рекомендуемые бесплатные расширения: cart, coupons, frontend, local, pages, payregister, reservation, user. Установите их через System > Extensions.

Добавьте локации ваших заведений в раздел Locations, задайте часы работы и зону доставки. Для отображения карты и радиуса доставки вам понадобится ключ Google Maps API. На бесплатном тарифе Google даёт примерно 28 500 загрузок карт в месяц — для небольшого заведения этого обычно хватает. Добавьте ключ в System > Settings > General.

В разделе Restaurant задайте меню, цены, столы и вместимость, категории и временные настройки приёмов пищи.

В System > Settings > Sales настройте логику приёма заказов и бронирований. Можно разрешить заказы без учётной записи, ограничить зону доставки и выбрать автоматическое либо ручное подтверждение заказов.

сводка заказов в админ-панели TastyIgniter

Заказы и бронирования отображаются в соответствующем разделе Sales. Рекомендуется держать эти страницы открытыми в отдельных вкладках. Отсюда вы сможете назначать задачи персоналу и менять статусы заказов.

В разделе Payments включите способы приёма платежей: cash, PayPal, Stripe, Mollie, Square и другие. Получите API-ключи у провайдеров и добавьте их в соответствующие поля — новые способы оплаты появятся в меню доставки.

создание нового пользователя в TastyIgniter

Создайте учётные записи для персонала в System > Staff, распределите по группам и ролям и настройте доступ. После этого вы сможете отправлять заказы конкретным группам или сотрудникам — это упрощает работу и разгружает администрацию.

TastyIgniter формирует счета, отчёты по продажам и базовые аналитические данные. Для полного перечня возможностей смотрите официальную документацию и маркетплейс расширений.

Публикация сайта и настройка домена

Когда вы уверены, что сайт готов, зарегистрируйте домен и в панели регистратора создайте A-запись с хостом @ и значением вашего публичного IP. Установите минимальный TTL.

На Raspberry Pi удалите файл setup.php, чтобы заблокировать повторный запуск мастера установки:

sudo rm /var/www/html/setup.php

Создайте новый конфигурационный файл Apache для вашего домена:

cd /etc/apache2/sites-available/


sudo nano domain.conf

Вставьте в файл:


    
    ServerName your-domain-name.tld
    
    DocumentRoot /var/www/html/

Сохраните и включите сайт:

sudo a2ensite domain.conf

sudo service apache2 restart

sudo certbot

Certbot предложит выбрать сайт и установить перенаправление на HTTPS. Выберите redirect. После этого все соединения будут автоматически обновляться на SSL.

Тестовые заказы и приёмка

заказ клиента в интерфейсе TastyIgniter

Проведите тестирование как со стороны клиента, так и со стороны администратора. Попросите знакомых сделать несколько заказов и проверьте их появление в админке. Тестируйте разные сценарии: оплата онлайн, оплата наличными, бронирование столиков, отмена заказов.

Мы использовали систему в рамках одной семейной вечеринки и подтверждаем, что базовые функции работают стабильно при небольших нагрузках.

Рекомендации по безопасности и жёсткие настройки

Важно защитить сайт и данные клиентов. Основные шаги:

  • Отключите прямой доступ к конфигурационным файлам. Установите права 750 для каталогов и 640 для файлов конфигурации.
  • Запретите исполнение PHP в директориях загрузок (uploads), если это применимо.
  • Настройте брандмауэр ufw:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  • Установите fail2ban и включите фильтры для SSH и веб-форм.
  • Регулярно обновляйте систему и пакеты: sudo apt update && sudo apt upgrade.
  • Держите резервные копии базы данных и файлов сайта за пределами Raspberry Pi.
  • Ограничьте доступ к админке по IP, если возможно, или включите двухфакторную аутентификацию через плагин.

Важно: минимизируйте привилегии системных пользователей и используйте сильные пароли.

Резервное копирование и восстановление

Регулярное резервное копирование — ключ к быстрому восстановлению. Минимальная стратегия:

  • Ежедневный дамп базы данных:
mysqldump -u tastyigniter -p'topsecretpassword' tastyigniter > /var/backups/tastyigniter-$(date +%F).sql
  • Ежедневная синхронизация файлов сайта на удалённый сервер или в облако (rsync, rclone).
  • Тестируйте процесс восстановления не реже одного раза в квартал.

Пример cron для ежедневного дампа в 03:00:

0 3 * * * /usr/bin/mysqldump -u tastyigniter -p'topsecretpassword' tastyigniter > /var/backups/tastyigniter-$(date +\%F).sql

Замените пароль на безопасное хранение, например, конфигурационный файл с ограниченными правами или переменную окружения.

Советы по производительности

  • Для небольшого трафика mod_php и Apache подойдут. Для лучшей масштабируемости переходите на Nginx + PHP-FPM.
  • Включите кеширование на стороне сервера и плагинов, где это возможно.
  • Следите за использованием памяти и диска: Raspberry Pi с SD-картой может деградировать при большом числе операций записи. Рассмотрите использование внешнего SSD.

Конфиденциальность и соответствие (GDPR и локальные правила)

Если вы храните данные клиентов (имена, телефон, email, адреса доставки), учтите следующее:

  • Информируйте клиентов о том, какие данные вы собираете, как долго их храните и с какой целью — добавьте страницу Privacy Policy.
  • Получайте явное согласие на маркетинговые рассылки.
  • Обеспечьте запрос на удаление данных по требованию клиента.
  • Передавайте платежные данные только через сертифицированных платёжных провайдеров — не храните номер карты на сервере без соответствующего PCI DSS соответствия.

Это не юридическая консультация — при сомнениях проконсультируйтесь с юристом.

Как решать распространённые ошибки

  • 403 Forbidden после переноса файлов: проверьте права и владельца (www-data). Убедитесь, что Apache имеет доступ.
  • Ошибка подключения к базе: проверьте host (localhost), пароль, наличие пользователя и GRANT’ы.
  • Отсутствие модулей PHP: проверьте расширения (php -m) и установите недостающие через apt.
  • Ошибки композитора (memory limit): запустите composer с увеличенным лимитом памяти: php -d memory_limit=-1 /usr/local/bin/composer install.
  • .htaccess игнорируется: проверьте AllowOverride All и перезапустите Apache.

Альтернативные подходы

  • Хостинг на VPS или облаке вместо Raspberry Pi для лучшей доступности и SLA.
  • Использование Docker-контейнеров для изоляции сервиса и упрощения миграции.
  • Nginx + PHP-FPM для лучшей производительности под нагрузкой.

Мини-методология развёртывания

  1. Подготовка среды (Аппарат, ОС, сеть).
  2. Установка зависимости (Apache/Nginx, PHP, MariaDB).
  3. Установка приложения и заполнение базы.
  4. Тестирование функционала (платежи, заказы, брони).
  5. Жёсткая настройка безопасности и SSL.
  6. Резервное копирование и мониторинг.

Критерии приёмки

  • Админка доступна по HTTPS и защищена.
  • Заказ может быть оформлен клиентом и отображается в админке.
  • Платежи проходят в тестовом режиме у выбранного провайдера.
  • Резервное копирование базы и файлов настроено и протестировано.
  • Права доступа персонала разграничены и проверены.

Чеклист ролей

Владелец:

  • Проверил домен и SSL.
  • Настроил политики резервного копирования.
  • Убедился в наличии политики конфиденциальности.

Менеджер:

  • Настроил меню и цены.
  • Проверил часы работы и зоны доставки.
  • Утвердил процессы обработки заказов.

Администратор IT:

  • Настроил брандмауэр и fail2ban.
  • Обновляет систему и следит за логами.
  • Резервирует данные и тестирует восстановление.

Повар/Front-of-house:

  • Тренируется в интерфейсе приёма заказов.
  • Проверяет статусы заказов и уведомления.

Когда это не подходит (контрпример)

  • Если у вас сеть из нескольких высоконагруженных заведений с большим количеством параллельных заказов — Raspberry Pi может не выдержать пиков без наружной балансировки или перехода в облако.
  • Если требуется соответствие PCI DSS для хранения карт — используйте сертифицированные решения платёжных провайдеров.

Перенос с другого хостинга на Pi

  • Экспортируйте дамп базы и файлы сайта.
  • Проверьте версии PHP и расширений на совпадение.
  • Восстановите дамп через mysql и перенесите файлы в /var/www/html.
  • Проверьте права и выполнение .htaccess.

Маленькая галерея крайних случаев

  • Проблемы со скоростью при использовании SD-карт — используйте SSD.
  • Прерывистые подключения к интернету — настройте резервный канал или уведомления о простоях.

Короткая проверка после развёртывания

  • Войти в админку.
  • Создать тестовый товар и оформить заказ.
  • Проверить назначение заказа сотруднику.
  • Просмотреть лог HTTPS и убедиться в отсутствии критических ошибок.

Заключение

TastyIgniter на Raspberry Pi — практичное решение для небольших кафе и ресторанов, которые хотят контролировать данные и избегать подписок SaaS. При правильной настройке, резервном копировании и мерах безопасности такой сайт будет надёжно работать в малых масштабах. Для роста и высокой нагрузки рассмотрите переход на облачные решения или более мощный хостинг.


FAQ

Вопрос: Подойдёт ли Raspberry Pi для боевой эксплуатации ресторана?

Ответ: Для небольших заведений и тестовой эксплуатации — да. Для крупной сети или высокой нагрузки лучше использовать VPS/облако.

Вопрос: Как часто нужно делать резервные копии?

Ответ: Ежедневно для базы данных и минимум раз в сутки для файлов сайта; чаще, если бизнес существенно зависит от онлайн-заказов.

Вопрос: Как обеспечить безопасность платежей?

Ответ: Не храните данные карт на своём сервере. Интегрируйтесь с проверенными платёжными шлюзами и используйте HTTPS.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Прыжки в Godot: механики и лучшие практики
Разработка игр

Прыжки в Godot: механики и лучшие практики

Исправление ошибки Internal PortAudio в Audacity
Аудио

Исправление ошибки Internal PortAudio в Audacity

Ускорьте печать в Windows с PowerToys
Советы

Ускорьте печать в Windows с PowerToys

Как удалить аккаунт Shazam — пошагово
Приложения

Как удалить аккаунт Shazam — пошагово

Windows 11: поддержка RAR, 7Z и других архивов
Windows

Windows 11: поддержка RAR, 7Z и других архивов

Как узнать версию Bluetooth в Windows и обновить до 5
Bluetooth

Как узнать версию Bluetooth в Windows и обновить до 5