UNPKG

create-indiekit

Version:

Get started with Indiekit

72 lines (63 loc) 1.78 kB
import YAML from "yaml"; import { getPlugin } from "./utils.js"; /** * Get Docker Compose file contents * @param {Array} environment - Environment variables * @returns {string} Docker Compose file contents */ export const getDockerComposeFileContent = (environment) => { const compose = { version: "3.9", services: { indiekit: { container_name: "indiekit", image: "getindiekit/indiekit", restart: "always", build: ".", ports: ["${HTTP_PORT:-3000}:3000"], environment: [ "MONGO_URL=mongodb://$MONGO_INITDB_ROOT_USERNAME:$MONGO_INITDB_ROOT_PASSWORD@mongo", "PASSWORD_SECRET", "SECRET", ...environment, ], }, mongo: { container_name: "mongo", image: "mongo:4", restart: "always", volumes: ["mongo:/data/db"], environment: [ "MONGO_INITDB_ROOT_USERNAME", "MONGO_INITDB_ROOT_PASSWORD", ], }, }, volumes: { mongo: { external: true, }, }, }; return YAML.stringify(compose); }; /** * Get environment variables required by plug-ins * @param {object} setup - Setup answers * @returns {Promise<Array>} Environment variables */ export const getDockerEnvironment = async (setup) => { const { storePlugin, syndicatorPlugins } = setup; let variables = []; if (storePlugin) { const { environment } = await getPlugin(storePlugin); variables = [...variables, ...(environment || [])]; } if (syndicatorPlugins) { for await (const syndicatorPlugin of syndicatorPlugins) { const { environment } = await getPlugin(syndicatorPlugin); variables = [...variables, ...(environment || [])]; } } return variables; };