Enlazar un nombre de dominio a un pod de Diaspora con Pagekite

De Wiki Diaspora*
Saltar a: navegación, buscar

Diaspora* es una red social descentralizada y de código abierto. Un servidor de Diaspora se conoce como pod. Cada cuenta de usuario dentro de un pod se llama seed. Los distintos pods se comunican entre sí, y de manera colectiva forman la red de Diaspora. Hay pods de todos tamaño: algunos tienen miles de cuentas, otros solo una. Esta guía indica cómo instalar tu propio pod, en GNU/Linux, específicamente en Fedora 16, y hacer que sea visible en el Internet (no solo en tu red local).[1]

Instalar el software de Diaspora en tu computadora

Puedes encontrar las instrucciones para instalar el software de Diaspora aquí. Asegúrate de instalar en un árbol de directorios donde Nginx tenga acceso, por ejemplo /usr/share/nginx. Una vez que hayas instalado correctamente, y hayas iniciado Diaspora, deberás tener un servidor de aplicaciones thin, atendiendo en localhost:3000 Si colocas esa dirección en tu navegador web, deberías ver la página de inicio de sesión. (No vayas a crear una cuenta todavía, de lo contrario tendrá la dirección incorrecta, como [email protected]:3000.

Elige el nombre de tu pod

Necesitas elegir un nombre para tu pod. En este tutorial asumiremos que el nombre será diaspora.[tudominio].net. Más adelante, mostraremos cómo crear el dominio [tudominio].net (del cual diaspora.[tudominio].net será un subdominio). Por ahora, elije un nombre que será la dirección web de tu pod.

Instalar el software del servidor web Niginx en tu computadora

Aunque es posible ejecutar Diaspora sin un servidor web (ver la sección 8), esto no es recomendado. No tendrás un certificado SSL, así que otros pods que requieran conexión SSL no podrán conectar con tu pod.

El servidor web preferido es Nginx. Puedes obtenerlo con yum, rpm o apt, pero intenta descargar la versión más reciente, pues esta guía está basada en ella. Una vez que hayas instalado Nginx, podrás iniciarlo escribiendo en la terminal (como root o sudo):

service nginx start

Esto deberá devolverte la línea «[ok]». Y si escribes localhost:80 en tu navegador web, deberías ver la página HTML de Nginx.

Ahora debes editar los archivos de configuración de Nginx para tu configuración particular. Cuando hayas instalado Nginx, encuentra los archivos de configuración con este comando (como root o sudo):

whereis nginx  

En Fedora 16, encontrarás los archivos de configuración de Nginx en /etc/nginx y en /etc/nginx/conf.d.

Aquí hay un ejemplo del archivo </etc/nginx/nginx.conf</code> editado:

user       nginx;
 worker_processes  1;
 error_log  /var/log/nginx/error.log;
 pid        /var/run/nginx.pid;

 events {
   worker_connections  1024;
 }

 http {

   include    /etc/nginx/mime.types;

   default_type application/octet-stream;
   log_format   main '$remote_addr - $remote_user [$time_local]  $status '
     '"$request" $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
   access_log   /var/log/nginx/access.log  main;
   sendfile     on;
   keepalive_timeout  65;
   gzip  on;
   gzip_http_version 1.0;
   gzip_comp_level   2;
   gzip_proxied      any;
   gzip_buffers      16 8k;
   gzip_types        text/plain text/css application/x-javascript text/xml application
       /xml+rss text/javascript;
   gzip_disable      "MSIE [1-6]\.(?!.*SV1)";

server { 
 listen       80;
 server_name  diaspora.[tudominio].net www.diaspora.[tudominio].net;
 access_log   /var/log/nginx/access80.log  main;

 location / {
 rewrite      ^(.*) https://diaspora.[tudominio].net$1 permanent;
 }

 location /uploads/images {
 expires 1d;
 add_header Cache-Control public;
 }

 location /assets {
 expires 1d;
 add_header Cache-Control public;
 }
} 

upstream thin_server {
  server 127.0.0.1:3000;
}

server {
listen       443;
server_name  diaspora.[tudominio].net  www.diaspora.[tudominio].net;
access_log   /var/log/nginx/access443.log  main;
root /[ruta a tu directorio público de Diaspora]/public;

ssl on;
ssl_certificate         /[ruta a tu certificado SSL]/ssl.crt;
ssl_certificate_key     /[ruta a tu llave SSL]/ssl.key;
ssl_session_cache       shared:SSL:10m;
ssl_session_timeout     5m;
ssl_protocols           TLSv1;
ssl_ciphers             ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
add_header              Strict-Transport-Security max-age=500;
ssl_ecdh_curve          secp521r1;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
client_max_body_size 4M;
client_body_buffer_size 128K;
proxy_pass http://thin_server;
}

location ~ ^/(images|javascripts|assets|stylesheets|uploads)/ {
root    /[path to your diaspora public directory]/public;
expires 1d;
add_header Cache-Control public;
}

location /uploads/images/ {
expires 1d;
add_header Cache-Control public;
}

location /assets {
expires 1d;
add_header Cache-Control public;
} 

} 
} 

