{"id":975,"date":"2019-07-23T16:27:15","date_gmt":"2019-07-23T22:27:15","guid":{"rendered":"https:\/\/ugit.siua.ac.cr\/?p=975"},"modified":"2019-09-25T14:33:12","modified_gmt":"2019-09-25T20:33:12","slug":"jsxc-javascript-xmpp","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=975","title":{"rendered":"NEXTCLOUD: JSXC Javascript XMPP"},"content":{"rendered":"\n<ul class=\"wp-block-list\"><li>Actualizamos el sistema<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update &amp;&amp; apt upgrade<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos dependencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install dirmngr apt-transport-https<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos al sources list<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>echo deb http:\/\/http.debian.net\/debian stretch-backports main > \/etc\/apt\/sources.list.d\/backports.list<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos la llave<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos al sources list<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>echo deb https:\/\/dl.jsxc.org stable main > \/etc\/apt\/sources.list.d\/jsxc.list<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos la llave<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -qO - https:\/\/dl.jsxc.org\/archive.key | apt-key add -<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install -t stretch-backports ejabberd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo add-apt-repository ppa:ondrej\/php<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos dependencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install apache2 libapache2-mod-php php7.2-gd php7.2-json php7.2-sqlite3 php7.2-curl php7.2-mbstring php7.2-intl php7.2-imagick php7.2-xml php7.2-zip<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install python-certbot-apache xcauth python3-bsddb3 python3-systemd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install unattended-upgrades<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Servidor NEXTCLOUD<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos el host virtual<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/sites-available\/cloud.siua.ac.cr-le-ssl.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#************************************************************************\n#**************************        XMPP         *************************\n#************************************************************************\nProxyPass \/http-bind\/ https:\/\/coturn.siua.ac.cr:5280\/http-bind\/\nProxyPassReverse \/http-bind\/ https:\/\/coturn.siua.ac.cr:5280\/http-bind\/\nProxyPreserveHost On\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service apache2 restart<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">SERVIDOR COTURN<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos el archivo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/sites-available\/userdata.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Con el siguiente contenido<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n  ServerName userdata.cloud.siua.ac.cr\n  # Mostly to satisfy certbot\n  ServerAlias conference.cloud.siua.ac.cr pubsub.cloud.siua.ac.cr www.conference.cloud.siua.ac.cr www.pubsub.cloud.siua.ac.cr www.userdata.cloud.siua.ac.cr\n  # This DocumentRoot is irrelevant, but match ejabberd.conf anyway\n  DocumentRoot \/var\/www\/userdata\n  ErrorLog ${APACHE_LOG_DIR}\/userdata_error.log\n  CustomLog ${APACHE_LOG_DIR}\/userdata_access.log combined\n  ProxyPass \/ http:\/\/localhost:5288\/\n  ProxyPassReverse \/ http:\/\/localhost:5288\/\n  ProxyPreserveHost On\n&lt;\/VirtualHost>\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos la carpeta<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir --mode=660 \/var\/www\/userdata<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Cambiamos de due\u00f1o<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown ejabberd:ejabberd \/var\/www\/userdata<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos m\u00f3dulos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod headers env dir mime proxy proxy_http<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos el sitio<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite userdata\nsystemctl reload apache2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos proxy<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod proxy proxy_http\nsystemctl restart apache2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Servidor DNS<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Editamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano db.siua.ac.cr<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>userdata.cloud.siua.ac.cr.              IN      A       186.15.227.76\npubsub.cloud.siua.ac.cr.                IN      A       186.15.227.76\nconference.cloud.siua.ac.cr.            IN      A       186.15.227.76\n\n\nwww.userdata.cloud              IN      CNAME   userdata.cloud\nwww.conference.cloud            IN      CNAME   conference.cloud\nwww.pubsub.cloud                IN      CNAME   pubsub.cloud\n\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Editamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano db.rev.227<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>76      IN      PTR     userdata.nube.siua.ac.cr.\n76      IN      PTR     conference.nube.siua.ac.cr.\n76      IN      PTR     pubsub.nube.siua.ac.cr.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/bind9 restart<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Servidor COTURN<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Mandamos a generar certificado<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot --installer apache<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>RESULTADO<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Saving debug log to \/var\/log\/letsencrypt\/letsencrypt.log\n\nHow would you like to authenticate with the ACME CA?\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n1: Apache Web Server plugin - Beta (apache)\n2: Spin up a temporary webserver (standalone)\n3: Place files in webroot directory (webroot)\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nSelect the appropriate number [1-3] then [enter] (press 'c' to cancel): 1\n\nPlugins selected: Authenticator apache, Installer apache\n\nWhich names would you like to activate HTTPS for?\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n1: conference.cloud.siua.ac.cr\n2: www.conference.cloud.siua.ac.cr\n3: pubsub.cloud.siua.ac.cr\n4: www.pubsub.cloud.siua.ac.cr\n5: userdata.cloud.siua.ac.cr\n6: www.userdata.cloud.siua.ac.cr\n7: coturn.siua.ac.cr\n8: www.coturn.siua.ac.cr\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nSelect the appropriate numbers separated by commas and\/or spaces, or leave input\nblank to select all options shown (Enter 'c' to cancel): 1 2 3 4 5 6\n\nObtaining a new certificate\nPerforming the following challenges:\nhttp-01 challenge for conference.cloud.siua.ac.cr\nhttp-01 challenge for pubsub.cloud.siua.ac.cr\nhttp-01 challenge for userdata.cloud.siua.ac.cr\nhttp-01 challenge for www.conference.cloud.siua.ac.cr\nhttp-01 challenge for www.pubsub.cloud.siua.ac.cr\nhttp-01 challenge for www.userdata.cloud.siua.ac.cr\nWaiting for verification...\nCleaning up challenges\nCreated an SSL vhost at \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nEnabling available site: \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\nDeploying Certificate to VirtualHost \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\n\nPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n1: No redirect - Make no further changes to the webserver configuration.\n2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for\nnew sites, or if you're confident your site works on HTTPS. You can undo this\nchange by editing your web server's configuration.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nSelect the appropriate number [1-2] then [enter] (press 'c' to cancel): 2\n\nRedirecting vhost in \/etc\/apache2\/sites-enabled\/userdata.conf to ssl vhost in \/etc\/apache2\/sites-available\/userdata-le-ssl.conf\n\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nCongratulations! You have successfully enabled\nhttps:\/\/conference.cloud.siua.ac.cr, https:\/\/www.conference.cloud.siua.ac.cr,\nhttps:\/\/pubsub.cloud.siua.ac.cr, https:\/\/www.pubsub.cloud.siua.ac.cr,\nhttps:\/\/userdata.cloud.siua.ac.cr, and https:\/\/www.userdata.cloud.siua.ac.cr\n\nYou should test your configuration at:\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=conference.cloud.siua.ac.cr\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.conference.cloud.siua.ac.cr\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=pubsub.cloud.siua.ac.cr\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.pubsub.cloud.siua.ac.cr\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=userdata.cloud.siua.ac.cr\nhttps:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.userdata.cloud.siua.ac.cr\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\nIMPORTANT NOTES:\n - Congratulations! Your certificate and chain have been saved at:\n   \/etc\/letsencrypt\/live\/conference.cloud.siua.ac.cr\/fullchain.pem\n   Your key file has been saved at:\n   \/etc\/letsencrypt\/live\/conference.cloud.siua.ac.cr\/privkey.pem\n   Your cert will expire on 2019-06-10. To obtain a new or tweaked\n   version of this certificate in the future, simply run certbot again\n   with the \"certonly\" option. To non-interactively renew *all* of\n   your certificates, run \"certbot renew\"\n - If you like Certbot, please consider supporting our work by:\n\n   Donating to ISRG \/ Let's Encrypt:   https:\/\/letsencrypt.org\/donate\n   Donating to EFF:                    https:\/\/eff.org\/donate-le\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Aplicamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chgrp -R ssl-cert \/etc\/letsencrypt\/live\/cloud.siua.ac.cr\nchgrp -R ssl-cert \/etc\/letsencrypt\/archive\/cloud.siua.ac.cr\n\nchmod -R g+rX,o-rwx \/etc\/letsencrypt\/live\/cloud.siua.ac.cr\nchmod -R g+rX,o-rwx \/etc\/letsencrypt\/archive\/cloud.siua.ac.cr\n\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install ejabberd xcauth<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>A\u00f1adimos el usuario<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>adduser www-data ssl-cert\nservice apache2 restart<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configurar ejabberd<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Comandos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/ejabberd stop\n\/etc\/init.d\/ejabberd start\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificamos que est\u00e9 corriendo el servicio<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status ejabberd.service<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Configuramos el certificado<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/ejabberd\ncat \/etc\/letsencrypt\/live\/cloud.siua.ac.cr\/{privkey,fullchain}.pem > ejabberd.pem\nchown ejabberd:ejabberd ejabberd.pem\nchmod 640 ejabberd.pem<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ubuntu\nnano \/opt\/ejabberd\/conf\/ejabberd.yml\n\ndebian\nnano \/etc\/ejabberd\/ejabberd.yml<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>language: \"es\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>hosts:\n  - \"localhost\"\n\nX\n\nhosts:\n  - \"localhost\"\n  - \"cloud.siua.ac.cr\"\n  - \"nube.siua.ac.cr\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/ejabberd restart\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificamos que el servicio este corriendo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sT -O localhost<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos el usuario ugit<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ejabberdctl register ugit cloud.siua.ac.cr CA2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizamos (NO SE APLICA)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo updatedb\nsudo cp $(locate ejabberd.service) \/etc\/systemd\/system\nsudo systemctl daemon-reload\nsudo systemctl enable --now ejabberd\nsystemctl status ejabberd.service<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ejecutamos el comando para saber donde esta instalado<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>locate ejabberdctl | grep bin<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ingresamos a la ruta<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/ejabberd-19.02\/bin<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos un usuario<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ejabberdctl register ugit coturn.siua.ac.cr CA2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">WEB NEXTCLOUD<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>En aplicaciones habilitamos \u00abJavaScript XMPP Chat\u00bb<\/li><li>En configuraci\u00f3n \u00abJavascript Xmpp Client\u00bb seleccionamos \u00abExternal\u00bb<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"839\" height=\"332\" src=\"\/wp-content\/uploads\/2019\/07\/23-3.png\" alt=\"\" class=\"wp-image-976\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2019\/07\/23-3.png 839w, https:\/\/sada.services\/wp-content\/uploads\/2019\/07\/23-3-300x119.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2019\/07\/23-3-768x304.png 768w\" sizes=\"(max-width: 839px) 100vw, 839px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Chat XMPP<\/p>\n","protected":false},"author":2,"featured_media":2047,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,46],"tags":[54,36,47],"class_list":["post-975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nextcloud","category-xmpp","tag-jsxc","tag-nextcloud","tag-xmpp"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=975"}],"version-history":[{"count":3,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/975\/revisions"}],"predecessor-version":[{"id":2098,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/975\/revisions\/2098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/media\/2047"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}