Архив для установки — это весь магазин: движок, модули, тема и PHP-библиотеки. Composer и Node на сервере не нужны. Те же шаги лежат в архиве, в INSTALL.ru.md.
Проверить архив
Рядом с архивом лежат его sha256 и подпись — Ed25519 над sha256, тем же ключом, что подписывает обновления:
sha256sum -c torgash-0.1.7-install.zip.sha256
Ubuntu 24.04 по шагам
# PHP 8.5 (PPA ondrej), PostgreSQL 18 (PGDG), Caddy
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install -y php8.5-fpm php8.5-cli php8.5-pgsql php8.5-mbstring php8.5-intl \
php8.5-gd php8.5-curl php8.5-zip php8.5-bcmath php8.5-xml php8.5-opcache unzip
sudo apt install -y postgresql-common && sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
sudo apt install -y postgresql-18
sudo apt install -y caddy # репозиторий — caddyserver.com/docs/install
# Файлы
sudo mkdir -p /var/www && cd /var/www
sudo unzip torgash-0.1.7-install.zip && sudo mv torgash-0.1.7 torgash
sudo chown -R www-data:www-data /var/www/torgash
# Пользователь базы, которому можно создать базу магазина
sudo -u postgres createuser --createdb --pwprompt torgash
Прежде чем что-то записать, установщик проверяет сервер:
php artisan torgash:install --check --db-username=torgash --db-password=…
Установка
В браузере. Направьте домен на папку public (пример для Caddy ниже) и откройте его — мастер /install сделает всё то же, что команда. Сначала он спросит код из файла storage/app/install-key: кто может прочитать файлы сервера, тот и владелец. Ставит он по шагу на запрос, так что ограничение хостинга по времени установку не оборвёт.
Из консоли:
cd /var/www/torgash
sudo -u www-data php artisan torgash:install \
--url=https://shop.example.com --name="Мой магазин" --locale=ru --currency=UAH \
--db-username=torgash --db-password='…' --db-database=torgash \
--modules=store --owner=you@example.com
Чего нет в флагах — спросит. --modules: minimal, store (по умолчанию) или all, либо id модулей через запятую. Без --owner-password пароль придумывается и показывается один раз. Если что-то упало — исправьте и запустите ту же команду ещё раз: установщик продолжит с того места.
Если базу создаёте сами
Установщик создаёт базу сам. Если у пользователя нет права создавать базы, создайте её так — с ICU-локалью und и локалью системы для LC_COLLATE / LC_CTYPE:
CREATE DATABASE torgash TEMPLATE template0 ENCODING 'UTF8'
LOCALE_PROVIDER icu ICU_LOCALE 'und' LC_COLLATE 'C.UTF-8' LC_CTYPE 'C.UTF-8';
На Windows вместо C.UTF-8 — und. Только не локаль C: под ней PostgreSQL не считает кириллицу буквами, и поиск работает наполовину без единой ошибки. Установщик проверяет русский поиск до начала установки.
Веб-сервер
/etc/caddy/Caddyfile:
shop.example.com {
root * /var/www/torgash/public
encode zstd gzip
php_fastcgi unix//run/php/php8.5-fpm.sock
file_server
}
После sudo systemctl reload caddy Caddy сам получит HTTPS-сертификат. Не давайте веб-серверу подменять страницы ошибок PHP: магазин рисует свои, а закрытая витрина отвечает 503 намеренно.
Фоновая работа
Письмам, импорту и ночным задачам нужен планировщик — одна строка cron:
echo '* * * * * www-data cd /var/www/torgash && php artisan schedule:run >> /dev/null 2>&1' \
| sudo tee /etc/cron.d/torgash
Без отдельного воркера очереди планировщик сам запускает короткий каждую минуту, так что на хостинге без постоянных процессов этого достаточно. Пример службы systemd для воркера — в INSTALL.md; с ней напишите в .env QUEUE_WORKER=external. Живы ли оба, видно в «Админка → Система».
Потом
- Обновления — «Система → Обновления», подробнее на странице про обновления.
- Почта, оплата, доставка — в админке.
- Резервные копии — «Система → Резервные копии»; восстановление только из консоли:
php artisan torgash:backup-restore. - Забыт пароль владельца:
php artisan torgash:admin you@example.com.