├── Dockerfile ├── LICENSE ├── README.md └── scripts ├── om.sh ├── om_euser.sh └── om_install.sh /Dockerfile: -------------------------------------------------------------------------------- 1 | # ############################################# 2 | # Licensed under the Apache License, Version 2.0 (the "License"); 3 | # you may not use this file except in compliance with the License. 4 | # You may obtain a copy of the License at 5 | # 6 | # http://www.apache.org/licenses/LICENSE-2.0 7 | # 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | # ############################################# 14 | 15 | FROM ubuntu:20.04 16 | ENV OM_VER_MAJ='8' 17 | ENV OM_VER_MIN='1' 18 | ENV OM_VER_MIC='0' 19 | ENV OM_VERSION="${OM_VER_MAJ}.${OM_VER_MIN}.${OM_VER_MIC}" 20 | LABEL vendor="Apache OpenMeetings dev team" 21 | LABEL version="${OM_VERSION}" 22 | LABEL maintainer=dev@openmeetings.apache.org 23 | 24 | ENV DB_ROOT_PASS='12345' 25 | ENV OM_USER="om_admin" 26 | ENV OM_PASS="1Q2w3e4r5t^y" 27 | ENV DAEMON_USER="nobody" 28 | ENV DAEMON_UID="65534" 29 | ENV OM_DB_NAME="openmeetings" 30 | ENV OM_DB_TYPE="mysql" 31 | ENV OM_DB_HOST="localhost" 32 | ENV OM_DB_PORT="3306" 33 | ENV OM_DB_USER="om_admin" 34 | ENV OM_DB_PASS="12345" 35 | ENV OM_KURENTO_WS_URL="ws://127.0.0.1:8888/kurento" 36 | ENV TURN_URL="" 37 | ENV TURN_USER="" 38 | ENV TURN_PASS="" 39 | ENV OM_DATA_DIR="/opt/omdata" 40 | ENV work=/opt 41 | ENV OM_HOME=/opt/openmeetings 42 | ENV MYSQL_J_VER="9.1.0" 43 | ENV DB2_J_VER="12.1.0.0" 44 | ENV PORTS=5443 45 | ENV SERVER_TZ=UTC 46 | 47 | WORKDIR ${OM_HOME} 48 | RUN apt-get update && apt-get install -y --no-install-recommends \ 49 | apt-utils \ 50 | && apt-get install -y --no-install-recommends \ 51 | software-properties-common \ 52 | gnupg2 \ 53 | dirmngr \ 54 | unzip \ 55 | wget \ 56 | ghostscript \ 57 | libgs-dev \ 58 | imagemagick \ 59 | sox \ 60 | sudo \ 61 | openjdk-17-jre 62 | 63 | RUN apt-get install -y --no-install-recommends \ 64 | libreoffice \ 65 | ffmpeg \ 66 | && apt-get clean \ 67 | && rm -rf /var/lib/apt/lists/* \ 68 | \ 69 | && wget https://ci-builds.apache.org/job/OpenMeetings/job/openmeetings/lastSuccessfulBuild/artifact/openmeetings-server/target/apache-openmeetings-${OM_VERSION}-SNAPSHOT.tar.gz -O ${work}/om.tar.gz \ 70 | && tar -xzf ${work}/om.tar.gz --strip-components=1 -C ${OM_HOME}/ \ 71 | && rm -rf ${work}/om.tar.gz \ 72 | && wget https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_J_VER}/mysql-connector-j-${MYSQL_J_VER}.jar -P ${OM_HOME}/webapps/openmeetings/WEB-INF/lib \ 73 | && wget https://repo1.maven.org/maven2/com/ibm/db2/jcc/${DB2_J_VER}/jcc-${DB2_J_VER}.jar -P ${OM_HOME}/webapps/openmeetings/WEB-INF/lib \ 74 | && sed -i 's|||g' /etc/ImageMagick-6/policy.xml 75 | 76 | # && wget "https://archive.apache.org/dist/openmeetings/${OM_VERSION}/bin/apache-openmeetings-${OM_VERSION}.tar.gz" -O ${work}/om.tar.gz \ 77 | # && wget "https://archive.apache.org/dist/openmeetings/${OM_VERSION}/bin/apache-openmeetings-${OM_VERSION}.tar.gz.asc" -O ${work}/om.asc \ 78 | # && export GNUPGHOME="$(mktemp -d)" \ 79 | # && for server in hkp://ipv4.pool.sks-keyservers.net:80 \ 80 | # hkp://ha.pool.sks-keyservers.net:80 \ 81 | # hkp://pgp.mit.edu:80 \ 82 | # hkp://keyserver.ubuntu.com:80 \ 83 | # hkp://keyserver.pgp.com:80 \ 84 | # ; do \ 85 | # gpg --keyserver "$server" --recv-keys 8456901E && break || echo "Trying new server..." \ 86 | # ; done \ 87 | # && gpg --batch --verify ${work}/om.asc ${work}/om.tar.gz \ 88 | # && tar -xzf ${work}/om.tar.gz --strip-components=1 -C ${OM_HOME}/ \ 89 | # && rm -rf ${GNUPGHOME} ${work}/om.asc ${work}/om.tar.gz \ 90 | 91 | WORKDIR ${work} 92 | COPY scripts/*.sh ./ 93 | 94 | RUN chmod a+x ${work}/*.sh 95 | 96 | ARG BUILD_TYPE="min" 97 | ENV OM_TYPE=${BUILD_TYPE} 98 | 99 | RUN cat /etc/issue \ 100 | \ 101 | && echo "OM server of type ${OM_TYPE} will be built" \ 102 | \ 103 | && ./om_install.sh 104 | 105 | EXPOSE ${PORTS} 106 | 107 | ENTRYPOINT [ "bash", "-c", "${work}/om.sh" ] 108 | 109 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # openmeetings-docker 2 | 3 | Docker image for OM (version 8.0.0, WebRTC) 4 | 5 | 6 | ### CREDENTIALS: 7 | 8 | |Description|Value| 9 | |-----------|-----| 10 | |Db type| MySql| 11 | |Db root password|`12345`| 12 | |OM DB user|`om_admin`| 13 | |OM DB user password|`12345`| 14 | |OM admin user|`om_admin`| 15 | |OM admin user password|`1Q2w3e4r5t^y`| 16 | 17 | ### USEFUL PARAMETERS: 18 | 19 | |Env Variable|Description| 20 | |-----------|-----| 21 | |`TURN_URL`| Turn server URL | 22 | |`TURN_USER`| Turn server user | 23 | |`TURN_PASS`| Turn server user password | 24 | 25 | ## RUN INSTRUCTIONS 26 | 27 | ### to run (full) OM: 28 | ``` 29 | docker run -i --rm --network host apache/openmeetings:8.0.0 30 | ``` 31 | 32 | ### to run (mini) OM: 33 | ``` 34 | docker run -p 5443:5443 \ 35 | -e OM_KURENTO_WS_URL="ws://EXT_IP:8888/kurento" \ 36 | -e OM_DB_HOST=EXT_IP \ 37 | -e OM_DB_USER=db_user \ 38 | -e OM_DB_PASS=secret_pass \ 39 | --mount type=bind,source=/opt/omdata,target=/opt/omdata \ 40 | -it apache/openmeetings:min-8.0.0 41 | 42 | ``` 43 | > Please Specify `TURN*` parameters in case users from other networks are expected 44 | 45 | Please **NOTE** DB password will be inserted into `XML` file so all xml entities should be correctly escaped 46 | 47 | here are some good examples: 48 | 49 | ``` 50 | -e OM_DB_PASS=12345 51 | 52 | -e "OM_DB_PASS=Good password with whitespaces" 53 | 54 | -e 'OM_DB_PASS=G00d&Str0ngPWD_with>Sign' 55 | ``` 56 | 57 | ### To access OM 58 | 59 | `https://localhost:5443/openmeetings` 60 | 61 | 62 | 63 | ## INSTRUCTIONS FOR DEVELOPERS: 64 | 65 | ### complete clean-up 66 | ```bash 67 | docker rm $(docker ps -a -q) ; docker rmi -f $(docker images -q) 68 | ``` 69 | 70 | ### Authentication 71 | 72 | please contact INFRA in case you don't have permissions to push to 73 | https://hub.docker.com/repository/docker/apache/openmeetings/general 74 | 75 | ``` 76 | docker login --username solomax666 77 | ``` 78 | AUTH token as password 79 | 80 | 81 | ### to build minimized: 82 | This version has no DB and Kurento server, both should be passed via environment 83 | See below 84 | ``` 85 | docker build -t apache/openmeetings:min-8.0.0 . 86 | docker push apache/openmeetings:min-8.0.0 87 | ``` 88 | 89 | ### to build full: 90 | ``` 91 | docker build -t apache/openmeetings:8.0.0 --build-arg BUILD_TYPE=full . 92 | docker push apache/openmeetings:8.0.0 93 | ``` 94 | 95 | ### to run (full) OM (locally built): 96 | ``` 97 | docker run --network host -e OM_TYPE=full -it [container-id] 98 | 99 | ``` 100 | 101 | * to enter machine: 102 | ``` 103 | docker run -it om-server-full bash 104 | ``` 105 | 106 | * to join running machine 107 | ``` 108 | # get container id 109 | docker ps 110 | # join 111 | docker exec -it [container-id] bash 112 | ``` 113 | 114 | * to stop: 115 | ``` 116 | docker stop $(docker ps -aq) 117 | ``` 118 | 119 | -------------------------------------------------------------------------------- /scripts/om.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ############################################# 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ############################################# 15 | 16 | . ${work}/om_euser.sh 17 | echo "OM server of type ${OM_TYPE} will be run" 18 | CLASSES_HOME=${OM_HOME}/webapps/openmeetings/WEB-INF/classes 19 | export JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Dopenjpa.serialization.class.blacklist=* -Dopenjpa.serialization.class.whitelist=[B,java.util,org.apache.openjpa,org.apache.openmeetings.db.entity" 20 | if [ "${OM_TYPE}" == "min" ]; then 21 | DB_CFG_HOME=${CLASSES_HOME}/META-INF 22 | cp ${DB_CFG_HOME}/${OM_DB_TYPE}_persistence.xml ${DB_CFG_HOME}/persistence.xml 23 | case ${OM_DB_TYPE} in 24 | db2) 25 | sed -i "s|localhost:50000/openmeet|${OM_DB_HOST}:${OM_DB_PORT}/${OM_DB_NAME}|g" ${DB_CFG_HOME}/persistence.xml 26 | ;; 27 | mssql) 28 | sed -i "s|localhost:1433;databaseName=openmeetings|${OM_DB_HOST}:${OM_DB_PORT};databaseName=${OM_DB_NAME}|g" ${DB_CFG_HOME}/persistence.xml 29 | ;; 30 | mysql) 31 | sed -i "s|localhost:3306/openmeetings?|${OM_DB_HOST}:${OM_DB_PORT}/${OM_DB_NAME}?serverTimezone=${SERVER_TZ}\&|g" ${DB_CFG_HOME}/persistence.xml 32 | ;; 33 | postgresql) 34 | sed -i "s|localhost:5432/openmeetings|${OM_DB_HOST}:${OM_DB_PORT}/${OM_DB_NAME}|g" ${DB_CFG_HOME}/persistence.xml 35 | ;; 36 | esac 37 | sed -i "s/Username=/Username=${OM_DB_USER}/g; s/Password=/Password=${OM_DB_PASS}/g" ${DB_CFG_HOME}/persistence.xml 38 | if [ ! -d "${OM_DATA_DIR}" ]; then 39 | echo "Make data dir ${OM_DATA_DIR}" 40 | mkdir "${OM_DATA_DIR}" 41 | fi 42 | sed -i "s|ws://127.0.0.1:8888/kurento|${OM_KURENTO_WS_URL}|g" ${CLASSES_HOME}/openmeetings.properties 43 | 44 | export CATALINA_OPTS="-DDATA_DIR=${OM_DATA_DIR}" 45 | else 46 | export GST_REGISTRY=/tmp/.gstcache 47 | sudo ln -nfs /usr/lib/x86_64-linux-gnu/libopenh264.so.4 /usr/lib/x86_64-linux-gnu/libopenh264.so.0 48 | service kurento-media-server start 49 | fi 50 | if [ -n "${TURN_URL}" ]; then 51 | sed -i "s|kurento.turn.url=|kurento.turn.url=${TURN_URL}|g" ${CLASSES_HOME}/openmeetings.properties 52 | fi 53 | if [ -n "${TURN_USER}" ]; then 54 | sed -i "s|kurento.turn.user=|kurento.turn.user=${TURN_USER}|g" ${CLASSES_HOME}/openmeetings.properties 55 | fi 56 | if [ -n "${TURN_PASS}" ]; then 57 | sed -i "s|kurento.turn.secret=|kurento.turn.secret=${TURN_PASS}|g" ${CLASSES_HOME}/openmeetings.properties 58 | fi 59 | echo Current max open files is $(su nobody --shell /bin/bash --command "ulimit -n") 60 | cd ${OM_HOME} 61 | sudo --preserve-env=JAVA_OPTS --preserve-env=CATALINA_OPTS -u ${DAEMON_USER} HOME=/tmp ${OM_HOME}/bin/catalina.sh run 62 | 63 | -------------------------------------------------------------------------------- /scripts/om_euser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ############################################# 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ############################################# 15 | if [[ `id -u ${DAEMON_USER} 2>/dev/null || echo -1` < 0 ]]; then 16 | useradd -l -u ${DAEMON_UID} ${DAEMON_USER} 17 | fi 18 | if [ ! -d "${OM_HOME}/logs" ]; then 19 | mkdir ${OM_HOME}/logs 20 | fi 21 | chown -R ${DAEMON_USER} ${OM_HOME} 22 | 23 | if [ "${OM_TYPE}" != "min" ]; then 24 | if [ ! -d "/var/run/mysqld" ]; then 25 | mkdir /var/run/mysqld 26 | fi 27 | 28 | if [ -f "/var/run/mysqld/mysqld.sock.lock" ]; then 29 | rm -rf /var/run/mysqld/mysqld.sock.lock 30 | fi 31 | usermod -d /var/lib/mysql mysql 32 | chown -R mysql:mysql /var/lib/mysql /var/run/mysqld && service mysql restart 33 | fi 34 | 35 | echo "${DAEMON_USER} hard nofile 16384" >> /etc/security/limits.conf 36 | echo "${DAEMON_USER} soft nofile 16384" >> /etc/security/limits.conf 37 | 38 | -------------------------------------------------------------------------------- /scripts/om_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # ############################################# 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ############################################# 15 | 16 | echo "OM server of type ${OM_TYPE} will be set-up" 17 | if [ "${OM_TYPE}" != "min" ]; then 18 | 19 | apt-get update 20 | apt-get install -y --no-install-recommends gnupg2 dirmngr 21 | apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 234821A61B67740F89BFD669FC8A16625AFA7A83 22 | 23 | KURENTO_LIST="/etc/apt/sources.list.d/kurento.list" 24 | echo "# Kurento Media Server - Release packages" > ${KURENTO_LIST} 25 | echo "deb [arch=amd64] http://ubuntu.openvidu.io/7.0.0 focal main" >> ${KURENTO_LIST} 26 | 27 | echo "mysql-server mysql-server/root_password password ${DB_ROOT_PASS}" | debconf-set-selections 28 | echo "mysql-server mysql-server/root_password_again password ${DB_ROOT_PASS}" | debconf-set-selections 29 | echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections 30 | 31 | apt-get update 32 | apt-get install -y --no-install-recommends \ 33 | kurento-media-server \ 34 | mysql-server \ 35 | mysql-client 36 | apt-get clean 37 | rm -rf /var/lib/apt/lists/* 38 | sed -i "s/DAEMON_USER=\"kurento\"/DAEMON_USER=\"${DAEMON_USER}\"/g" /etc/default/kurento-media-server 39 | 40 | . ${work}/om_euser.sh 41 | 42 | mysql -u root -p${DB_ROOT_PASS} -se "CREATE DATABASE ${OM_DB_NAME} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" 43 | mysql -u root -p${DB_ROOT_PASS} -se "CREATE USER '${OM_DB_USER}'@'localhost' IDENTIFIED BY '${OM_DB_PASS}'" 44 | mysql -u root -p${DB_ROOT_PASS} -se "grant all privileges on ${OM_DB_NAME}.* to '${OM_DB_USER}'@'localhost'" 45 | 46 | cd ${OM_HOME} 47 | pwd 48 | ls -la 49 | 50 | CLASSES_HOME=${OM_HOME}/webapps/openmeetings/WEB-INF/classes 51 | DB_CFG_HOME=${CLASSES_HOME}/META-INF 52 | sed -i "s|useSSL=false\&|useSSL=false\&allowPublicKeyRetrieval=true\&|g" ${DB_CFG_HOME}/mysql_persistence.xml 53 | 54 | 55 | sudo -u ${DAEMON_USER} ./admin.sh -v -i -tz Europe/Berlin -email your.email@gmail.com -group group \ 56 | -user ${OM_USER} --password ${OM_PASS} \ 57 | --db-type mysql --db-host localhost --db-name ${OM_DB_NAME} \ 58 | --db-user ${OM_DB_USER} --db-pass ${OM_DB_PASS} 59 | fi 60 | 61 | echo "session required pam_limits.so" >> /etc/pam.d/common-session 62 | 63 | --------------------------------------------------------------------------------