angelscripts-cell-mitosis
v1.4.0
Published
Angel scripts for deploying organic cells on `vps` infrastructure.
Downloads
10
Readme
angelscripts-cell-mitosis
Angel scripts for deploying organic cell on vps
infrastructure.
Designed to work with a cell within monorepo following stem skeleton 2.1.0.
How to install
The minimal version of nodejs is: Nodejs version 8+
Open your terminal and run:
cd /path/to/cell
npm install angelscripts-cell-mitosis --save-dev
VPS requirements
Ubuntu
version 14.04+ or Debian version 7+ server with ssh access
localhost requirements
ssh
scp
git
tar
Usage
angel cell mitosis :mitosisName :versionChange
Start a cell mitosis. This essentially deploys the current working cell to a remote outlined by the mitosis structure in cell's dna:
{
cwd: '...',
build: { ... },
mitosis: {
name: String,
target: {
domain: String,
ip: String
},
versionChange: String, // "major", "minor", "patch", "current", "prerelease-<identifier>"
mode: String,
zygote: Boolean,
mergeDNAFrom: String
}
}
short way is using $ angel cell mitosis :mitosisName
having versionChange defined in mitosis dna.
- uses
versionChange
to setpackagejson.version
and git commits/pushes.
Note you need to have git configured to push to default remote.
- using
current
as versionChange indicates to skip version bump - using
prerelease-<identifier>
as versionChange indicates to bump a prerelease with providedidentifier
- packs current working cell by reading its name from
packagejson.name
Note that having packagejson.scripts.build
present will flag that the cell can be build via npm run build
and will engage mitosis using cell's build artifact expected at /dist
folder. Otherwise packs:
/dna
/cells/{cwd}
/cells/node_modules
/package.json
- uploads to
mitosis.target.ip
at/home/node/deployments/cells/{cellName}-{packagejson.version}-{cellMode}/deployment.tar.gz
- unpacks
deployment.tar.gz
into its containing directory
Note that having mergeDNAFrom
present indicates a source directory location which will be copied over the unpacked /dna
folder. This is usually used to provide server stored secrets.
For cells which are not build npm i --production
is performed for the monorepo and the deployed cell.
- writes delpoymentJSON having contents:
Located at /home/node/deployments/enabled/{name}-{version}-{mitosis.mode}.json
{
name: packagejson.name,
cwd: process.cwd(),
version: packagejson.version,
nodeVersion: packagejson.engines.node,
endpoint: String, // computed based on mitosisDNA
port: '@cell-ports.{cellName}',
mountpoint: '@cell-mountpoints.{cellName}',
mitosis: MitosisDNA
domain: MitosisDNA.target.domain
}
Optionally for zygote mitosis writes the same deploymentJSON to /home/node/deployments/running/{name}-{version}-{mitosis.mode}.json
angel cell apoptosis :mitosisName
This essentially deletes on the remote:
/home/node/deployments/enabled/{name}-{version}-{mitosis.mode}.json
/home/node/deployments/running/{name}-{version}-{mitosis.mode}.json
Related
Testing
You're more than welcome to contribute tests for this repo.
Contributing
We :hearts: contribution. Please follow these simple rules:
- Keep the
README.md
up-to-date with changes - Have fun :fire::rocket::shipit: