Cómo instalar Ghost en un servidor Ubuntu

Ghost

Ghost

Ghost es una nueva herramienta libre para gestionar blogs. Tiene licencia permisiva (lo cual no me agrada) pero está hecho en NodeJS y como no había instalado ninguna otra aplicación hecha en este lenguaje, y sé que es algo particular, he decidido instalarla en uno de mis servidores. Aquí detallo el proceso de instalación de Ghost en la raiz de un dominio, para tenerlo recopilado y que le sirva a quien intente hacer esta tarea en el futuro. Algo que para empezar me incluye a mí mismo, que si no lo anoto ahora seguro que en el futuro vuelvo a atascarme en algún paso.

  1. Lo primero es preparar el sistema. Ghost está programado usando el lenguaje NodeJS, así que necesitarás este software en tu servidor. En Ubuntu hay una versión antigua de NodeJS (necesitamos una versión >0.10), así que para instalarla añadimos a nuestro sources.list el siguiente repositorio disponible en Launchpad. Luego instalamos nodejs normalmente: # apt-get install nodejs La versión de NodeJS que estamos instalando ya incluye npm (Node Package Manager, una cli para instalar dependencias y paquetes de Node, al estilo de Ruby Version Manager para Ruby y Ruby on Rails).
  2. En Ubuntu 13.04 necesitaremos compilar las extensiones de sqlite para Node, si ya tenemos un entorno de desarrollo (incluido build-essential) configurado sólo necesitamos teclear: npm install -g node-gyp
    npm install sqlite3 --build-from-source
    Si nos hace falta preparar el sistema hay algunos pasos más.
  3. También necesitaremos algunas cosas de Python, las instalamos: # apt-get install python-software-properties
  4. Mi servidor ya tiene Apache funcionando como servicio, y no iba a configurar un servidor entero únicamente para esto, así que toca configurar el sistema para que nuestra aplicación NodeJS se lleve bien con el servidor Apache. Esto lo hacemos configurando un proxy entre ambos. En dos pasos:
    1. Habilitamos los módulos de apache deseados y reiniciamos el servidor Apache:
      # ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled
      # ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled
      # /etc/init.d/apache2 restart
    2. En el archivo en el que estamos declarando el vhost (también podemos hacerlo en la configuración de Apache) añadimos esta orden: ProxyPass / http://localhost:8000/ De esta forma redirigirimos toda petición a través del puerto 80 de Apache para el dominio completo al puerto 8000 de nuestro localhost.
  5. Por fin podemos ahora instalar nuestra aplicación, descomprimimos la última versión de Ghost y copiamos los ficheros donde vayamos a tenerlos en el disco duro. Por ejemplo /var/www/ghost/.
  6. Abrimos una terminal y hacemos nos movemos hasta el interior de ese directorio.
  7. Si hemos instalado bien todas las dependencias (Python, NodeJS, sqlite bindings para Node), podemos proceder directamente a ejecutar el siguiente comando desde la terminal situada en el directorio raiz de nuestro Ghost: # npm install --production.
  8. Copiamos config.example.js a config.js y editamos la configuración del entorno de producción, para indicar la URL de nuestro nuevo blog en Ghost, y el puerto interno en el que queremos que la aplicación «escuche». Cambiamos la URL del blog y, si nos hace falta, también el puerto en el que estamos escuchando. En mi caso esta sección queda con el siguiente aspecto:

    production: {
    url: 'http://ghost.local',
    mail: {},
    database: {
    client: 'sqlite3',
    connection: {
    filename: path.join(__dirname, '/content/data/ghost.db')
    },
    debug: false
    },
    server: {
    // Host to be passed to node's `net.Server#listen()`
    host: '127.0.0.1',
    // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
    port: '8000'
    }
    },

    De ahí, en nuestro caso sólo necesitamos cambiar la línea que comienza por «url:» y la de «port:», el resto lo dejamos tal cual. Tened en cuenta que aunque en la plantilla de este blog no muestre bien la indentación, hay que ser cuidadosos con los espacios, y los tabuladores en estos archivos :)
  9. Finalmente, levantamos la aplicación usando:
    # npm start --production

Parecen muchos pasos, pero que no os asuste. Todo esto se hace en unos 30 minutos. Menos si todo os sale bien a la primera (a mí me faltaron algunas dependencias y perdí un ratillo buscando un mensaje de error).

