Рубрики
Uncategorized

Развертывание Nodewood

[Первоначально это было опубликовано в обсуждении GitHub о репозитории Nodewood; Добавление здесь для сообщения … Tagged с узлом, DevOps, Cloud.

[ Это было изначально Опубликовано в дискуссии GitHub о репозитории Nodewood ; Добавление здесь для потомства. ]

Недавно я развернул ванильный экземпляр Nodewood , JavaScript SaaS Starter Kit, в облако. Я выбрал render.com Но это может помочь с другими платформами (PAAS).

Вещи, которые я настроил перед развертыванием:

  1. Свежий проект Nodewood, работающий на местном уровне в соответствии с гидом (отличные документы!)
  2. Мой проект Nodewood подтолкнул к частному github Repo (с изменениями, описанными ниже)
  3. Аккаунт полосы (активирован, поэтому у меня есть ключи от API)
  4. Рендеринг аккаунт, связанный с моей учетной записью GitHub
  5. 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 секретные файлы:

  1. .env : Скопировано из локального проекта с обновленным DB_ переменные для базы данных рендеринга и обновленного производства PK_ и SK_ Ключи от полосы
  2. .nodewood.js : скопировано точно из местного проекта 👍🏻
  3. 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

  1. Посетите свое приложение Nodewood (вероятно, URL .onrender.com), чтобы увидеть статический контент (из ./www/dist/ )
  2. Зарегистрируйтесь на учетной записи
  3. Отредактируйте новую запись пользователя в базе данных, чтобы email_confirmed и account_type Анкет (Я использую Postico.App на моем Mac, чтобы подключиться к базе данных рендеринга для этого)
  4. Посетите раздел администратора вашего приложения Nodewood в браузере!

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

Примечания/идеи:

  • Я не проверял, может ли KNEX быть настроен из .env или аналогичным — это устранило бы необходимость в производстве ./knexfile.js
  • Еще одна почтала еще не была настроена.
  • Вероятно, можно развернуть с Docker на рендеринге, но Такого рода побеждает цель здесь 😄
  • Я не проверял, сколько Postgres соединений разрешено службой DB. Так что мне может потребоваться обновить производственный Knex бассейн конфигурация

Оригинал: «https://dev.to/tbeseda/deploying-nodewood-38ag»