Nautilus: Pelagic Mollusc

    developer-environment

    1.0.1 • Public • Published

    Developer environment

    Easy installation of developer environment.

    Description

    1. Specify which binaries you require
    2. Add configuration regarding those binaries
    3. Call install()
    4. Wait a few min
    5. Developer environment with application server, identity provider, database and more is now installed and configured.

    Installation

    npm install developer-environment --save
    

    Usage

    const devEnv = require("developer-environment");
    
    const conf = {
        cwd: "envDir",                          //Optional | Default value => process.cwd()
        binaries: {
            wildfly: {
                version: "20.0.1.Final",        //Required
                debugPort: 8787,                //Optional | <= Default value
                portOffset: 0,                  //Optional | <= Default value
                username: "admin",              //Optional | <= Default value
                password: "password",           //Optional | <= Default value
                datasource: "MyDS",             //Optional | Default value => null
                memory: {
                    Xms: "64m",                 //Optional | <= Default value
                    Xmx: "2048m",               //Optional | <= Default value
                    MetaspaceSize: "96M",       //Optional | <= Default value
                    MaxMetaspaceSize: "1024m"   //Optional | <= Default value
                },            
                systemProperties: {             //Optional | Default value => { }
                    "keycloak.url": "http://localhost:8081/auth" 
                },
                secureDeployments: {
                    names: [ "my-app.war" ],    //Optional | Default value => [ ]
                    properties: {               //Optional | Default value => { }
                        "auth-server-url": `http://localhost:8081/auth`
                    }
                }
            },
            keycloak: {
                version: "11.0.0",              //Required
                portOffset: 1,                  //Optional | <= Default value
                username: "admin",              //Optional | <= Default value
                password: "password",           //Optional | <= Default value
                jsonFile: "realm.json"          //Optional | Default value => null
            },
            keycloakWildflyAdapter: {
                version: "11.0.0"               //Required
            },   
            mongodb: {
                version: "4.4.0",               //Required
                port: 27017,                    //Optional | <= Default value
                linuxDist: "ubuntu1804"         //Optional | <= Default value
            },
            mongodbDbTools: {
                version: "100.1.1",             //Required
                linuxDist: "ubuntu1804"         //Optional | <= Default value
            },
            postgresql: {
                version: "10.5-1",              //Required
                install: true,                  //Optional | <= Default value
                port: 5432,                     //Optional | <= Default value
                username: "admin",              //Optional | <= Default value
                password: "password",           //Optional | <= Default value
                db: "myDB"                      //Optional | <= Default value
            },
            jdbcPostgresql: {
                version: "42.2.5"               //Required
            }
        },
        repositories: [                         //Optional | Default value => [ ]
            {
                url: "git@github.com:AndreasArvidsson/developer-environment.git",
                cwd: __dirname
            }
        ]
    };
    
    devEnv.install(conf)
        .then(options => {
            console.log("DONE");
            //options is the config for each binary with default values added.
            console.log("Options", options);
        });

    Version only

    If no other properties then the version is required the entire config object can be replace by the version string.
    The following two configs are equivalent.

    {
        wildfly: "20.0.1.Final"
    }
    {
        wildfly: {
            version: "20.0.1.Final"
        }
    }

    Keycloak realm export

    Export current keycloak realm settings as json file.

    devEnv.keycloakExport({
        version: "11.0.0",                  //Required
        realm: "MyRealm",                   //Required
        cwd: "envDir",                      //Optional | Default value => process.cwd()
        portOffset: 1,                      //Optional | <= Default value
        jsonFile: "realm.json"              //Optional | <= Default value
    });

    Deploy to wildfly

    Deploy all war files in specified dir to Wildfly.

    devEnv.deploy({
        version: "11.0.0",                  //Required
        dir: "my-app",                      //Required
        cwd: "envDir",                      //Optional | Default value => process.cwd()
        host: "localhost",                  //Optional | <= Default value
        port: 9990,                         //Optional | <= Default value
        username: "user",                   //Optional | Default value => null
        password: "password"                //Optional | Default value => null
    });

    Un-deploy disabled

    Un-deploy all disabled Wildfly deployments.

    devEnv.deploy({
        version: "11.0.0",                  //Required
        cwd: "envDir",                      //Optional | Default value => process.cwd()
        host: "localhost",                  //Optional | <= Default value
        port: 9990,                         //Optional | <= Default value
        username: "user",                   //Optional | Default value => null
        password: "password"                //Optional | Default value => null
    });

    Install

    npm i developer-environment

    DownloadsWeekly Downloads

    1

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    62.6 kB

    Total Files

    28

    Last publish

    Collaborators

    • andreas_arvidsson