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

Установка TastyIgniter на Raspberry Pi: полный пошаговый гид

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

Кому пригодится это руководство

  • Владельцам небольших кафе и ресторанов, которые хотят дешёвое локальное решение для онлайн-заказов и бронирования.
  • Администраторам, желающим развернуть TastyIgniter на доступном оборудовании вроде Raspberry Pi.

Важно: этот гид предполагает базовые навыки работы с командной строкой Linux, SSH и понимание, что такое веб-сервер и база данных.

Краткое содержание

  • Подготовка Raspberry Pi и требования
  • Установка PHP, Apache и расширений
  • Подготовка и настройка MariaDB для TastyIgniter
  • Установка TastyIgniter и запуск веб-установщика
  • Базовая конфигурация сайта, расширения и интеграции
  • Публикация домена, SSL и удаление установщика
  • Тестирование, отладка и типичные ошибки
  • Рекомендации по безопасности, резервному копированию и обслуживанию
  • Чек-листы ролей и критерии приёмки

Требования и подготовка

Перед началом убедитесь, что у вас есть:

  • Raspberry Pi с установленной ОС Raspberry Pi OS (рекомендуется 64‑битная версия для современных моделей), актуальные обновления и сетевой доступ.
  • Доступ по SSH или локальная клавиатура/монитор для работы на устройстве.
  • Основная конфигурация веб‑сервера: если вы ещё не настраивали Pi как веб‑сервер, сначала выполните руководство по подготовке Raspberry Pi в качестве веб‑сервера.
  • Домен (опционально) и публичный IP для публикации сайта в интернет.

Мини‑словарь: PHP — язык, на котором написан TastyIgniter; Apache — веб‑сервер; MariaDB — сервер базы данных.

Подготовка: обновление системы

Перед установкой обновите пакеты:

sudo apt update && sudo apt upgrade -y

Рекомендуется перезагрузить систему после крупного обновления:

sudo reboot

Установка PHP 8.2 и расширений

TastyIgniter требует PHP 8 или выше. На Raspberry Pi мы установим PHP 8.2 через репозиторий SURY (Debian/Ubuntu). Выполните команды по очереди:

# Добавляем GPG‑ключ репозитория 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 -y php8.2 libapache2-mod-php8.2

# Устанавливаем необходимые расширения для TastyIgniter
sudo apt install -y php8.2-mysql php8.2-curl php8.2-openssl php8.2-dom php8.2-gd php8.2-zip

Примечание: некоторые пакеты (например, php8.2-openssl) могут быть объединены в другие метапакеты в зависимости от репозитория. Если какой‑то пакет не найден, проверьте доступные PHP 8.2 пакеты через apt search php8.2-*

Включение модуля rewrite в Apache и разрешение .htaccess

TastyIgniter использует файл .htaccess. По умолчанию Apache может игнорировать .htaccess — надо включить модуль rewrite и разрешить использование переопределений.

sudo a2enmod rewrite
sudo systemctl restart apache2

Отредактируйте основной конфигурационный файл Apache, чтобы AllowOverride разрешал .htaccess:

sudo nano /etc/apache2/apache2.conf

Найдите секцию вида:


    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

Измените AllowOverride None на AllowOverride All, сохраните и выйдите (Ctrl+O, Enter, Ctrl+X). Затем перезапустите Apache:

sudo systemctl restart apache2

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

Composer: менеджер зависимостей PHP

TastyIgniter использует Composer для управления зависимостями. Установите Composer глобально:

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

Проверьте установку:

composer --version

Скачивание и размещение TastyIgniter

Скачайте установщик TastyIgniter и распакуйте его в корень веб‑папки Apache (/var/www/html):

