[ Это было изначально Опубликовано в дискуссии GitHub о репозитории Nodewood ; Добавление здесь для потомства. ]
Недавно я развернул ванильный экземпляр Nodewood , JavaScript SaaS Starter Kit, в облако. Я выбрал render.com Но это может помочь с другими платформами (PAAS).
Вещи, которые я настроил перед развертыванием:
- Свежий проект Nodewood, работающий на местном уровне в соответствии с гидом (отличные документы!)
- Мой проект Nodewood подтолкнул к частному github Repo (с изменениями, описанными ниже)
- Аккаунт полосы (активирован, поэтому у меня есть ключи от API)
- Рендеринг аккаунт, связанный с моей учетной записью GitHub
- Postgres DB от рендеринга (аддон за 7 долларов/месяц)
Это похоже на большую работу, но это довольно быстро.
Изменения проекта
knexfile.js
❗ Добавить knexfile.js
к .gitignore
так что это не будет частью производственной кодовой базы. Конфигурация KNEX, специфичная для производства, будет добавлена в конфигурацию службы рендеринга (охватывается ниже). Запустить > git rm knexfile.js
Если он уже был добавлен в репо.
package.json
Добавьте несколько полезных команд в Сценарии
Для производства при рендере:
+ "production:build": "yarn && yarn production:migrate && yarn production:stripe-sync && yarn production:build-ui", + "production:migrate": "knex migrate:latest --env production", + "production:stripe-sync": "npx @nodewood/cli stripe:sync --no-confirm", + "production:build-ui": "NODE_ENV=production yarn build-ui", + "production:start": "node app/api/api.js",
Это простые помощники, которые могут быть отредактированы позже, если это необходимо. Рендеринг будет настроен для запуска их как часть процесса сборки и развертывания.
Настройка услуг
Создайте новый «веб -сервис», связанный с (частным) GitHub Repo. 7 долларов США/месяц
Настройки
❗ Изменить опцию «среда» на «Узел». Рендеринг будет автоматически расстегнуть «Docker», но в этом случае он добавит несколько ненужных накладных расходов.
Команда сборки: Производство пряжи: сборка
Пользовательский скрипт добавлен в package.json, который будет работать с каждым развертыванием
Начало команды: Производство пряжи: начало
запустить API
Расширенные настройки
Переменная среды:
Ключ: Node_env
, значение: «Производство» — просто чтобы убедиться, что наш код знает, где он находится.
3 секретные файлы:
.env
: Скопировано из локального проекта с обновленнымDB_
переменные для базы данных рендеринга и обновленного производстваPK_
иSK_
Ключи от полосы.nodewood.js
: скопировано точно из местного проекта 👍🏻knexfile.js
: только с производственным объектом, содержащим детали базы данных рендеринга. Выглядит похоже на:
module.exports = { production: { client: "postgresql", connection: { host: "Hostname from Render database", database: "myapp", user: "myapp", password: "generatedpassword" }, pool: { min: 2, max: 10 }, migrations: { tableName: "knex_migrations", stub: "migrations.stub", directory: ["./wood/migrations", "./app/migrations"] } } };
Развернуть 🚀
Сделайте и протолкните свою основную ветвь GIT, рендеринг справится с остальными.
Использование вашего приложения Nodewood
- Посетите свое приложение Nodewood (вероятно, URL .onrender.com), чтобы увидеть статический контент (из
./www/dist/
) - Зарегистрируйтесь на учетной записи
- Отредактируйте новую запись пользователя в базе данных, чтобы
email_confirmed
иaccount_type
Анкет (Я использую Postico.App на моем Mac, чтобы подключиться к базе данных рендеринга для этого) - Посетите раздел администратора вашего приложения Nodewood в браузере!
Насколько я дошел до сих пор, но отсюда я могу просто сосредоточиться на своей идее и не беспокоиться о развертывании.
Примечания/идеи:
- Я не проверял, может ли KNEX быть настроен из .env или аналогичным — это устранило бы необходимость в производстве
./knexfile.js
- Еще одна почтала еще не была настроена.
- Вероятно, можно развернуть с Docker на рендеринге, но Такого рода побеждает цель здесь 😄
- Я не проверял, сколько Postgres соединений разрешено службой DB. Так что мне может потребоваться обновить производственный Knex
бассейн
конфигурация
Оригинал: «https://dev.to/tbeseda/deploying-nodewood-38ag»