¿Qué faltaría por hacer? Pues será de mucha comodidad crear una tarea para que se ejecute automáticamente durante el reinicio de servidor, de forma que cada vez que reiniciemos nuestra aplicación en NodeJS se inicie automáticamente. Por lo demás, éstas son todas las notas rápidas que he tomado en el proceso de instalar Ghost en un servidor Ubuntu en producción que ya tenía Apache y algunas aplicaciones funcionando con este servidor. Lo haré cuando lo instale en el servidor definitivo, de momento esto es suficiente.

Espero que os resulte útil, es viernes, así que hay por delante un fin de semana que puede aprovechar para hackear y divertirse con esto. Para los que quieran sacar matrícula, si queréis instalar directamente desde el repositorio Git podéis seguir este tutorial, pero tendréis que instalar Ruby, bajar algunas gemas vosotros mismos, y además compilar todos los assets de Javascript antes de tener el dashboard operativo. Por eso es sólo para los que quieran la nota más alta :)

La precompra de bienes digitales, ¿qué sentido tiene?

Bitcoins

Hoy tengo una pregunta sobre comercio electrónico que puede parecer insignificante, pero es que es algo que me inquieta desde el punto de vista de la lógica del comprador.

En ausencia de descuento, ¿Cuál es el sentido del pre-order en una compra digital que igualmente podrás descargar el primer día?

Entiendo la precompra tradicional, te garantizas acceso a un producto limitado. Entiendo la precompra de ediciones limitadas, siempre que sea un producto digital pensado con la especulación y el mercado secundario en mente y por tanto con «copias limitadas» de forma artificial.

Pero no entiendo que en ausencia de esa escasez diseñada ni de otro tipo de descuentos existan motivos para hacer la precompra de un bien digital que igualmente el día que salga a la venta podrás comprar sin más y descargarte inmediatamente. Ejemplos de este tipo de precompra de artículos no limitados y sin descuento (como digo, algo que no entiendo) hay de diferente naturaleza: desde videojuegos a música, no termino de verlo en ningún caso.

Iba a abrir un mensaje en el foro, y de hecho es posible que terminemos debatiendo allí acabo de abrir un hilo por si por allí alguien responde, pero de momento dejo la pregunta aquí colgando.

Google, «Data über alles» y la sociedad de control

Nest

Nest

Hace varios meses comencé a escribir un artículo sobre Google Now en el que hablaba de data über alles como el mantra que rige el desarrollo de producto de Google. Data über alles se refiere a tus datos, mis datos, nuestros datos, claro. Nunca llegué a publicarlo y ahora reutilizo la idea para llevarla a un plano algo más general, desde Google Now a absolutamente cualquier aspecto de los nuevos desarrollos de Google.

In the beginning…

Al principio estaba Google Now. Y es que cuando a Google Now le da por algo… échate a temblar. Google Now está empeñado en mostrarme cada semana los resultados de la liga de fútbol. En concreto, los resultados del Málaga CF. Yo no salgo de mi asombro, está bien que Google sepa que tengo algún vínculo con Málaga, aunque admito que no era precisamente un reto adivinarlo. Pero yo jamás le dije a Google que el fútbol fuera mi pasión, o que tener el resultado del Málaga CF empujado hasta la garganta como notificación push me dé la vida (honestamente, no es así).

Coches, robots, y hasta los cacharros de tu casa: sensores en todas partes

Existen muchas opiniones sobre por qué Google se mete a desarrollar un coche que se conduce sólo, o por qué Google compra casi una decena de empresas de robótica de una tacada (luego compraron otra).

La rápida es pensar que Google quiere que el coche se conduzca sólo para que puedas ir usando sus servicios mientras tanto. El rato de ir hasta el trabajo se convertiría en otra ocasión para mostrarte anuncios. Como le decía a Recuenco en un comentario en su blog hace unos días, eso es mirar al dedo cuando el dedo apunta al cielo. Cito parte de mi comentario:

Google gets in the self-driving cars business (or in the robotics business) just because that’s the best way for them to put sensors in a brand new part of your life that’s just not being registered in their servers. To think that they just want you to Google things as the car drives itself is a bit foolish. That’s a marginal return. Google aims for the whole cake.

Los coches, los robots y hasta toda la gama de cacharritos domésticos a los que apunta la gigantesca compra de Nest por 3.200 millones de dólares (CNN) tienen otro rol en el plan maestro de Google: el objetivo es llenar de sensores ámbitos completos de tu vida que ahora mismo están al margen de sus servidores y del perfil que Google posee de ti.