Una vez que termines de editar el archivo /etc/nginx/nginx.conf, reinicia el servidor, con el siguiente comando (como sudo o root):

service nginx restart

En este momento, deberías tener el servidor de aplicación thin de Diaspora apuntando a localhost:3000, y el servidor web Nginx apuntando a localhost:80, que se actualiza a localhost:433, y actúa como proxy para el servidor de aplicaciones en localhost:3000.

Pero el servidor web Nginx no es visible aún desde el Internet, porque seguramente está oculto tras direcciones NAT IP, asignadas por tu ISP, y tu área de red local. Es decir, la dirección IP de tu servidor web es probablemente algo como: 192.168.2.6:433, lo cual no es una dirección a la que se pueda ingresar desde otras computadoras en el Interne. Pagekite es una manera simple de hacer visible el servidor web Nginx desde el Internet. Aquí se muestra cómo (sustituye tu información particular en los ejemplos, donde existan corchetes).

Crear un nombre de dominio

Visita verisign.com, register.com, o cualquier sitio similar, y registra el nombre de dominio que hayas elegido. Por ejemplo, [tudominio].net.

Crea una cuenta de Pagekite

Abre una cuenta en Pagekite, y crea un pagekite, por ejemplo, [tunombre].pagekite.me. Descarga el software de Pagekite e instálalo. Anota dónde están ubicados los archivos de configuración en tu computadora. Por ejemplo, en Fedora 16, los archivos de configuración se encuentran en /etc/pagekite.d/.

Crea un récord CNAME

Vuelve a tu registrador de dominio, ingresa a tu cuenta, y crea un récord CNAME que apunte a tu Pagekite. Por ejemplo, crea el CNAME diaspora.[tudominio].net, y apúntalo a [tunombre].pagekite.me. Tu registrador tendrá instrucciones para hacer esto. El proceso será distinto dependiendo de cada registrador de dominios.

Obtén un certificado SSL, y una llave SSL para tu subdominio

Para que SSL funcione en Nginx en el puerto 443, necesitas un certificado SSL. Puedes obtener uno gratuito en StatSSL.com. También, muchos registradores de dominios podrán proporcionarte uno. Asegúrate de que sea igual al CNAME que has creado; por ejemplo, diaspora.[tudominio].net. Una vez que el certificado y la llave SSL estén instalados, y cualquier certificado CA intermedio que requieras, asegúrate de que las líneas de información en /etc/nginx/nginx.confoint coincidan con la ubicación de tu certificado y llave.

Edita los archivos de configuración de Pagekite

Ahora necesitas dirigir el CNAME que creaste, diaspora[tudominio].net, por medio de tu kite [tunombre].pagekite.me, a tu computadora, donde el servidor web Nginx está apuntando a los puertos 80 y 443. Utilizando un editor de texto, edita tus achivos de configuración de Pagekite como se muestra a continuación. El archivo /etc/pagekite.d/10_account.rc debería contener los siguientes valores:

kitename=diaspora.[tudominio].net
kitesecret=[your account secret from your pagekite account]

El archivo /etc/pagekite.d/80_httpd.rc debería contener lo siguiente:

backend=http:[tunombre].pagekite.me:localhost:80:@kitesecret
backend=https:[tunombre].pagekite.me:localhost:443:@kitesecret
backend=http:@kitename:localhost:80:@kitesecret
backend=https:@kitename:localhost:443:@kitesecret

Nota: Si estás teniendo problemas con Nginx. Mientras resuelves el problema, puedes dirigir Pagekite directamente al servidor thin, apuntando a localhost:3000, con la siguiente configuración de 80_httpd.rc:

backend=http:[yourname].pagekite.me:localhost:3000:@kitesecret
backend=http:@kitename:localhost:3000:@kitesecret

Probar

Suponiendo que Diaspora y Nginx estén corriendo, puedes inicar Pagekite, escribiendo en la terminal (como sudo o root):

service pagekite start

Luego de un minuto, deberías entontrar la página de inicio de sesión de Diaspora en una ventana de tu navegador, en https://diaspora.[tudominio].net. Ahora puedes crear una cuenta, o iniciar sesión si ya cuentas con una.

Trasladar tu pod

Si cambias la ubiación de tu red local; por ejemplo, llevas la laptop que aloja tu pod a un cibercafé, Pagekite actualizará tus DNS de manera automática.

Notas

  1. Operar un servidor web podría violar los Términos y Condiciones de tu proveedor de Internet. Antes de hacerlo, deberías consultar el acuerdo de servicio.