Giter VIP home page Giter VIP logo

ezmaster's Introduction

EzMaster - Administration of docker applications without any IT skills

french trello board Build Status Dependencies Status Docker Pulls Ezmaster tweeter

EzMaster is a non-technical docker backoffice tools for non-IT administrators. It aims to manage applications and instances. One instance of an application is a docker packaged software having its own config and its own data. Each instance is a docker container, is isolated and independant, and can be stopped or started easily on demand. Applications are "ezmasterized" docker images, they can be easily downloaded from dockerhub.

ezmaster demo

Why are you here? you are insterested by ezmaster because you are a end-user, a developer, or an op guy?

You could also check all the EzMaster available versions at the changelog page.

ezmaster's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ezmaster's Issues

instance's technicalName beginning with a digit makes instances page blank

I did not try to reproduce it, but we just had the case: after the creation of an instance called 6giecvol1-13703publis, the instances page was blank.

What confirmed the cause was the deleting of the container, which made the instances page not empty again.

That's was seen during the time the page was blank: API seemed to be working.

image

crash when running make docker-run-debug

ezmaster_1     | /app/node_modules/castor-core/node_modules/mongodb/lib/utils.js:98
ezmaster_1     |     process.nextTick(function() { throw err; });
ezmaster_1     |                                   ^
ezmaster_1     | 
ezmaster_1     | TypeError: Cannot read property 'insertMany' of undefined
ezmaster_1     |     at /app/node_modules/castor-core/app/models/init.js:55:18
ezmaster_1     |     at Db.collection (/app/node_modules/castor-core/node_modules/mongodb/lib/db.js:452:27)
ezmaster_1     |     at db.collectionsIndex (/app/node_modules/castor-core/app/models/mongo.js:16:21)
ezmaster_1     |     at /app/node_modules/castor-core/app/models/init.js:54:34
ezmaster_1     |     at handleCallback (/app/node_modules/castor-core/node_modules/mongodb/lib/utils.js:96:12)
ezmaster_1     |     at /app/node_modules/castor-core/node_modules/mongodb/lib/db.js:470:40
ezmaster_1     |     at handleCallback (/app/node_modules/castor-core/node_modules/mongodb/lib/utils.js:96:12)
ezmaster_1     |     at /app/node_modules/castor-core/node_modules/mongodb/lib/cursor.js:835:16
ezmaster_1     |     at handleCallback (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:159:5)
ezmaster_1     |     at setCursorNotified (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:490:3)
ezmaster_1     |     at /app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:561:16
ezmaster_1     |     at queryCallback (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:220:18)
ezmaster_1     |     at Callbacks.emit (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:119:3)
ezmaster_1     |     at null.messageHandler (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:295:23)
ezmaster_1     |     at Socket.<anonymous> (/app/node_modules/castor-core/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:285:22)
ezmaster_1     |     at emitOne (events.js:77:13)

Database connection problem in ezmaster

Hello,

I am trying to deploy ezmaster your solution to create several lodex intances, as described in the document Installing Lodex with ezMaster - LODEX (inist.fr).

I am facing the problem of connection with the mongodb database.

Some pictures of my configurations.

Error [MongoError]: failed to connect to server [undefined:27017] on first connect [Error: getaddrinfo EAI_AGAIN undefined
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26) {
name: 'MongoError'
}]

instances deployed in ezmaster :
`Long name Technical name Creation date Size Application Status Actions
pvs projet-hcl-1 2 hours ago 362 kB inistcnrs/lodex:12.23.3
Running

proj projet-hcl1 21 hours ago 362 kB inistcnrs/lodex:12.23.3
Running

base lodex-database-2 21 hours ago 319 MB inistcnrs/ezmaster-mongo:1.0.7
Running `

Parameter of connection to the instance :
"mongo": { "host": "lodex-database-2:27017" }
Thank you in advance for your help with the mongodb database connection.

Fix *.vue and eslint