La mayor parte de tu vida está pasando inadvertida para Google, hasta ahora. A otro nivel más sofisticado (e inquietante), cumplen para Google el mismo rol que Android y los dispositivos en los que éste se incluye: ser una nueva fuente de datos sobre ti. Sólo que el coche, los robots, y los cacharros de casa permiten tomar muchos nuevos datos de diferente naturaleza y de forma mucho más transparente (aún) al usuario. Una sociedad plagada de sensores conectados a servidores ajenos es una sociedad muy controlada.

¿Y la privacidad?

Por supuesto, la pregunta que nos queda es qué va a ser de la privacidad cuando toda esa tecnología esté desplegada. Hace unos días en una conversación por correo con unos amigos nos acordábamos de Battlestar Galactica y de cómo en ese universo futurista los computadores eran para uso personal. No los conectaban a la red nada más que para solucionar problemas de forma rápida, porque de hecho conectarlos a la red era una fuente misma de problemas. Una de las personas en la conversación replicó que los iraníes ya han aprendido por la vía dura que hay computadoras que no deben estar conectadas de ninguna forma, ni tener puertos accesibles (USB, CD, …).

La cosa es que si está conectado, va a llevar sensores y va a registrar todo lo que haces. La privacidad no queda demasiado bien en esta fotografía.

Un plugin para WordPress que de verdad sirve para cumplir la ley de cookies

Cookie filter, plugin de WordPress para ley de cookies

Pues bueno, hoy hemos publicado en Cartograf un post sobre el nuevo plugin para WordPress que hemos liberado. Se trata de un plugin que nos permite cumplir la ley de cookies (sobre la que he hablado en este blog alguna vez) en nuestro sitio web hecho con WordPress.

¿Cómo, pero hacía falta un plugin para eso existiendo otros? Pues la verdad es que los plugins que había estaban todos pensados para los requisitos (más laxos) de la ley de Reino Unido, así que a nuestro modo de entender sí que hacía falta. Así que lo hemos hecho, y lo hemos liberado (como nos gusta hacer).

Si ya lo tenéis claro también podéis pasar a descargar el plugin. Eso sí, no seáis demasiado duros, es una versión sin bugs (conocidos), pero apenas tiene unas pocas opciones y aún tenemos pendiente hacerlo aún más fácil de usar y personalizar, pero preferíamos liberarlo cuanto antes, dado que es un tema que aún está generando quebraderos de cabeza a muchas personas.

Interfaces para la tabloidización amparada en la tabletización

Samsung Magazine UI

Samsung presenta su nueva interfaz para Android, denominada Magazine UI:

«The software is the real star of the show here, with Samsung tossing the standard Android home screen in favor of a new interface called «Magazine UI» which the company says is better suited for larger displays.»

En cuatro ideas para contextualizar el mito del descubrimiento hablábamos de la tabloidización como la consecuencia natural en términos de uso de lo que la tabletización impone (¡el código es la ley!) por diseño técnico.

La nueva interfaz desarrollada por Samsung recuerda muchísimo a la de Windows Phone, por cierto, y coincido en que puede ser buena idea para estos dispositivos.

Samsung Magazine UI

Pero eso es así como consecuencia del comportamiento que el dispositivo facilita al usuario, y por supuesto el nombre de Magazine UI no es ni casual ni sorprendente, al menos para quienes intentamos mantener un ojo en las posibilidades reales que la tecnología da a las personas.

¿De verdad Sponsored Data de AT&T es una novedad de cara a la neutralidad de la red?

Neutralidad y cables

Neutralidad y cables

Los últimos reportes predican una alarma definitiva: Sponsored Data, un nuevo servicio de AT&T que permite a las empresas pagar cuotas de datos del usuario, enterraría ahora la neutralidad de la Red (The Verge via Error 500). Más que el fenómeno en sí, lo que me interesa es su carácter de novedad. ¿Realmente la neutralidad va a morir en 2014 con cosas como Sponsored Data? La respuesta es que no.

El argumento es que con estos planes de datos subvencionados las empresas grandes se aseguran acceso a los usuarios, y que las operadoras van a comenzar a cobrar a las empresas de Internet algo por lo que ya cobran a los usuarios y, en definitiva, todo lo que ya comentábamos en el libro sobre La neutralidad de la Red. Todo esto es cierto.

