Vert.x 2.x is deprecated - use instead http://vertx.io
A small project to register modules.
You need to have mongo db installed and Vert.x 2.0.
Before you can run the module registry, you need to create a user account. To do that, just create one with a simple query:
mongo localhost:27017/moduleregistry --eval "db.users.update({username:'approver'},{username:'approver',password:'YOUR_PASSWORD_HERE'},{upsert:true});"
Just remember to change localhost to the host of your Mongo DB, 27017 is the port number and moduleregistry is the name of your database. YOUR_PASSWORD_HERE should be changed to whatever password you want to have.
When you created the user, you are good to go. Just start it with the following command:
./gradlew runMod
You can also start it with the regular vertx command line, but don't forget to build the module registry as a module first with ./gradlew copyMod.
Please keep in mind that running the module registry without a configuration file won't let you send email notifications to the moderators. If you want to setup notifications via email, you need to check the configuration
If you want to build/install this module on openshift, you can use the ./setup_approve_password.sh script to set up the password for your user account right away. To set it to my_secret_password, just type this in rhc ssh console:
./setup_approve_password.sh my_secret_password
Uploading the module registry on openshift via git will fire some action hooks. These hooks should setup a small configuration file in your $OPENSHIFT_DATA_DIR. Please change the values according to your needs - if you had the mongodb gear available before, it will also try and fill in the correct values for you. If you want to notify moderators via email, you still need to change the configuration file in $OPENSHIFT_DATA_DIR/config.json
There are a few configuration options available and a template for it can be found under /src/main/resources/config.json.
{
"host":"localhost",
"port":8080,
"download-timeout":20000,
"database":{
"host":"localhost",
"port":27017,
"db_name":"moduleregistry",
"username":"admin",
"password":"my_password"
},
"mailer":{
"host":"smtp.googlemail.com",
"port":465,
"ssl":true,
"auth":true,
"username":"your.email@gmail.com",
"password":"your_password",
"infoMail":"modules@vertx.io",
"moderator":"tim@wibble.com"
},
"auth":{
"user_collection":"users",
"session_timeout": 1800000
}
}
A short description about each field:
hostThe host where the server should listen on. Defaults tolocalhost.portThe port where the server should listen on. Defaults to8080.download-timeoutThe timeout in milliseconds, how long the module registry downloads modules. Defaults to20000.keystore-pathThe path to your Java keystore. This field is mandatory if you want to use SSL.keystore-passThe password for your Java keystore. This field is mandatory if you want to use SSL.databaseConfiguration for the mongo-persistor. See the mod-mongo-persistor repository about which configuration options are available.mailerThe configuration for the mailer. See the [mod-mailer repository() for more information on the regular options.infoMailThe address the module registry sends emails from. Defaults tomodules@vertx.iomoderatorsA list of email addresses which should be notified when a new module was registered and is waiting for approval.
authWhere to look for the credentials.user_collectionThe collection where to look for the approver password. Defaults tousers.session_timeoutThe usual auth timeout in milliseconds. Defaults to1800000.