Voici ce que j'obtiens qd j'essayer de linter les fichier vue :( Une idée ?

> [email protected] lint /app
> eslint --ext=.js,.vue ./routes/ ./middlewares/ ./test/ ./lib/ ./public/src/


/app/public/src/components/add-apps.vue
  3:8  error  Parsing error: Unexpected token is

/app/public/src/components/add-instance.vue
  3:8  error  Parsing error: Unexpected token is

/app/public/src/components/apps.vue
  1:1  error  Parsing error: Unexpected token <

/app/public/src/components/infos-machine-table.vue
  3:8  error  Parsing error: Unexpected token is

/app/public/src/components/table.vue
  3:8  error  Parsing error: Unexpected token is

✖ 5 problems (5 errors, 0 warnings)

Database connection problem in ezmaster

Hello,

I am trying to deploy ezmaster your solution to create several lodex intances, as described in the document Installing Lodex with ezMaster - LODEX (inist.fr).

I am facing the problem of connection with the mongodb database.

Some pictures of my configurations.
image.png

image.png

image.png

Thank you in advance for your help with the mongodb database connection.

Click on "Add instance" crash the application

Just before i installed the app from scratch folowing the README. I did a "Install and run (without docker)".

Here is my backtrace:

/home/kerphi/ezmaster/routes/route.js:176
      container.start(function (err, data) {
               ^

TypeError: Cannot read property 'start' of null
    at /home/kerphi/ezmaster/routes/route.js:176:16
    at /home/kerphi/ezmaster/node_modules/dockerode/lib/docker.js:37:21
    at /home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:235:7
    at getCause (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:257:7)
    at Modem.buildPayload (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:228:5)
    at IncomingMessage.<anonymous> (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:204:14)
    at emitNone (events.js:72:20)
    at IncomingMessage.emit (events.js:166:7)
    at endReadableNT (_stream_readable.js:913:12)
    at nextTickCallbackWith2Args (node.js:442:9)
    at process._tickCallback (node.js:356:17)

crash when running make docker-run-prod (at route.js => containers.pop())

It crashes when i run ezmaster as bellow and I open my browser on http://127.0.0.1:3000/

This line NODE_ENV=production docker-compose -f ./docker-compose.yml up --force-recreate is the same as make docker-run-prod

[master] kerphi@p-gully:~/ezmaster
$ NODE_ENV=production docker-compose -f ./docker-compose.yml up --force-recreate
WARNING: The https_proxy variable is not set. Defaulting to a blank string.                                                                          
WARNING: The http_proxy variable is not set. Defaulting to a blank string.                                                                           
Recreating ezmaster_ezmaster_db_1                                                                                                                                       
Recreating ezmaster_ezmaster_1                                                                                                                                          
Attaching to ezmaster_ezmaster_db_1, ezmaster_ezmaster_1                                                                                                                
ezmaster_db_1  | 2016-05-04T17:25:37.375+0000 I JOURNAL  [initandlisten] journal dir=/data/db/journal                                                                   
ezmaster_db_1  | 2016-05-04T17:25:37.375+0000 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed                                         
ezmaster_db_1  | 2016-05-04T17:25:37.392+0000 I JOURNAL  [durability] Durability thread started                                                                         
ezmaster_db_1  | 2016-05-04T17:25:37.393+0000 I JOURNAL  [journal writer] Journal writer thread started                                                                 
ezmaster_db_1  | 2016-05-04T17:25:37.408+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=7db1f13d6e5d                                           
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten]                                                                                                                        
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.                                                    
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] 
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] db version v3.0.7
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] git version: 6ce7cbe8c6b899552dadd907604559806aa2e9bd
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] build info: Linux ip-10-183-78-195 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 BOOST_LIB_VERSION=1_49
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] allocator: tcmalloc
ezmaster_db_1  | 2016-05-04T17:25:37.409+0000 I CONTROL  [initandlisten] options: { storage: { mmapv1: { smallFiles: true } } }
ezmaster_db_1  | 2016-05-04T17:25:37.413+0000 I NETWORK  [initandlisten] waiting for connections on port 27017
ezmaster_1     | npm info it worked if it ends with ok
ezmaster_1     | npm info using [email protected]
ezmaster_1     | npm info using [email protected]
ezmaster_1     | npm info prestart [email protected]
ezmaster_1     | npm info start [email protected]
ezmaster_1     | 
ezmaster_1     | > [email protected] start /app
ezmaster_1     | > ./ezmaster
ezmaster_1     | 
ezmaster_1     | Load local configuration file. /app/config.local.js
ezmaster_1     | Set extension directory.  /app
ezmaster_1     | Watching hot directory.  /app/data
ezmaster_1     | Warning: connect.session() MemoryStore is not
ezmaster_1     | designed for a production environment, as it will leak
ezmaster_1     | memory, and will not scale past a single process.
ezmaster_1     | Wed, 04 May 2016 17:25:39 GMT body-parser deprecated bodyParser: use individual json/urlencoded middlewares at routes/route.js:76:52
ezmaster_1     | Wed, 04 May 2016 17:25:39 GMT body-parser deprecated undefined extended: provide extended option at node_modules/body-parser/index.js:105:29
ezmaster_db_1  | 2016-05-04T17:25:39.968+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49445 #1 (1 connection now open)
ezmaster_db_1  | 2016-05-04T17:25:39.969+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49446 #2 (2 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.973+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49447 #3 (3 connections now open)
ezmaster_1     | App detected. ezmaster 1.0.4
ezmaster_1     | Server is listening. http://127.0.0.1:3000/
ezmaster_db_1  | 2016-05-04T17:25:39.985+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49448 #4 (4 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.991+0000 I NETWORK  [conn1] end connection 172.17.0.3:49445 (3 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.993+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49449 #5 (4 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.995+0000 I NETWORK  [conn2] end connection 172.17.0.3:49446 (3 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.997+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49450 #6 (4 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.998+0000 I NETWORK  [conn3] end connection 172.17.0.3:49447 (3 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:39.999+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49451 #7 (4 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:40.000+0000 I NETWORK  [conn4] end connection 172.17.0.3:49448 (3 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:40.002+0000 I NETWORK  [initandlisten] connection accepted from 172.17.0.3:49452 #8 (4 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:40.012+0000 I NETWORK  [conn5] end connection 172.17.0.3:49449 (3 connections now open)
ezmaster_1     | Files and Database are synchronised.
ezmaster_1     | /app/routes/route.js:30
ezmaster_1     |         const elements = containers.pop();
ezmaster_1     |                                    ^
ezmaster_1     | 
ezmaster_1     | TypeError: Cannot read property 'pop' of null
ezmaster_1     |     at check (/app/routes/route.js:30:36)
ezmaster_1     |     at Object.callback (/app/routes/route.js:72:10)
ezmaster_1     |     at /app/node_modules/dockerode/lib/docker.js:261:10
ezmaster_1     |     at Modem.buildPayload (/app/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:225:19)
ezmaster_1     |     at ClientRequest.<anonymous> (/app/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:210:10)
ezmaster_1     |     at emitOne (events.js:77:13)
ezmaster_1     |     at ClientRequest.emit (events.js:169:7)
ezmaster_1     |     at Socket.socketErrorListener (_http_client.js:256:9)
ezmaster_1     |     at emitOne (events.js:77:13)
ezmaster_1     |     at Socket.emit (events.js:169:7)
ezmaster_1     |     at emitErrorNT (net.js:1250:8)
ezmaster_1     |     at nextTickCallbackWith2Args (node.js:442:9)
ezmaster_1     |     at process._tickCallback (node.js:356:17)
ezmaster_db_1  | 2016-05-04T17:25:45.472+0000 I NETWORK  [conn8] end connection 172.17.0.3:49452 (2 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:45.472+0000 I NETWORK  [conn6] end connection 172.17.0.3:49450 (2 connections now open)
ezmaster_db_1  | 2016-05-04T17:25:45.472+0000 I NETWORK  [conn7] end connection 172.17.0.3:49451 (1 connection now open)
ezmaster_1     | 
ezmaster_1     | npm info [email protected] Failed to exec start script
ezmaster_1     | npm ERR! Linux 3.16.0-4-amd64
ezmaster_1     | npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
ezmaster_1     | npm ERR! node v4.4.0
ezmaster_1     | npm ERR! npm  v2.14.20
ezmaster_1     | npm ERR! code ELIFECYCLE
ezmaster_1     | npm ERR! [email protected] start: `./ezmaster`
ezmaster_1     | npm ERR! Exit status 1
ezmaster_1     | npm ERR! 
ezmaster_1     | npm ERR! Failed at the [email protected] start script './ezmaster'.
ezmaster_1     | npm ERR! This is most likely a problem with the ezmaster package,
ezmaster_1     | npm ERR! not with npm itself.
ezmaster_1     | npm ERR! Tell the author that this fails on your system:
ezmaster_1     | npm ERR!     ./ezmaster
ezmaster_1     | npm ERR! You can get information on how to open an issue for this project with:
ezmaster_1     | npm ERR!     npm bugs ezmaster
ezmaster_1     | npm ERR! Or if that isn't available, you can get their info via:
ezmaster_1     | npm ERR! 
ezmaster_1     | npm ERR!     npm owner ls ezmaster
ezmaster_1     | npm ERR! There is likely additional logging output above.
ezmaster_1     | 
ezmaster_1     | npm ERR! Please include the following file with any support request:
ezmaster_1     | npm ERR!     /app/npm-debug.log
ezmaster_ezmaster_1 exited with code 1

npm test needs cleanup

$ npm test

> [email protected] test /home/kerphi/ezmaster
> mocha

module.js:327
    throw err;
    ^

Error: Cannot find module '../helpers/fake-helper.js'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/home/kerphi/ezmaster/test/fake-test.js:4:10)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at /home/kerphi/ezmaster/node_modules/mocha/lib/mocha.js:219:27
    at Array.forEach (native)
    at Mocha.loadFiles (/home/kerphi/ezmaster/node_modules/mocha/lib/mocha.js:216:14)
    at Mocha.run (/home/kerphi/ezmaster/node_modules/mocha/lib/mocha.js:468:10)
    at Object.<anonymous> (/home/kerphi/ezmaster/node_modules/mocha/bin/_mocha:403:18)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3
