{"id":617,"date":"2020-06-26T16:54:18","date_gmt":"2020-06-26T14:54:18","guid":{"rendered":"http:\/\/www.notsayfam.com\/?p=617"},"modified":"2020-06-26T16:54:20","modified_gmt":"2020-06-26T14:54:20","slug":"scalelite-kurulumu","status":"publish","type":"post","link":"https:\/\/www.notsayfam.com\/?p=617","title":{"rendered":"ScaleLite Kurulumu"},"content":{"rendered":"\n<p><strong>Docker repository eklenmesi ve kurulum i\u015flemleri<\/strong><\/p>\n\n\n\n<p>A\u015fa\u011f\u0131daki i\u015flemler root yetkisi ile yap\u0131lmal\u0131d\u0131r veya eksik komutlar\u0131n ba\u015f\u0131na sudo ekleyiniz.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common<br>curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add &#8211;<br>sudo apt-key fingerprint 0EBFCD88<br>sudo add-apt-repository &#8220;deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\u201c<br>sudo apt-get update<br>sudo apt-get install docker-ce docker-ce-cli containerd.io<\/p><\/blockquote>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Test<\/strong><\/p>\n\n\n\n<p>sudo docker run hello-world<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>ScaleLite i\u00e7in Docker network objesi olu\u015fturulmas\u0131<\/strong><\/p>\n\n\n\n<p>docker network create scalelite<\/p>\n\n\n\n<p><strong>SCALEL\u0130TE Taslak\/Parametre dosyam\u0131z<\/strong><\/p>\n\n\n\n<p>Link: <a href=\"https:\/\/github.com\/blindsidenetworks\/scalelite\">https:\/\/github.com\/blindsidenetworks\/scalelite#Configuration<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>URL_HOST=\u00a0 ScaleLite dns ad\u0131m\u0131z<br>SECRET_KEY_BASE= Ruby servislerinden eri\u015filecek internal secret code<br>LOADBALANCER_SECRET= Disaridan (LMS\/Sakai) erisilirken kullanilacak secret code<br>DATABASE_URL=\u00a0 postgresql ba\u011flant\u0131s\u0131 bilgisi\u00a0\u00a0 postgresql:\/\/username:password@IP<br>REDIS_URL=\u00a0\u00a0 redisserver bilgisi\u00a0 redis:\/\/:password@IP:6379<br>WEB_CONCURRENCY=\u00a0 puma web server job say\u0131s\u0131 cpu\/memory say\u0131s\u0131na g\u00f6re belirlenir her bir i\u015f i\u00e7in 2 veya 256Mb ram i\u00e7in 1 olarak hesaplanmal\u0131.<br>INTERVAL=\u00a0 ka\u00e7 saniyede bir bigbluebutton sunucu durumlar\u0131n\u0131n toplanaca\u011f\u0131, varsay\u0131lan 60<br>SCALELITE_TAG=\u00a0 ScaleLiteS\u00fcr\u00fcm Bilgisi v1<br>SCALELITE_RECORDING_DIR= Nfs kay\u0131tlar\u0131n\u0131n tutulaca\u011f\u0131 dizin \/mnt\/scalelite-recordings\/var\/bigbluebutton<br>NGINX_SSL=ssl eri\u015fimi olacak ise true yap\u0131lmal\u0131<br>SCALELITE_NGINX_EXTRA_OPTS= ngix i\u00e7in parametreler (ssl dizini vb.)\u00a0 &#8211;mount type=bind,source=\/etc\/letsencrypt,target=\/etc\/nginx\/ssl,readonly<\/p><\/blockquote>\n\n\n\n<p>\u00d6rnek Dosya<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>nano etc\/default\/scalelite<\/strong><br>URL_HOST=<span class=\"has-inline-color has-vivid-red-color\">scalelite.alanadiniz.com<\/span><br>SECRET_KEY_BASE=<span class=\"has-inline-color has-vivid-red-color\">InternalSecretCodeRubyTarafindanErisimIcin<\/span><br>LOADBALANCER_SECRET=<span class=\"has-inline-color has-vivid-red-color\">ExternalSecretCodeLMSErisimiIcin<\/span><br>DATABASE_URL=postgresql:\/\/postgres:<span class=\"has-inline-color has-vivid-red-color\">PostGreSqlSifresi<\/span>@<span class=\"has-inline-color has-vivid-red-color\">IpAdresiniz<\/span><br>REDIS_URL=redis:\/\/:<span class=\"has-inline-color has-vivid-red-color\">RedisSifresi<\/span>@<span class=\"has-inline-color has-vivid-red-color\">IpAdresiniz<\/span>:6379<br>WEB_CONCURRENCY=2<br>INTERVAL=30<br>SCALELITE_TAG=v1<br>SCALELITE_RECORDING_DIR=\/mnt\/scalelite-recordings\/var\/bigbluebutton<br>NGINX_SSL=true<br>SCALELITE_NGINX_EXTRA_OPTS=&#8211;mount type=bind,source=\/etc\/letsencrypt,target=\/etc\/nginx\/ssl,readonly<\/p><\/blockquote>\n\n\n\n<p><strong>SCALELITE SERVISLERININ OLUSTURULMASI<\/strong><\/p>\n\n\n\n<p>G\u00fcncel dosyalar <a href=\"https:\/\/github.com\/blindsidenetworks\/scalelite\/tree\/master\/systemd\">https:\/\/github.com\/blindsidenetworks\/scalelite\/tree\/master\/systemd<\/a> adresinde yer almaktad\u0131r.  <\/p>\n\n\n\n<p><strong>scalelite.target<\/strong><strong> <\/strong>T\u00fcm Servislerin Merkezi y\u00f6netimi i\u00e7in<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>nano \/etc\/systemd\/system\/scalelite.target<\/strong><\/p><p>[Unit]<br>Description=Scalelite<br>[Install]<br>WantedBy=multi-user.target<\/p><\/blockquote>\n\n\n\n<p><strong>scalelite-api<\/strong>  Api Hizmeti<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>nano \/etc\/systemd\/system\/scalelite-api.service<\/strong><\/p><p>[Unit]<br>Description=Scalelite API<br>After=network-online.target<br>Wants=network-online.target<br>Before=scalelite.target<br>PartOf=scalelite.target<br>[Service]<br>EnvironmentFile=\/etc\/default\/scalelite<br>ExecStartPre=-\/usr\/bin\/docker kill scalelite-api<br>ExecStartPre=-\/usr\/bin\/docker rm scalelite-api<br>ExecStartPre=\/usr\/bin\/docker pull blindsidenetwks\/scalelite:${SCALELITE_TAG}-api<br>ExecStart=\/usr\/bin\/docker run &#8211;name scalelite-api &#8211;env-file \/etc\/default\/scalelite &#8211;network scalelite &#8211;mount type=bind,source=${SCALELITE_RECORDING_DIR},target=\/var\/bigbluebutton blindsidenetwks\/scalelite:${SCALELITE_TAG}-api<br>[Install] WantedBy=scalelite.target<\/p><\/blockquote>\n\n\n\n<p><strong>scalelite-nginx <\/strong>Nginx Hizmeti<\/p>\n\n\n\n<p><strong>nano \/etc\/<\/strong><strong>systemd<\/strong><strong>\/system\/<\/strong><strong>scalelite-nginx.service<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[Unit]<br>Description=Scalelite Nginx<br>After=network-online.target<br>Wants=network-online.target<br>Before=scalelite.target<br>PartOf=scalelite.target<br>After=scalelite-api.service<br>Requires=scalelite-api.service<br>After=remote-fs.target<br>[Service]<br>EnvironmentFile=\/etc\/default\/scalelite<br>ExecStartPre=-\/usr\/bin\/docker kill scalelite-nginx<br>ExecStartPre=-\/usr\/bin\/docker rm scalelite-nginx<br>ExecStartPre=\/usr\/bin\/docker pull blindsidenetwks\/scalelite:${SCALELITE_TAG}-nginx<br>ExecStart=\/usr\/bin\/docker run &#8211;name scalelite-nginx &#8211;env-file \/etc\/default\/scalelite &#8211;network scalelite &#8211;publish 80:80 &#8211;publish 443:443 &#8211;mount type=bind,source=${SCALELITE_RECORDING_DIR}\/published,target=\/var\/bigbluebutton\/published,readonly $SCALELITE_NGINX_EXTRA_OPTS blindsidenetwks\/scalelite:${SCALELITE_TAG}-nginx<br>[Install] WantedBy=scalelite.target<\/p><\/blockquote>\n\n\n\n<p><strong>ScaleLite<\/strong><strong> <\/strong><strong>Kurulumu<\/strong><strong> \u2013 <\/strong><strong>Servislerin<\/strong><strong> <\/strong><strong>A\u00e7\u0131lmas\u0131<\/strong><strong> (<\/strong><strong>Api,Web<\/strong><strong> ve Merkezi <\/strong><strong>Y\u00f6netim<\/strong><strong> <\/strong><strong>Servisi<\/strong><strong>)<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>systemctl enable scalelite.target<br>systemctl enable scalelite-api.service<br>systemctl enable scalelite-nginx.service<\/p><\/blockquote>\n\n\n\n<p><strong>Servis<\/strong><strong> <\/strong><strong>Ba\u015flat\u0131lmas\u0131<\/strong><strong> ve Durum <\/strong><strong>Kontrol\u00fc<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>systemctl restart scalelite.target<br>systemctl status scalelite-api.service<br>systemctl status scalelite-nginx.service<\/p><\/blockquote>\n\n\n\n<p><strong>Hata<\/strong><strong> <\/strong><strong>izleme<\/strong><strong> <\/strong><strong>i\u00e7in<\/strong><strong><\/strong><\/p>\n\n\n\n<p>tail -f \/var\/log\/syslog<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Veritaban\u0131n\u0131n Olu\u015fturulmas\u0131<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>docker exec -it scalelite-api bin\/rake db:setup<\/p><p>systemctl restart scalelite.target<\/p><\/blockquote>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"480\" src=\"https:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1-1024x480.png\" alt=\"\" data-id=\"619\" data-full-url=\"http:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1.png\" data-link=\"http:\/\/www.notsayfam.com\/?attachment_id=619\" class=\"wp-image-619\" srcset=\"https:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1-1024x480.png 1024w, https:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1-300x141.png 300w, https:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1-768x360.png 768w, https:\/\/www.notsayfam.com\/wp-content\/uploads\/2020\/06\/Picture1.png 1030w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>E\u011fer postgresql ba\u011flant\u0131s\u0131 ba\u015far\u0131l\u0131ysa yukar\u0131daki gibi veritaban\u0131 ve tablolar olu\u015fturulacakt\u0131r.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>scalelite-poller<\/strong> BigBlueButton Toplant\u0131\/y\u00fck durumu kontrol servisi<\/p>\n\n\n\n<p>nano \/etc\/systemd\/system\/scalelite-poller.service<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[Unit]<br>Description=Scalelite Meeting Status Poller<br>After=network-online.target<br>Wants=network-online.target<br>Before=scalelite.target<br>PartOf=scalelite.target<br>After=scalelite-api.service<br>[Service]<br>EnvironmentFile=\/etc\/default\/scalelite<br>ExecStartPre=-\/usr\/bin\/docker kill scalelite-poller<br>ExecStartPre=-\/usr\/bin\/docker rm scalelite-poller<br>ExecStartPre=\/usr\/bin\/docker pull blindsidenetwks\/scalelite:${SCALELITE_TAG}-poller<br>ExecStart=\/usr\/bin\/docker run &#8211;name scalelite-poller &#8211;env-file \/etc\/default\/scalelite &#8211;network scalelite blindsidenetwks\/scalelite:${SCALELITE_TAG}-poller<br>[Install]<br>WantedBy=scalelite.target<\/p><\/blockquote>\n\n\n\n<p><strong>scalelite-poller<\/strong><strong>&nbsp; <\/strong><strong>Servisinin<\/strong><strong> <\/strong><strong>a\u00e7\u0131lmas\u0131<\/strong><\/p>\n\n\n\n<p>&nbsp; systemctl enable scalelite-poller.service<\/p>\n\n\n\n<p><strong>T\u00fcm<\/strong><strong> Hizmetleri restart <\/strong><strong>edelim<\/strong><\/p>\n\n\n\n<p>&nbsp; systemctl restart scalelite.target<\/p>\n\n\n\n<p><strong>scalelite-poller<\/strong><strong>&nbsp; <\/strong><strong>Servis<\/strong><strong> <\/strong><strong>durumu<\/strong><\/p>\n\n\n\n<p>\u00a0 systemctl status scalelite-poller.service<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>scalelite-recording-importer <\/strong>BigBlueButton kay\u0131tlar\u0131n\u0131n import servisi<\/p>\n\n\n\n<p><strong>nano \/etc\/systemd\/system\/scalelite-recording-importer.service<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>[Unit]<br>Description=Scalelite Recording Importer<br>After=network-online.target<br>Wants=network-online.target<br>Before=scalelite.target<br>PartOf=scalelite.target<br>After=scalelite-api.service<br>After=remote-fs.target<br>[Service]<br>EnvironmentFile=\/etc\/default\/scalelite<br>ExecStartPre=-\/usr\/bin\/docker kill scalelite-recording-importer<br>ExecStartPre=-\/usr\/bin\/docker rm scalelite-recording-importer<br>ExecStartPre=\/usr\/bin\/docker pull blindsidenetwks\/scalelite:${SCALELITE_TAG}-recording-importer<br>ExecStart=\/usr\/bin\/docker run &#8211;name scalelite-recording-importer &#8211;env-file \/etc\/default\/scalelite &#8211;network scalelite &#8211;mount type=bind,source=${SCALELITE_RECORDING_DIR},target=\/var\/bigbluebutton blindsidenetwks\/scalelite:${SCALELITE_TAG}-recording-importer<br>[Install] <br>WantedBy=scalelite.target<\/p><\/blockquote>\n\n\n\n<p><strong>scalelite<\/strong><strong>-recording-importer&nbsp; <\/strong><strong>Servisinin<\/strong><strong> <\/strong><strong>a\u00e7\u0131lmas\u0131<\/strong><\/p>\n\n\n\n<p>&nbsp; systemctl enable scalelite-recording-importer.service<\/p>\n\n\n\n<p><strong>T\u00fcm<\/strong><strong> Hizmetleri restart <\/strong><strong>edelim<\/strong><\/p>\n\n\n\n<p>&nbsp; systemctl restart scalelite.target<\/p>\n\n\n\n<p><strong>scalelite<\/strong><strong>-recording-importer&nbsp; <\/strong><strong>Servis<\/strong><strong> <\/strong><strong>durumu<\/strong><\/p>\n\n\n\n<p>\u00a0 systemctl status scalelite-recording-importer.service<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Yukar\u0131daki i\u015flemler tamamland\u0131ktan sonra, a\u015fa\u011f\u0131daki komut ile scalelite-api container i\u00e7erisinde .\/bin\/rake servers komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda <strong>No servers are configured <\/strong>yaz\u0131s\u0131 \u00e7\u0131kacakt\u0131r.<\/p>\n\n\n\n<p>docker exec -it scalelite-api bin\/rake servers<\/p>\n\n\n\n<p>Bir sonraki yaz\u0131da sunucular nas\u0131l eklenir ve y\u00f6netilir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker repository eklenmesi ve kurulum i\u015flemleri A\u015fa\u011f\u0131daki i\u015flemler root yetkisi ile yap\u0131lmal\u0131d\u0131r veya eksik komutlar\u0131n ba\u015f\u0131na sudo ekleyiniz. sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add &#8211;sudo apt-key fingerprint 0EBFCD88sudo add-apt-repository &#8220;deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\u201csudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[113],"tags":[109,111],"class_list":["post-617","post","type-post","status-publish","format-standard","hentry","category-scalelite","tag-bigbluebutton","tag-scalelite"],"_links":{"self":[{"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/posts\/617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=617"}],"version-history":[{"count":1,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/posts\/617\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=\/wp\/v2\/posts\/617\/revisions\/620"}],"wp:attachment":[{"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.notsayfam.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}