################## Updating ################## Compatibility Matrix """"""""""""""""""""" .. raw:: html
The tests were conducted using the archived package version (ZIP) and the Ubuntu 24.04 LTS operating system.

| | .. warning:: | Before updating, always do a full backup of your system! .. contents:: :local: From OC 4.x to latest """"""""""""""""""""" Update zip file installations ============================= | Log in to OpenCelium, open the *AdminPanel* and click on *Update Assistant*. | Click here to see, how to use :ref:`Update Assistant `. Update DEB package for Ubuntu 24.04 LTS ======================================= .. code-block:: sh :linenos: apt update apt install --only-upgrade -y opencelium Update RPM package for SUSE Linux Enterprise Server 15 SP5 ========================================================== .. code-block:: sh :linenos: zypper refresh zypper update -y OpenCelium Update RPM package for RedHat 9.2 ================================= .. code-block:: sh :linenos: yum update yum update -y OpenCelium Update Docker Compose ================================= .. warning:: | Before updating, do a backup of your configuraton files (conf folder and .env file) | to preserve your own settings! .. code-block:: sh :linenos: cd opencelium-docker docker compose down -v git pull docker compose up -d | | From OC 3.x to 4.1 """"""""""""""""""" .. note:: | This update guide is intended for existing zip file 3.x installations. | For all other installations, please send us an email to : support@opencelium.io Prepare Update ================== **1. Stop Services:** .. code-block:: sh :linenos: oc stop_backend systemctl stop nginx **2. Install MongoDB:** | Use default MongoDB installation guide. | You can find documentation here: `MongoDB Installation `_ **3. Backup current installation** .. code-block:: sh :linenos: mkdir /opt/opencelium /opt/openceliumOld mv -t /opt/openceliumOld /opt/conf /opt/logs /opt/scripts /opt/src /opt/tools /opt/CHANGELOG.rst /opt/LICENSE.md /opt/README.md Install Application =================== Download and unzip application, and create a link for it. .. code-block:: sh :linenos: wget --content-disposition "https://packagecloud.io/becon/opencelium/packages/anyfile/oc_4.1.zip/download?distro_version_id=230" -P /opt/opencelium/ unzip -o -d /opt/opencelium/ /opt/opencelium/oc_4.1.zip rm /opt/opencelium/oc_4.1.zip rm /usr/bin/oc ln -s /opt/opencelium/scripts/oc_service.sh /usr/bin/oc chmod +x /usr/bin/oc .. note:: | If any package is not available on Packagecloud, please contact our support team at support@opencelium.io. Configuration ================== **1. MariaDB:** Create mysql user for OpenCelium. Older versions always used the MySQL root user, but now we use a separate openlium db user. .. note:: | Please change the password (secret1234) in the following command line! | After running the command, enter your root password at password prompt, to create opencelium user. .. code-block:: sh :linenos: mysql -u root -p -e "GRANT ALL PRIVILEGES ON opencelium.* TO 'opencelium'@'localhost' IDENTIFIED BY 'secret1234'; FLUSH PRIVILEGES;" **2. MongoDB:** Start and enable mongod service and create a user for Opencelium. .. code-block:: sh :linenos: systemctl restart mongod systemctl enable mongod mongosh --eval "db.getSiblingDB('opencelium').createUser({user: 'oc_admin', pwd: passwordPrompt(), roles: ['readWrite','dbAdmin' ]})" **3. Nginx:** | Remove old config and link new configuration file for OpenCelium. | Debian/Ubuntu: .. code-block:: sh :linenos: rm /etc/nginx/sites-enabled/oc ln -s /opt/opencelium/conf/nginx.conf /etc/nginx/sites-enabled/oc.conf SUSE Linux Enterprise/RedHat: .. code-block:: sh :linenos: rm /etc/nginx/conf.d/oc ln -s /opt/opencelium/conf/nginx.conf /etc/nginx/conf.d/oc.conf .. note:: | For SSL, use /opt/opencelium/conf/nginx-ssl.conf file and add your certificates. **4. OpenCelium:** Create and adjust configuration. .. code-block:: sh :linenos: cp /opt/opencelium/src/backend/src/main/resources/application_default.yml /opt/opencelium/src/backend/src/main/resources/application.yml cp /opt/openceliumOld/src/backend/src/main/resources/invoker/* /opt/opencelium/src/backend/src/main/resources/invoker/ cp /opt/openceliumOld/src/backend/src/main/resources/templates/* /opt/opencelium/src/backend/src/main/resources/templates/ .. note:: | Modify application.yml | Within section "Database configuration section of MariaDB and MongoDB": | - change password of opencelium user for MariaDB (default "secret1234") | - change password of oc_admin user for MongoDB in uri line (default "secretsecret") | - Just in case you had special settings in application.yml, copy these settings to the new application.yml | (See old application.yml in /opt/openceliumOld/src/backend/src/main/resources) | | Just in case you are using SSL, add certs to the ssl section. | It has to be a p12 keystore file with password! | If you just have key and pem you can create a p12 as follows: .. code-block:: sh :linenos: openssl pkcs12 -export -out /opt/opencelium/src/backend/src/main/resources/opencelium.p12 -in /etc/ssl/certs/opencelium.pem -inkey /etc/ssl/private/opencelium.key Finally start OpenCelium backend and frontend. .. code-block:: sh :linenos: ln -s /opt/opencelium/conf/opencelium.service /etc/systemd/system/opencelium.service systemctl daemon-reload systemctl enable opencelium systemctl start opencelium systemctl start nginx .. note:: | Afterwards you can connect to `http://localhost` | Default User and Password is: | admin@opencelium.io | 1234 | If you want to have a look into OpenCelium Logs please use: .. code-block:: sh :linenos: journalctl -xe -u opencelium -f **5. Migration from Neo4j to MongoDB:** | Log in to OpenCelium, open the *AdminPanel* and click on *Migration*. | Click here to see, how to use :ref:`Migration `: .. |image0| image:: ../img/update_assistant/0.png :align: middle :width: 400