Site Tools


Writing /var/www/dokuwiki/data/cache/6/66ecc4bfc3b4eb190e9c106dc89d19dd.metadata failed
Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
New release available: 2020-07-29 "Hogfather". upgrade now! [51.3] (what's this?)
New release candidate 3 available: 2020-06-09 "Hogfather". upgrade now! [51.2] (what's this?)
New release candidate 2 available: 2020-06-01 "Hogfather". upgrade now! [51.1] (what's this?)
New release candidate available: 2020-06-01 "Hogfather". upgrade now! [51] (what's this?)
Hotfix release available: 2018-04-22c "Greebo". upgrade now! [50.3] (what's this?)
Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
expertus_meeting_application_setup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
expertus_meeting_application_setup [2021/07/30 12:40]
157.51.114.165 created
expertus_meeting_application_setup [2021/07/30 13:39] (current)
157.51.114.165 [Nginx configuration]
Line 1: Line 1:
-**Install rbenv and Dependencies**+=====Install rbenv and Dependencies===== 
 + 
 +First, update your package list 
 + 
 +**sudo apt update** 
 + 
 +Next, install the dependencies required to install Ruby: 
 + 
 +**sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libmysqlclient-dev libgdbm-dev**  
 + 
 + 
 +if anything breaks the installation,​ remove the particular dependency and install the other packages 
 +Once the dependencies download, you can install rbenv itself. Clone the rbenv repository from GitHub into the directory ~/.rbenv 
 + 
 +**git clone https://​github.com/​rbenv/​rbenv.git ~/​.rbenv** 
 + 
 +Next, add ~/​.rbenv/​bin to your $PATH so that you can use the rbenv command line utility. Do this by altering your ~/.bashrc file so that it affects future login sessions: 
 + 
 +**echo '​export PATH="​$HOME/​.rbenv/​bin:​$PATH"'​ >> ~/​.bashrc** 
 + 
 +Then add the command eval "​$(rbenv init -)" to your ~/.bashrc file so rbenv loads automatically:​ 
 + 
 +**echo 'eval "​$(rbenv init -)"'​ >> ~/​.bashrc** 
 + 
 +Next, apply the changes you made to your ~/.bashrc file to your current shell session: 
 + 
 +**source ~/​.bashrc** 
 + 
 +Verify that rbenv is set up properly by using the type command, which will display more information about the rbenv command: 
 + 
 +**type rbenv** 
 + 
 +Your terminal window will display something starts with rbenv is a function 
 + 
 +=====Installing Ruby with ruby-build===== 
 + 
 +Next, install the ruby-build, plugin. This plugin adds therbenv install command, which simplifies the installation process for new versions of Ruby: 
 + 
 +**git clone https://​github.com/​rbenv/​ruby-build.git ~/​.rbenv/​plugins/​ruby-build** 
 + 
 +With the ruby-build plugin now installed, you can install versions of Ruby y may need through a simple command. First, let’s list all the available versions of Ruby: 
 + 
 +**rbenv install -l** 
 + 
 +if the above command throws error, you need to close the terminal and open the terminal again to load bashrc file, setting up rbenv 
 + 
 + 
 +Let’s install Ruby 2.6.3 
 + 
 +**rbenv install 2.6.3** 
 + 
 +Once it’s done installing, set it as our default version of Ruby with the global sub-command 
 + 
 +**rbenv global 2.6.3** 
 + 
 +Verify that Ruby was properly installed by checking its version number: 
 + 
 +**ruby -v** 
 + 
 +Gems are the way Ruby libraries are distributed. You use the gem command to manage these gems 
 + 
 +When you install a gem, the installation process generates local documentation. This can add a significant amount of time to each gem’s installation process, so turn off local documentation generation by creating a file called ~/.gemrc which contains a configuration setting to turn off this feature 
 + 
 +**echo "gem: --no-document"​ > ~/​.gemrc** 
 + 
 +Bundler is a tool that manages gem dependencies for projects. ​Install ​the Bundler gem, particularly the version 2.1.4 
 + 
 +**gem install bundler -v 2.1.4** 
 + 
 +=====Installing MySQL===== 
 + 
 +To install it, update the package index on your server with apt 
 + 
 +**sudo apt update** 
 + 
 +Then install the default package 
 + 
 +**sudo apt install mysql-server** 
 + 
 +This will install MySQL latest version. below will install mysql 5.7, As part of installation you provide necessary input to set password for the root user 
 + 
 +=====Deploy the application===== 
 + 
 +To deploy the meeting application,​ first we need to clone the meeting application repository. Every time deploy the application,​ go inside /​home/​expdev01/​meeting/​trunk 
 + 
 +**cd /​home/​expdev01/​** 
 + 
 +create a directory meeting 
 + 
 +**mkir meeting**  
 + 
 +clone expertus meeting application inside meeting directory 
 + 
 +**cd meeting** 
 +**svn checkout https://​repos.exphosted.com/​svnrepos/​meeting/​server/​trunk** 
 + 
 + 
 +install the required gems, with bundle command 
 + 
 +**cd trunk** 
 +**bundle install** 
 + 
 +Now, the capistrano gem is installed and ready for the deployment 
 +  
 +**cap production deploy** 
 + 
 +Above command will start deploy the meeting application to the actual directory, for that we need to create apps folder inside the home directory 
 + 
 +**cd /​home/​expdev01/​** 
 +**mkdir apps** 
 +**cd apps** 
 +**mkdir meeting** 
 + 
 +Copy shared files 
 + 
 +As part of the deployment, script will stop due to shared files does not exit, we need to copy all the shared files under config folder in the working application or the existing servers 
 + 
 +active_directory.yml ​ bigbluebutton.yml ​ database.yml ​ storage.yml 
 + 
 +all the above 4 files need to be copied and paste inside 
 + 
 +/​home/​expdev01/​apps/​meeting/​shared/​config/​ 
 + 
 +then redo the same deployment command 
 + 
 +**cap production deploy** 
 + 
 +once the deployment is success, can start/stop puma server with below 2 commands 
 + 
 +**cap production puma:​stop** 
 +**cap production puma:​start** 
 + 
 +If you face, any problem while start puma server, run the below command to start puma 
 + 
 +**RBENV_ROOT=~/​.rbenv RBENV_VERSION=2.6.3 ~/​.rbenv/​bin/​rbenv exec bundle exec puma -C /​home/​expdev01/​apps/​meeting/​shared/​puma.rb –daemon** 
 + 
 +=====Nginx configuration===== 
 + 
 +configure nginx add below code to nginx configuration file and the restart the nginx service 
 +file - /​etc/​nginx/​sites-enabled/​bigbluebutton 
 + 
 + 
 +upstream app_meeting { 
 +        server unix:///​home/​expdev01/​apps/​meeting/​shared/​tmp/​sockets/​meeting-puma.sock fail_timeout=0;​ 
 +
 + 
 +server { 
 +        listen 80; 
 +        server_name dev01meet.exphosted.com;​ 
 +        return 301 https://​dev01meet.exphosted.com$request_uri;​ 
 +
 + 
 +server { 
 +        #listen 80; 
 +        #listen 443 ssl; 
 +        #listen 443 ssl http2 default; 
 +        listen 443 ssl;   
 +        #listen [::]:443 ssl http2; 
 +        server_name ​ dev01meet.exphosted.com;​ 
 +        gzip_static ​            on; 
 +        gzip on; 
 +        gzip_comp_level 6; 
 +        gzip_min_length ​   256; 
 +        gzip_proxied ​      ​any;​ 
 +        gzip_vary on; 
 +        gzip_buffers ​   24 64k; 
 +        gzip_types application/​atom+xml application/​javascript application/​json application/​ld+json application/​manifest+json application/​rss+xml application/​vnd.geo+json application/​vnd.ms-fontobject application/​x-font-ttf application/​x-web-app-manifest+json application/​xhtml+xml application/​xml font/​opentype image/bmp image/​svg+xml image/​x-icon text/​cache-manifest text/css text/plain text/vcard text/​vnd.rim.location.xloc text/vtt text/​x-component text/​x-cross-domain-policy;​ 
 + 
 +        client_max_body_size 4G; 
 + root /​home/​expdev01/​apps/​meeting/​current/​public;​ 
 +        access_log /​home/​expdev01/​apps/​meeting/​current/​log/​nginx-access.log;​ 
 +        error_log /​home/​expdev01/​apps/​meeting/​current/​log/​nginx-error.log;​ 
 + 
 +        ssl_certificate ​          /​etc/​nginx/​ssl/​server.crt;​ 
 +        ssl_certificate_key ​      /​etc/​nginx/​ssl/​server.key;​ 
 +        ssl_protocols TLSv1.2; 
 +        ssl_ciphers '​ECDHE-ECDSA-AES256-GCM-SHA384:​ECDHE-RSA-AES256-GCM-SHA384:​ECDHE-ECDSA-CHACHA20-POLY1305:​ECDHE-RSA-CHACHA20-POLY1305:​ECDHE-ECDSA-AES128-GCM-SHA256:​ECDHE-RSA-AES128-GCM-SHA256:​ECDHE-ECDSA-AES256-SHA384:​ECDHE-RSA-AES256-SHA384:​ECDHE-ECDSA-AES128-SHA256:​ECDHE-RSA-AES128-SHA256';​ 
 +        ssl_prefer_server_ciphers on; 
 + 
 +        location ~* ^/assets/ { 
 +                add_header '​Access-Control-Allow-Origin'​ '*'; 
 +                proxy_set_header Host $host; 
 +                proxy_set_header X-Real-IP ​ $remote_addr;​ 
 +                proxy_set_header X-Forwarded-Proto https; 
 +                proxy_set_header X-Forwarded-Proto $scheme; 
 +                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;​ 
 +         ​ proxy_pass http://​app_meeting;​ 
 +
 +         
 +        location / { 
 +                add_header '​Access-Control-Allow-Origin'​ '*'; 
 +                add_header '​Access-Control-Allow-Credentials'​ '​true';​ 
 +      add_header '​Access-Control-Allow-Methods'​ 'GET, POST, OPTIONS';​ 
 +      add_header '​Access-Control-Allow-Headers'​ '​DNT,​X-CustomHeader,​Keep-Alive,​User-Agent,​X-Requested-With,​If-Modified-Since,​Cache-Control,​X-Forwarded-For,​content-length';​ 
 +                proxy_http_version 1.1; 
 +                proxy_set_header Host $host; 
 +                proxy_set_header X-Real-IP ​ $remote_addr;​ 
 +                proxy_set_header X-Forwarded-Proto https; 
 +                proxy_set_header X-Forwarded-Proto $scheme; 
 +                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;​ 
 +                proxy_pass http://​app_meeting;​ 
 +        } 
 + 
 +        location /cable { 
 + proxy_pass http://​app_meeting;​ 
 + proxy_http_version 1.1; 
 + proxy_set_header Upgrade $http_upgrade;​ 
 + proxy_set_header Connection "​Upgrade";​ 
 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;​ 
 + proxy_set_header Host $http_host;​ 
 + proxy_set_header X-Real-IP $remote_addr;​ 
 + proxy_set_header X-Forwarded-Proto https; 
 + proxy_redirect off; 
 +
 + error_page ​  500 502 503 504  /​50x.html;​ 
 +        location = /50x.html { 
 +                root   /​usr/​share/​nginx/​html;​ 
 +        } 
 +
 + 
 + 
 + 
expertus_meeting_application_setup.1627648837.txt.gz · Last modified: 2021/07/30 12:40 by 157.51.114.165