- Your application must have a web server (mandatory).
- Your application can use a json or text configuration file and a data folder (optional)
For example your dockerfile could look like this one:
FROM ubuntu or node or ...
#...
# 3000 is your web server listening port
EXPOSE 3000
# Then create the /etc/ezmaster.json in your docker image.
# It will tell to ezmaster where is your web server (ex: port 3000),
# where is your JSON configuration file,
# and where is your data folder
# "configType" value can be "json" or "text" depending on your config format
RUN echo '{ \
"httpPort": 3000, \
"configPath": "/yourapp/config.json", \
"configType": "json", \
"dataPath": "/yourapp/data/", \
"technicalApplication": false \
}' > /etc/ezmaster.json
# ...
/etc/ezmaster.json
explanation:
httpPort
must be the listening HTTP port used by your applicationconfigPath
must be where is located the configuration file used by your application. This file will be editable through the ezmaster's internal text editorconfigType
must be the mime-type used by your the configuration file of your application (text or json)dataPath
must be where data are stored by your application. This folder will be shared through file upload and webdav ezmaster systems.technicalApplication
flag should be set to true if this is a technical application not designed for end-users (ex: database). The instances flagged this way will be filtered by default in the instances list.
- ezmaster-webserver Dockerfile: https://github.com/Inist-CNRS/ezmaster-webserver/blob/master/Dockerfile
- ezmaster-hexo Dockerfile: https://github.com/Inist-CNRS/ezmaster-hexo/blob/master/Dockerfile
- lodex Dockerfile: https://github.com/Inist-CNRS/lodex/blob/master/Dockerfile
- ezpaarse Dockerfile: https://github.com/ezpaarse-project/ezpaarse/blob/master/Dockerfile
- ezvis Dockerfile: https://github.com/madec-project/ezvis/blob/master/Dockerfile
- ezark Dockerfile: https://github.com/Inist-CNRS/ezark/blob/master/Dockerfile
When ezmaster launches your application, it provides few environment variables to this instance:
EZMASTER_MONGODB_HOST_PORT
: (will be deprecated in ezmaster v5), ex:ezmaster_db:27017
EZMASTER_VERSION
: the current version of ezmaster (ex:4.3.1
)EZMASTER_TECHNICAL_NAME
: the identifier of the instance within ezmaster (ex:myapp-usage-1
)EZMASTER_LONG_NAME
: a free label for the instance (ex:This instance is used for the customer C, and maintained by Matt
)EZMASTER_APPLICATION
: the complete tag of your application's docker image (ex:inistcnrs/ezmaster-hexo:1.0.3
)EZMASTER_PUBLIC_URL
: if you use ezmaster's reverse proxy feature (usingEZMASTER_PUBLIC_PROTOCOL
andEZMASTER_PUBLIC_DOMAIN
), it is the URL publicly available to your internet users (ex:http://my-app-usage.public.dom
, whenEZMASTER_PUBLIC_DOMAIN
's value ispublic.dom
)DEBUG
: this variable maybe useful to debug your application running via ezmaster (using the debug module), and logging your instance (viadocker logs myapp-usage-1
)http_proxy
,https_proxy
,no_proxy
: these variables are taken from ezmaster's environment, and allow your application to use your proxy. They can be empty (especially if you don't use a proxy)
This formated list will be used by ezmaster itself to dynamicaly display a dropdown list when the administrator want to add a new application. Do not hesitate to update the list but you have to respect this simple formating.