Pero recuerden que esa Internet móvil que usan para Whatsappear a sus amigos nunca ha sido neutral: ni pueden usar VoIP dentro de su plan de datos ni pueden usar p2p ni nada que su operador haya vetado, a pesar de que son bits igual que los bits para acceder a la web de tu banco. Y recuerden también que Facebook 0 funciona en medio mundo (precisamente el medio mundo más pobre, donde su impacto tendrá un efecto irreversible), y que es exactamente lo mismo que ahora promete hacer este Sponsored Data de AT&T. Facebook 0 se presentó en 2010, hace apenas 2 meses seguían sumando regiones del mundo a este plan. También subvencionaron las llamadas de voz dentro de Jajah (que en paz descanse).

Sponsored Data es sólo la estandarización de lo que ya viene sucediendo en multitud de casos. Es una mala noticia, y un paso hacia la culminación de la transformación que el móvil está imponiendo a Internet. Pero no es la muerte de la neutralidad de la red, más que nada porque la neutralidad de la red hace años que dejó de existir, precisamente en el momento en que supimos que, como dije en mi libro, no era que Internet llegase al móvil, sino que los móviles (y la cultura de uso y consumo relacionada con éstos) llegaron a Internet.

Relacionado:

El efecto conductor, una traba a la evolución del propio trabajo

Carretera

Decía el otro día que en 2013 no escribí todo lo que me habría gustado sobre los temas que me habrían gustado, y hoy quiero ahondar un poco en este asunto. El motivo de que eso haya sido así se debe a algo así como el problema del conductor: por ir tan concentrado mirando la carretera que no te queda tiempo para mirar por la ventanilla ni disfrutar (mucho) del paisaje. Hoy traigo una idea a medio cocinar, pero prefiero someterla a debate en comentarios o revisarla más adelante a dejarla en el cajón de borradores indefinidamente.

Yendo al asunto en sí, la situación se dá cuando por tener demasiada carga de trabajo no te deja tiempo para vislumbrar la evolución que buscas, para saber qué quieres hacer y cómo lograrlo para seguir siendo competitivo en el mercado dentro de, pongamos, cinco años. Es lo que me ha dado por llamar el efecto conductor. Seguramente ya exista un nombre técnico para esto en la literatura sobre gestión.

Es una sensación que a buen seguro comparto con muchas otras personas cuyo trabajo seguro difiere mucho del mío. Muchos de ellos seguramente trabajen por cuenta propia, bien como autónomos bien en una empresa más o menos pequeña.

Con la falta de trabajo generalizada, alguno estará pensando que lamentar que nos inunda el trabajo es de remilgados. No es mi intención, pero intento buscar ese punto de partida de una situación que venimos experimentando en Cartograf.

Y aquí está el dilema. Rechazar clientes parece siempre mala idea, subir los precios para poder tomar un día a la semana para experimentar nuevas cosas es algo más complicado de hacer entender de lo que aparenta a primera vista (visto lo fácil que es enunciarlo). Y sin embargo, algo hay que hacer. Debemos considerar al menos uno de esos dos caminos, o quizá ambos.

Dijo Nietzsche (ya saben que me encanta citar al bueno de Friedrich) que nada determina tanto en qué nos convertiremos como aquellos detalles a los que decidimos no atender. En este caso, desatender esas dos opciones nos fuerza a la tercera vía: la de la inacción, la de esperar que las cosas se arreglen solas, que el trabajo se dosifique sólo y nosotros podamos por evolución azarosa dedicar más tiempo a esa previsión.

No, las cosas no se arreglan solas. No vale con seguir trabajando, meter cada vez más horas, en la ingenua esperanza de que esa urgencia pasará. En Cartograf hemos cerrado un gran año 2013, pero ha sido un año muy trabajado del que además de lo aprendido a un nivel de desempeño fundamental estamos aún asimilando esto que centra el post de hoy; algo mucho más complicado de aplicar.

Antes de que en nombre del pragmatismo recomienden dejar de pensar en algo que recuerde remotamente al sexo de los ángeles, me gustaría recordar que el coste de oportunidad de esa urgencia es altísimo si de verdad te está impidiendo pensar a fondo sobre qué quieres hacer en el futuro cercano. En esta nueva normalidad globalizada, tan importante es ser capaz de batirse el cobre en el mercado ofreciendo resultados positivos y medibles como ser capaz de decidir dónde quieres estar dentro de 5 años. Porque para estar ahí dentro de un lustro más te vale comenzar a caminar ahora. Y el precio por no poder divisar el horizonte y tomar un rumbo hacia lo que está por venir es quedarse atrás, como en la manida carrera de la reina roja en Alicia en el país de las maravillas.

En definitiva, no estoy seguro que haya una solución. Por eso comencé el post avisando de que era una reflexión en curso.

Relacionado:

Este blog usa cookies para su funcionamiento.    Más información
Privacidad