Crater на Ubuntu 24.04: пошаговая установка
Если вам нужен инструмент для выставления счетов и коммерческих предложений клиентам, но Invoice Ninja кажется избыточным — слишком много модулей, слишком тяжёлый интерфейс для простой задачи «выставил счёт — получил оплату», — стоит присмотреться к Crater. Это открытое Laravel + Vue приложение, которое делает меньше вещей, чем конкуренты, зато делает их без лишних кликов: счета, сметы (estimates), клиенты, платежи, мультивалютность и PDF на выходе. Ниже — полная установка на чистый Ubuntu 24.04, включая нюансы, которые не всегда видны из официального README.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Crater и почему стоит знать про InvoiceShelf
Crater изначально разрабатывался как полностью открытый (MIT) инструмент для фрилансеров и малого бизнеса — конкурент Invoice Ninja и Akaunting, но заметно проще по функциональности: без сложной бухгалтерии, без модулей отчётности «на вырост», зато быстрый в освоении интерфейс на Vue и понятная работа со сметами, которые одним кликом превращаются в счёт.
Важный нюанс, который стоит знать перед установкой в 2026 году: компания-разработчик Crater со временем сместила фокус на платный SaaS-продукт, и активность в оригинальном открытом репозитории заметно снизилась. Часть сообщества продолжила разработку под форком InvoiceShelf — тот же стек (Laravel + Vue), совместимая структура базы данных, но более свежие обновления и активно принимаемые pull request'ы. Практический вывод: сама установка, описанная ниже, актуальна что для последнего открытого релиза Crater, что для InvoiceShelf — шаги совпадают почти один в один, отличается только URL репозитория на этапе клонирования. Если вам важна долгосрочная поддержка и обновления безопасности — проверьте перед установкой, какой из двух проектов активнее развивается на момент вашего чтения статьи, и берите его.
Для кого это решение хорошо подходит:
- фрилансер или небольшая студия, которым нужны счета и сметы, а не полноценная ERP;
- команда, которая уже устала от лимитов бесплатных тарифов SaaS-сервисов вроде зарубежных инвойс-конструкторов;
- те, кому принципиально держать данные клиентов (реквизиты, суммы, история платежей) на своём сервере, а не в чужом облаке.
Требования и подготовка сервера
Crater легче Invoice Ninja по требованиям к ресурсам — сказывается меньшее число фоновых процессов и очередей:
- VPS с 1 vCPU и 2 ГБ RAM хватает для команды до 10-15 человек; если планируете нагрузку выше или совмещаете с другими сервисами на том же сервере — берите 2 vCPU / 4 ГБ;
- Ubuntu 24.04 LTS, чистая установка;
- домен или поддомен, A-запись которого указывает на IP сервера (например,
invoices.вашдомен.ru); - root или sudo-доступ по SSH.
Начинаем с обновления системы и базовых утилит:
apt update && apt upgrade -y
apt install -y curl wget unzip git software-properties-common gnupg2
timedatectl set-timezone Europe/Moscow
Часовой пояс задаёт корректные даты в счетах и напоминаниях об оплате — не пропускайте эту строку, потом придётся объяснять клиенту разъезжающиеся даты.
Открываем firewall под SSH и веб. Если UFW ещё не настроен на сервере, разберётесь подробнее в отдельной инструкции — настройка UFW firewall на Ubuntu 24.04. Минимальный набор правил:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверPHP, Composer и Node.js на Ubuntu 24.04
Crater — Laravel-приложение с фронтендом на Vue, поэтому нужны и PHP с Composer, и Node.js с npm для сборки статики (если вы не берёте готовый архив релиза, где сборка уже сделана за вас).
Ставим PHP 8.3 из стандартного репозитория Ubuntu 24.04 (свежий PHP от Ondřej Surý тоже подойдёт, если хотите более гибко управлять минорными версиями):
apt install -y php8.3 php8.3-fpm php8.3-cli php8.3-common \
php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl \
php8.3-zip php8.3-gd php8.3-bcmath php8.3-intl
php -v
Composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer --version
Node.js 20 LTS через NodeSource (нужен только для сборки фронтенда из исходников; если ставите готовый релиз-архив — этот шаг можно пропустить):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node -v && npm -v
MySQL: база и пользователь для Crater
Если MySQL ещё не установлен на сервере, разверните его по отдельной инструкции — установка MySQL на Ubuntu 24.04. Дальше создаём отдельную базу и пользователя именно под Crater — не используйте root-доступ приложения к базе, это плохая практика даже для внутреннего инструмента:
CREATE DATABASE crater CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'crater_user'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON crater.* TO 'crater_user'@'localhost';
FLUSH PRIVILEGES;
Кодировка utf8mb4 обязательна — без неё эмодзи и часть кириллических символов в названиях товаров или комментариях к счетам будут ломаться при сохранении.
Скачивание, .env и сборка приложения
Клонируем репозиторий в веб-директорию. Ниже — путь для оригинального Crater; если вы выбрали форк InvoiceShelf, замените только URL репозитория, остальные шаги идентичны:
cd /var/www
git clone https://github.com/crater-invoice/CRATER.git crater
cd crater
Ставим PHP-зависимости и настраиваем окружение:
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
Открываем .env и прописываем реальные данные подключения к базе:
APP_URL=https://invoices.вашдомен.ru
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crater
DB_USERNAME=crater_user
DB_PASSWORD=СЛОЖНЫЙ_ПАРОЛЬ
Если собираете фронтенд из исходников (а не берёте готовый релиз-архив), ставим JS-зависимости и билдим:
npm install
npm run production
Сборка занимает несколько минут — Vue-приложение компилируется в статику, которая ляжет в public/. Дальше выставляем права, чтобы веб-сервер мог писать логи, кэш и сгенерированные PDF:
chown -R www-data:www-data /var/www/crater
chmod -R 775 storage bootstrap/cache
Nginx и веб-установщик
Конфиг Nginx стандартный для Laravel-приложения — document root смотрит именно на public/, а не на корень проекта:
server {
listen 80;
server_name invoices.вашдомен.ru;
root /var/www/crater/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Активируем конфиг и проверяем синтаксис:
ln -s /etc/nginx/sites-available/crater /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Дальше заходите в браузере на http://invoices.вашдомен.ru — Crater откроет пошаговый веб-установщик: проверит версию PHP и нужные расширения (BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, cURL, GD, ZIP), попросит подтвердить подключение к базе (если .env уже заполнен — этот шаг проходит автоматически) и предложит создать первого администратора: имя компании, email, пароль. На этом экране же настраиваются базовая валюта и часовой пояс компании — их можно поменять позже в настройках, но начать лучше сразу с правильных значений.
SSL и автообновление счетов по расписанию
Без HTTPS современные браузеры будут пугать клиентов при переходе по ссылке на счёт, так что сертификат — не опция. Если Let's Encrypt на сервере ещё не настраивали, здесь пошагово — установка SSL Let's Encrypt на VPS. Коротко через certbot:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d invoices.вашдомен.ru
Crater использует планировщик Laravel для фоновых задач — например, для автоматической отправки напоминаний о просроченной оплате и генерации повторяющихся счетов, если вы их настраивали. Добавьте один cron-вызов, который дальше сам решает, что и когда запускать:
crontab -e -u www-data
* * * * * cd /var/www/crater && php artisan schedule:run >> /dev/null 2>&1
Без этой строки часть автоматизации (повторяющиеся счета, напоминания) просто не будет срабатывать, при этом сам интерфейс продолжит работать как ни в чём не бывало — баг легко пропустить, пока клиент не пожалуется, что не получил напоминание.
Отдельно стоит настроить регулярный бэкап базы данных и папки storage (там лежат сгенерированные PDF и логотип компании) — штатного встроенного бэкапа в Crater нет, это забота администратора сервера, а не приложения.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Crater подходит для команды из 5-10 человек с общим доступом?
Да, у приложения есть роли и многопользовательский доступ, но систем сложных прав по отделам, как в крупных ERP, здесь нет — если нужна гранулярная ролевая модель, присмотритесь к Invoice Ninja.
Можно ли перенести данные из другого инвойс-сервиса?
Прямого импорта из сторонних SaaS обычно нет — придётся заводить клиентов и товары вручную или писать скрипт под конкретный экспорт-формат старого сервиса.
Что если веб-установщик не проходит проверку подключения к базе?
В 95% случаев причина — неверные данные в .env или то, что MySQL слушает не тот сокет/порт; проверьте DB_HOST, DB_PORT командой mysql -u crater_user -p -h 127.0.0.1 crater до открытия установщика в браузере.
Нужен ли Redis или очереди, как в Invoice Ninja?
Нет, для базового объёма Crater работает без отдельного воркера очередей — вся тяжёлая логика укладывается в обычный cron-планировщик Laravel.
Стоит ли ставить Crater через Docker вместо classic-установки?
Официальный Docker-образ существует, но описанная выше установка даёт больше контроля над версиями PHP и Nginx на сервере, где уже крутятся другие приложения — выбор зависит от того, изолированный у вас сервер под одну задачу или общий.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →