This is a pre-build containerized version of the i-net CoWork application. The container only brings the application and tools required to run the application.
Note: The container does not provide any default users. You have to use the Sign Up
method first. See below for advanced use cases.
Please have a look at our website for more information about i-net CoWork.
Run the following command to start an i-net CoWork Docker Container:
docker run -d -p 7000:7000 --name cowork inetsoftware/i-net-cowork
The i-net CoWork Docker Container should be pre-configured using either a configuration properties file or environment variables. Either way, a local installation with the specific setup should be created first. Using the Maintenance module a backup of the configuration can be created and the configuration properties file in there can be used as a basis.
Note: To have the container fully set up on startup you have to specify at least the following properties: CONF_listener__port
and CONF_licensekey
Note: In private cloud environments you have to set the property CONF_serverURL
as well. It is recommended to set this property in other environments too.
A configuration file can be added by using a volume or any other means that adds a specified configuration to the container. The default configuration file can be used or a different one can be set using an environment variable. See Environment Properties Matrix.
To create the environment variable names use the following rule:
CONF__
.
(dot) with __
(two underlines)
To make the configuration reproducible and updatable you should use a docker-compose.yml
file.
version: '2.1' services: cowork: image: 'inetsoftware/i-net-cowork:latest' restart: 'always' ports: - 7000:7000 environment: - DEFAULT_PROPFILE=/tmp/defaultConfiguration.properties - DEFAULT_CONFIG=User/Default # Set the externally visible server url (un-comment and insert the correct url) #- CONF_serverURL=https://hostname.company.com:9443/ # Set the license key (un-comment and insert the full license key) #- CONF_licensekey=... # Run the application on a pre-determined port for easier mapping - CONF_listener__port=7000 # Customize an option, e.g. the theming colors - CONF_theme__themecolors={"@base-color":"#123456","@primary-color":"#428bca"} # Enable logging, route log to the container log-file - CONF_log__engine=true - CONF_log__file=/dev/stdout # Location for automatic backups - CONF_BackupLocation=/home/cowork/.i-net software/cowork_User_Default/backup
If there are more specific requirements, such as a pre-filled user database, a custom container should be created
Using the following compose example you can create a server that is started without any permission restrictions and can be used without further authentication using the public URL context.
version: '2.1' services: cowork: image: 'inetsoftware/i-net-cowork:latest' restart: 'always' ports: # Not setting a host port allows to use --scale, but the external port varies - 7000/tcp environment: # Using the System/Default config is mandatory in cloud persistence environments - DEFAULT_CONFIG=System/Default # Set the license key (un-comment and insert the full license key) #- CONF_licensekey=... # Run the application on a pre-determined port for easier mapping - CONF_listener_ _port=7000 # Only guest account is active. - CONF_authentication__settings=[{"provider"\:"guest"}]
The following Dockerfile
will create a user admin
with the password password
in a new container.
FROM inetsoftware/i-net-cowork # Switch to root user for installation USER root # Tools RUN apk add --update linux-pam # grant pam permissions to everybody # Create User that we can log in with RUN chmod +r /etc/shadow \ && adduser -D -g "User" admin \ && echo admin:password | chpasswd \ && ln -s "/etc/pam.d/base-password" "/etc/pam.d/cowork" # Enable the system login. By default, the PAM plugin is disabled. ENV CONF_authentication__settings="[{'provider':'system'},{'provider':'product','userCanRegister':'true'}]" ENV CONF_plugins__activated="{}" # Switch back to product user USER cowork
To bundle a docker container with a MongoDB persistence using Docker Compose, the following docker-compose.yml
script can be used as a starting point:
version: '2.1' services: cowork: image: 'inetsoftware/i-net-cowork:latest' restart: 'always' ports: # Not setting a host port allows to use --scale, but the external port varies - 7000/tcp environment: # Using the System/Default config is mandatory in cloud persistence environments - DEFAULT_CONFIG=System/Default # Set the externally visible server url (un-comment and insert the correct url) #- CONF_serverURL=https://hostname.company.com:9443/ # Set the license key (un-comment and insert the full license key) #- CONF_licensekey=... # Run the application on a pre-determined port for easier mapping - CONF_listener__port=7000 # Do not force the application to overwrite a previously imported configuration # or other instances using the same MongoDB will have their configuration modified - FORCE_IMPORT_CONFIG=0 # Set up the connection the MongoDB persistence - inet_persistence=mongodb://root:example@mongo:27017/cowork mongo: image: mongo environment: MONGO_INITDB_ROOT_PASSWORD: example MONGO_INITDB_ROOT_USERNAME: root restart: always
Note: The parameter FORCE_IMPORT_CONFIG
should be set to 0
so that the configuration is imported only once versus every time the container is started. This way the configuration may be persisted and re-used on subsequent restarts or in a scaled environment.
Note: Depending on the specific environment there may be some more options that have to be set. Please have a look at the Environment Properties Matrix.