npm ERR! Test failed.  See above for more details.

Crash clicking add instance btn but having localy the right docker image

I have the image localy:

[master] kerphi@p-gully:~/ezmaster
$ docker images | grep ezvis
inistcnrs/ezvis                    latest              a5af4af711a0        6 weeks ago         782.5 MB

Then I run ezmaster in debug mode:

[master] kerphi@p-gully:~/ezmaster
$ make run-debug

Then I visit the http://127.0.0.1:3000/ url

Then it crashes after few seconds with this error log:

  castor:helpers:acl access ignored for  +9s /-/v1/instances/
/home/kerphi/ezmaster/routes/route.js:173
          if(err) { throw err; }
                    ^

Error: HTTP code is 500 which indicates error: server error - Could not get container for mongo_db

    at /home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:229:17
    at getCause (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:257:7)
    at Modem.buildPayload (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:228:5)
    at IncomingMessage.<anonymous> (/home/kerphi/ezmaster/node_modules/dockerode/node_modules/docker-modem/lib/modem.js:204:14)
    at emitNone (events.js:72:20)
    at IncomingMessage.emit (events.js:166:7)
    at endReadableNT (_stream_readable.js:913:12)
    at nextTickCallbackWith2Args (node.js:442:9)
    at process._tickCallback (node.js:356:17)
Makefile:11: recipe for target 'run-debug' failed
make: *** [run-debug] Error 1

"image inistcnrs/ezmaster not found" when doing docker-compose up

[master] kerphi@p-gully:~/ezmaster
$ docker-compose up
WARNING: The NODE_ENV variable is not set. Defaulting to a blank string.
WARNING: The https_proxy variable is not set. Defaulting to a blank string.
WARNING: The http_proxy variable is not set. Defaulting to a blank string.
Pulling ezmaster (inistcnrs/ezmaster:latest)...
Pulling repository docker.io/inistcnrs/ezmaster
ERROR: Error: image inistcnrs/ezmaster not found

Change HTML default page to

to remove links :

  • to the admin page
  • to the api route
    and add a more explicit message : Not active instance or Not existing instance

Bad HDD Usage indicator

ezmaster-disk-indicator-bug

The disk usage indicator is inverted: in the screen capture, disk is full at only 9% (Size: 9.72 GB, Free: 8.86 GB), and the Add Instance button is desactivated, the indicator is red.

See lib/diskusage.js, public/src/components/infos-machine-table.vue

Forgot to precise: [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.