Установка и обновление
StrangeCraft CMS ставится одной командой: скрипт install.sh сам подготовит
сервер, а всё остальное вы донастроите в браузере на странице /setup.
Этот раздел — про то, как установить CMS, как её обновлять и что делать
с лицензией.
Требования к серверу
Есть два сценария установки.
Свой VPS/выделенный сервер (рекомендуется):
- Ubuntu 20.04 / 22.04 / 24.04;
- доступ по SSH с правами root (
sudo); - в этом режиме установщик сам ставит всё окружение: nginx, PHP‑FPM, Node, cron и (по желанию) локальный MySQL — вам ничего доустанавливать не нужно.
Шаред‑хостинг (без root):
- PHP 8.2+ (в PATH доступен
php8.3илиphp8.4) с расширениямиcurl,mbstring,xml,gd,zipиpdo_mysql/pdo_sqlite; - база данных хостинга (MySQL) или SQLite;
- системные пакеты установщик не трогает; если чего‑то не хватает — он перечислит всё одним сводным отчётом.
База данных: MySQL 8 (рекомендуется для боевого сайта) или SQLite (подойдёт для небольшого проекта и знакомства с системой).
Совет: на своём сервере ставьте сайт в
/var/www/…. Каталоги/rootи/home/*обычно недоступны веб‑серверу (пользователюwww-data) — сайт будет отдавать 403. На слабых VPS с малым объёмом памяти добавьте к команде установкиCMS_CREATE_SWAP=1— скрипт создаст swap‑файл автоматически.
Быстрая установка одной командой
Если вы купили лицензию, вам выдали персональную команду с вашим ключом. Подключитесь к серверу по SSH и выполните её:
curl -fsSL "https://license.strangecraft.ru/download/install.sh?key=SC1…" | sudo bash
Ключ и адрес сервера обновлений уже «вшиты» в команду — все будущие обновления приходят автоматически по вашей лицензии.
CMS установится в текущий каталог. Чтобы поставить в конкретное место,
сначала перейдите туда или задайте переменную CMS_DIR:
cd /var/www/mysite && curl -fsSL "https://license.strangecraft.ru/download/install.sh?key=SC1…" | sudo bash
# или
curl -fsSL "…" | sudo CMS_DIR=/var/www/mysite bash
На интерактивном терминале установщик задаст пару вопросов (ставить ли локальный MySQL, тулчейн сборки лаунчера, почтовый сервер) — можно просто отвечать по подсказкам. В конце он напечатает главное:
Страница установки: http://ваш-ip/setup
Токен установки: a1b2c3…
Откройте эту страницу в браузере и завершите установку по шагам: токен →
база данных → администратор и название сайта. Подробно мастер описан в
разделе «Первые шаги». До завершения мастера весь сайт закрыт, после —
страница /setup отключается навсегда.
Установка без root (шаред‑хостинг) — та же команда, но без sudo.
После установки в панели хостинга укажите: корень сайта → …/public
(именно с /public на конце), PHP 8.2+ в режиме FastCGI/FPM, SSL.
Если на сервере стоит ISPmanager и установка идёт от root, установщик сам настроит сайт в панели: каталог документов, режим PHP и SSL‑сертификат Let's Encrypt. Если какой‑то шаг панель не приняла — в конце будут напечатаны инструкции для ручной донастройки.
Все переменные окружения
Переменные необязательны — установка работает и без них. Задаются перед
командой, например: curl -fsSL "…" | sudo CMS_DOMAIN=play.example.com bash.
| Переменная | По умолчанию | Что делает |
|---|---|---|
CMS_DOMAIN |
IP сервера | домен сайта (для nginx или вхоста панели) |
CMS_DIR |
каталог запуска | куда установить CMS |
CMS_DB |
(не задано) | предустановить БД до /setup: mysql — поставить локальный MySQL и создать базу (только root); sqlite — подготовить файл SQLite |
CMS_DB_HOST / CMS_DB_PORT / CMS_DB_DATABASE / CMS_DB_USERNAME / CMS_DB_PASSWORD |
— / 3306 / strangecraft_cms / — / — |
реквизиты внешней БД: установщик проверит подключение и подставит их в форму /setup |
CMS_DB_EXTERNAL |
0 |
1 (вместе с CMS_DB=mysql) — открыть локальную БД для внешних подключений (порт 3306). Небезопасно — ограничьте доступ по IP |
CMS_PANEL |
auto |
интеграция с панелью хостинга: auto | ispmanager | none |
CMS_PANEL_USER |
(автоопределение) | владелец вхоста при создании его в ISPmanager |
CMS_MANAGED_WEB |
(автоматически) | 1 — веб‑сервером управляет панель (nginx не трогать); 0 — принудительно настроить nginx самим |
CMS_PREBUILT_ASSETS |
0 |
1 — не собирать фронтенд, а скачать готовый архив из релиза (включается автоматически, когда npm недоступен) |
CMS_LAUNCHER_BUILD |
0 |
1 (только root) — заранее поставить тулчейн сборки лаунчера (зависимости и Wine для Windows‑сборок). Иначе кнопка «Собрать» в панели доустановит недостающее при первой сборке |
CMS_MAIL |
0 |
1 (только root) — поставить почтовый сервер (Postfix + Dovecot + OpenDKIM) под модуль «Почта» |
CMS_DNS |
— | опционально, см. раздел «DNS» вики |
CMS_MINIMAL |
0 |
1 — профиль «чистая установка»: только CMS, без дополнительных компонентов и без вопросов |
CMS_FULL |
0 |
1 — профиль «полная версия»: локальный MySQL + тулчейн лаунчера + почтовый сервер, без вопросов. Отдельные флаги (например, CMS_MAIL=0) переопределяют профиль |
CMS_CREATE_SWAP |
0 |
1 — создать swap‑файл на слабых VPS (пригодится с CMS_DB=mysql) |
Обновление
CMS раз в час сама сверяет свою версию с релизами. Когда выходит новая версия, в админ‑дашборде появляется баннер «Доступно обновление» с кнопкой «Обновить сейчас» — это самый простой способ.
Что важно знать:
- обновление идёт в фоне: сайт ненадолго уходит в режим обслуживания, затем автоматически возвращается; ход обновления виден в журнале обновлений в админке;
- обновления доступны только с действующей лицензией — если она истекла,
сначала продлите её (страница
/license); - ваши данные обновление не трогает: файл
.env, база данных и весь каталогstorage(загруженные скины, сборки лаунчера, картинки, темы) остаются на месте — заменяется только код CMS; - после обновления фоновый воркер очередей перезапускается автоматически.
Дополнительно:
- автообновление: включите его в настройках админки — новые версии будут ставиться без вашего участия;
- если обновление по какой‑то причине не устанавливается — обратитесь в поддержку.
Лицензия
Ключ и его продление
При установке ключ прописывается автоматически — отдельно вводить его не нужно. Продлить или заменить ключ можно в любой момент:
- На работающем сайте — откройте страницу
/license, вставьте новый ключ и подтвердите. Страница доступна даже когда сайт заблокирован из‑за лицензии, вход не требуется. - В админке — вкладка Лицензия (видна только суперадминистратору) показывает текущий статус и срок действия.
Ключ — длинная строка, начинающаяся с SC1.; копируйте его целиком. Если
сайт пишет «Ключ не прошёл проверку подписи» — сверьте, что скопировали его
без пропусков.
Что происходит при истечении
- За 14 дней до конца срока статус меняется на «скоро истекает» — сайт и обновления работают как обычно, это напоминание вовремя продлить ключ.
- После даты истечения сайт блокируется: посетители видят страницу
с сообщением о лицензии, а вам остаётся доступна страница
/licenseдля ввода нового (продлённого) ключа — после активации сайт сразу возвращается к жизни.
Кроме того, CMS сверяется с лицензионным сервером каждые 15 минут. Если связи нет дольше ~2 дней, сайт блокируется со статусом «нет связи с сервером лицензий». Обычно это означает, что сервер лицензий недоступен из вашей сети — проверьте исходящие соединения.
Решения поставщика лицензии (смена тарифа, блокировка или снятие блокировки) доезжают быстрее: сервер лицензий стучится к копии сам, и она сверяется в ту же секунду. Пинок ничего не решает — он лишь повод сверитьcя, вердикт по-прежнему приезжает подписанным в ответе на запрос самой копии. Если копия в этот момент недоступна, решение применится очередной сверкой.
Тариф и количество копий
Лицензия выдаётся на тариф — он определяет, какие модули CMS вам доступны и на скольких серверах можно поднять копию сайта.
- Модули вне тарифа помечены в Админка → Модули как «нет в тарифе» и не включаются. Расширили тариф — модули становятся доступны сами, ничего переустанавливать не нужно.
- Если копий по лицензии больше разрешённого, лишние блокируются со статусом «превышен лимит копий». Перенесли сайт на другой сервер и старая копия занимает место — попросите поставщика «забыть» её.
Ограничение доступа к панели
Поставщик лицензии может временно закрыть доступ к админ-панели конкретной установки (например, при задолженности). В этом случае сайт, игровые сервисы и магазин продолжают работать, а при входе в админку показывается страница с причиной ограничения и просьбой связаться с поставщиком. После снятия ограничения панель открывается сама в течение нескольких минут — никаких действий с вашей стороны не требуется.
Перенос на другой сервер
Переезд сводится к трём вещам: .env + база данных + каталог storage.
На старом сервере:
- В админке откройте Настройки → Опасная зона и нажмите
«Выгрузить настройки и секреты» — все пароли, ключи и токены
сохранятся в файл
~/strangecraft-cms-secrets.txtи скачаются вам. Это ваша страховка на случай, если что‑то из.envпотеряется. - Скопируйте файл
.envиз каталога сайта. - Сделайте резервную копию базы данных:
- MySQL:
mysqldump -u <пользователь> -p <имя_базы> > backup.sql; - SQLite: просто скопируйте файл
database/database.sqlite.
- MySQL:
- Скопируйте каталог
storage/целиком (скины, сборки лаунчера, загруженные картинки, логи).
На новом сервере:
-
Установите CMS обычной командой установки (см. выше) — она подготовит окружение (nginx, PHP, cron, воркер очередей).
-
Замените свежий
.envвашим сохранённым, а каталогstorage/— вашей копией. -
Восстановите базу: MySQL —
mysql -u <пользователь> -p <имя_базы> < backup.sql; SQLite — верните файлdatabase/database.sqliteна место. Если адрес или пароль БД на новом сервере другие — поправьте их в.env. -
Верните права веб‑серверу и сбросьте кэш конфигурации (от root):
chown -R www-data:www-data /путь/к/сайту cd /путь/к/сайту && sudo -u www-data php artisan config:clear -
Направьте домен (DNS A‑запись) на новый сервер.
Мастер /setup проходить заново не нужно — установка уже «завершена»
внутри вашей базы данных.