wget https://github.com/tastyigniter/setup/archive/master.zip
unzip master.zip
sudo mv setup-master/* /var/www/html/

Затем измените владельца файлов на пользователя Apache (www‑data) для корректной работы и записи:

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

Важно: при необходимости скорректируйте права каталогов storage и cache согласно документации TastyIgniter (обычно 775 или 775 для group write).

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

TastyIgniter использует MariaDB/MySQL. Установите MariaDB и создайте базу данных и пользователя:

sudo apt install -y mariadb-server
sudo mariadb

В интерактивной консоли MariaDB выполните (нажимайте Enter после каждой строки):

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

Примечание: замените ‘topsecretpassword’ на надежный пароль. Не храните пароль в открытом виде на общедоступном устройстве.

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

Запуск веб‑установщика TastyIgniter

Откройте браузер и перейдите по адресу:

http://your-pi-local-ip-address/setup.php

Вы увидите экран установки TastyIgniter. Нажмите Install TastyIgniter, примите лицензию MIT и проходите шаги мастера.

Мастер проверит системные требования. Если какие‑то проверки не пройдены, исправьте замечания (например, права на директории или отсутствующие расширения PHP) и продолжите.

При настройке базы данных используйте host = localhost, имя базы и пользователя tastyigniter и пароль, который вы выбрали ранее. Префикс таблиц и порт обычно можно оставить по умолчанию.

Проверка требований сервера в мастере установки

Далее задайте параметры ресторана и админ‑аккаунта: имя администратора, e‑mail, название ресторана и пароль. Выберите режим «single location» для одного заведения и решите, устанавливать ли демо‑данные (полезно для знакомства с функционалом).

Если хотите пользоваться плагинами из Marketplace, введите Site Carte Key (можно пропустить и добавить позже).

После завершения установки вы войдёте в админ‑панель по адресу:

http://your-pi-ip-address/admin/login

Базовая конфигурация: расширения, локации, меню

Панель управления чистая и структурированная. Для полного функционала установите набор бесплатных расширений:

  • cart
  • coupons
  • frontend
  • local
  • pages
  • payregister
  • reservation
  • user

Перейдите System > Extensions, найдите перечисленные расширения и установите их.

Добавьте локации заведений через System > Locations: укажите адреса, часы работы и зоны доставки. В настройках локации можно задать радиус доставки.

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

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

В разделе Sales > Payments подключите платежные шлюзы (PayPal, Stripe, Mollie, Square). Для каждого провайдера получите API‑ключи у соответствующей службы и вставьте их в поля настроек. TastyIgniter сам не должен хранить данные карт — используйте сторонние PCI‑совместимые платежные шлюзы.

Добавление расширений в TastyIgniter

Создайте учётные записи сотрудников в System > Staff, распределите по группам и ролям, ограничьте доступ по необходимости. Это позволить маршрутизировать заказы к повару, кассиру или доставке без вашего прямого вмешательства.

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

Публикация сайта и получение SSL

Когда вы готовы публиковать сайт в сеть:

  1. Зарегистрируйте домен и укажите в DNS «A»‑запись с вашим публичным IP (host = @, value = ваш публичный IP).
  2. Удалите файл setup.php на сервере, чтобы не позволить злоумышленникам переустановить систему:
sudo rm /var/www/html/setup.php
  1. Создайте конфигурацию виртуального хоста Apache для домена:
cd /etc/apache2/sites-available
sudo nano domain.conf

Вставьте минимальную конфигурацию:


    ServerName your-domain-name.tld
    DocumentRoot /var/www/html/
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

Сохраните, затем включите сайт и перезапустите Apache:

sudo a2ensite domain.conf
sudo systemctl restart apache2
  1. Установите Certbot и получите сертификат Let’s Encrypt:
sudo apt install -y certbot python3-certbot-apache
sudo certbot

Следуйте интерактивным подсказкам: выберите домен, разрешите перенаправление HTTP->HTTPS. После успешного завершения все соединения будут защищены SSL.

Рекомендации по безопасности

  • Удалите или защитите файл setup.php после установки.
  • Обновляйте систему и PHP‑пакеты регулярно (apt update && apt upgrade).
  • Отключите ненужные сервисы и закройте неиспользуемые порты через UFW (firewall):
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
  • Установите Fail2Ban для защиты от брутфорса по SSH и к панели администратора:
sudo apt install -y fail2ban
  • Не храните данные карт на сервере. Используйте интеграции с PCI‑совместимыми шлюзами.
  • Регулярно просматривайте логи Apache и TastyIgniter:
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/apache2/access.log
  • Настройте бэкапы (см. следующий раздел).

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

Регулярные бэкапы критичны для бизнеса.

Минимум резервирования:

  • Файлы сайта: /var/www/html/
  • База данных MariaDB

Пример простого скрипта для бэкапа (сохраните как /usr/local/bin/backup_tastyigniter.sh и сделайте исполняемым):

#!/bin/bash
BACKUP_DIR=/var/backups/tastyigniter
mkdir -p "$BACKUP_DIR"
DATE=$(date +"%F-%H%M")
# Бэкап файлов
sudo tar -czf "$BACKUP_DIR/tastyigniter-files-$DATE.tar.gz" -C /var/www html
# Дамп базы
sudo mysqldump -u root tastyigniter > "$BACKUP_DIR/tastyigniter-db-$DATE.sql"
# Очистка старых бэкапов старше 30 дней
find "$BACKUP_DIR" -type f -mtime +30 -delete

Добавьте cron‑задачу для ежедневного бэкапа:

sudo crontab -e
# Вставьте строку для ежедневного бэкапа в 3:00
0 3 * * * /usr/local/bin/backup_tastyigniter.sh

Храните бэкапы вне сервера (SFTP, внешний диск или облако).

Оптимизация производительности на Raspberry Pi

Raspberry Pi — ограниченный ресурс; примените оптимизации:

  • Включите OPcache для PHP (увеличивает скорость обработки PHP‑скриптов).
  • Установите разумные лимиты памяти PHP в php.ini (memory_limit, post_max_size, upload_max_filesize).
  • Добавьте небольшой swap, если ОЗУ ограничена (но учтите износ SD‑карты):
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • Используйте качественную SD‑карту или SSD через USB для лучшей надёжности.
  • Рассмотрите использование Nginx в роли обратного прокси через Apache для снижения нагрузки.

Тестирование: размещение тестовых заказов

Проверьте весь цикл: от публичного меню до отображения заказа в админ‑панели и изменения статусов сотрудниками. Попросите семью или коллег сделать тестовые заказы, оплатить через интегрированный шлюз (в тестовом режиме) и отследите их в Sales.

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

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

Отладка: типичные ошибки и решения

  • 500 Internal Server Error или белая страница:

    • Проверьте логи Apache: /var/log/apache2/error.log
    • Убедитесь, что права на директории корректны и PHP‑модули установлены.
  • Ошибка подключения к базе данных:

    • Проверьте имя хоста, имя пользователя и пароль в настройках мастера.
    • Убедитесь, что MariaDB запущена: sudo systemctl status mariadb
  • .htaccess игнорируется:

    • Проверьте AllowOverride All для /var/www/ и включён ли модуль rewrite.
  • Composer не установлен или зависимости не подтянулись:

    • Проверьте composer –version и запустите composer install в директории проекта при необходимости.
  • Карта Google не отображается:

    • Проверьте API‑ключ и ограничения доменов в настройках Google Cloud Console.

Альтернативные подходы и когда этот способ не подходит

  • Если вы ожидаете очень высокую нагрузку (сотни заказов в минуту), самохостинг на Raspberry Pi может оказаться недостаточно производительным — рассмотрите VPS или облачный хостинг.
  • Если вы не хотите заниматься администрированием сервера и обновлениями, выберите SaaS‑решение с поддержкой и автоматикой.
  • Если требуются сложные интеграции с POS‑терминалами и цепочкой поставок, возможно, стоит смотреть коммерческие POS‑системы с официальной поддержкой.

Чек-листы по ролям

Владелец ресторана:

  • Зарегистрировать домен и ключи для платежей.
  • Принять лицензионное соглашение и проверить внешний вид меню.
  • Утвердить политику возвратов и настройки оплаты.

Администратор (технический):

  • Установить сервер, PHP, MariaDB, Composer.
  • Настроить SSL и резервное копирование.
  • Обновлять систему и контролировать логи.

Менеджер/Официант:

  • Настроить профили сотрудников и роли.
  • Тестировать процесс заказа и статусы.
  • Проверять отчёты о продажах и инвентаре.

Повара/Кухня:

  • Проверять входящие заказы и статусы блюд.
  • Подтверждать время готовки и статусы выполнения.

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

  • Сайт доступен по HTTPS и корректно отвечает на запросы.
  • Вход в админ‑панель работает для созданного админа.
  • Тестовый заказ появляется в разделе Sales и может менять статус.
  • Резервная копия файлов и базы выполняется по расписанию.

Безопасность данных и соответствие требованиям приватности

  • Не храните данные платёжных карт — используйте внешние платежные шлюзы.
  • Собирайте минимальный объём персональных данных (имя, контакт) и храните их безопасно.
  • При работе с персональными данными граждан ЕС убедитесь в соблюдении принципов GDPR: правка и удаление данных по запросу, законное основание для хранения.

Важно: локальные законы о хранении персональных данных могут требовать дополнительных мер — проконсультируйтесь со специалистом по защите данных при необходимости.

Сопровождение и обслуживание

  • Плановое обслуживание: обновления ОС и PHP не реже раз в месяц.
  • Мониторинг свободного места и состояния диска (df -h) и использование памяти (free -m).
  • Тестирование восстановления из резервной копии раз в квартал.

Полезные команды быстрого доступа

  • Перезапуск Apache: sudo systemctl restart apache2
  • Проверка статуса MariaDB: sudo systemctl status mariadb
  • Просмотр логов Apache: sudo tail -f /var/log/apache2/error.log
  • Проверка установленных PHP‑модулей: php -m

Шаблон плана запуска (микро‑roadmap на 4 недели)

  • Неделя 1: Подготовка Raspberry Pi, установка LAMP, базовая безопасность.
  • Неделя 2: Установка TastyIgniter, первичная конфигурация меню и локаций.
  • Неделя 3: Интеграция платежей и карт, тестирование заказов и ролей сотрудников.
  • Неделя 4: Публичная публикация, SSL, мониторинг и резервное копирование.

Короткое резюме

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


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

Короткие ссылки для изучения:

  • Официальный сайт TastyIgniter — для подробного обзора функционала и плагинов.
  • Документация PHP и MariaDB — если появляются ошибки на этапе установки.

Конец руководства.

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

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

Как создать опрос в LinkedIn — руководство
Социальные сети

Как создать опрос в LinkedIn — руководство

Android без Google — полное руководство
Mobile

Android без Google — полное руководство

Сохранять и редактировать PDF в Apple Books
Руководство

Сохранять и редактировать PDF в Apple Books

Как ускорить Android: проверенные советы
Android.

Как ускорить Android: проверенные советы

IFTTT Filters: умные апплеты
Автоматизация

IFTTT Filters: умные апплеты

Monitor Test — проверить цвет и контраст
Мониторы

Monitor Test — проверить цвет и контраст