Cuando programas posiblemente lo hagas en local, teniendo que subir después todo al servidor. Te cuento cómo sincronizar por ssh con Atom de forma automática al guardar.
Atom es uno de los mejores softwares de programación que me he encontrado (sobretodo si te gusta el código abierto). Además de ser gratis, cuenta con una comunidad detrás que desarrolla infinidad de paquetes con los que darle un empujón a tu estilo de trabajo o lenguaje de programación.
Cómo subir archivos automáticamente al servidor con Atom
Bien, lo que comentaba antes es el escenario ideal. Tienes localmente un entorno de desarrollo para programar y no generar errores en tu proyecto que está en producción. El caso es que no siempre es así, por ejemplo si eres estudiante y solo es necesario que funcione cuando has terminado.
También si no eres muy dado a instalar cosas de más en tu equipo, o quieres poder trabajar en tu proyecto tanto desde el portátil, sobremesa o cualquier otro pc con Atom que te encuentres por el camino.
Mi solución para eso es configurarlo para que suba automáticamente los archivos al guardar. De esta manera, siempre que hagas ctrl+s puedes ver en tu sitio online si funciona. Y encima tendrás una copia de seguridad local, que será en los archivos sobre los que trabajas.
Instalar los paquetes necesarios
Antes de empezar a configurar el autoupload, te va a hacer falta un paquete llamado remote-sync.
Para esto bastará con que abras Atom, te vayas a file > settings y en la pestaña install busques el paquete. En mi caso lo tengo instalado, pero con darle al botón azul de install bastará.
Cómo configurar remote sync en Atom
Bueno, ahora que ya tienes el paquete instalado te faltará un requisito antes de ponerte manos a la obra. Dependiendo de cómo quieras hacer la subida necesitarás, o bien acceso por ssh (ya sea con contraseña o clave pública), o ftp.
Una vez con los datos a mano vamos a configurar remote sync. En el árbol de la izquierda, elige la carpeta local en la que se guardará tu proyecto. Si no tienes una simplemente dale a ctrl+shift+a (o desde el menú archivo) y Abrir carpeta de proyecto. Ahí elige la que quieras.
Ahora que la tienes lista solo haz click derecho sobre ella y dale a Remote Sync > Configure. Verás que te aparece una ventana y se trata de poner todos los parámetros de configuración de tu servidor ahí, por ejemplo:
Los debes poner según lo que necesites:
- Hostname: ip o url del servidor (mejor ip).
- Puerto ssh o ftp.
- Directorio donde están los archivos que quieres editar.
- Ignore paths: aquí pones separado por comas todos los archivos o directorios que no quieres que se sincronicen (por ejemplo cache, o los de configuración como tengo yo).
- Username: el usuario del ftp o ssh.
- Modo de conexión: puedes elegir si quieres password (osea usuario y contraseña), privatekey (si te conectas con clave privada simplemente poner la ruta al archivo .ppk) o useragent.
- Password o contraseña del usuario
- uploadOnSave, este es el importante, déjalo marcado.
Al marcar uploadOnSave cada vez que hagas ctrl+s o le des a guardar en el archivo en el que estés, se subirá al servidor además de guardarse en la carpeta local que hayas elegido.
De esta manera, sería como si estuvieses directamente editando en remoto, pero con la ventaja de poder deshacer cambios mientras tengas abierto Atom.
Una vez configurado todo simplemente dale a Save y puedes empezar a crear archivos, o sincronizar los que ya tengas, tanto hacia el servidor, como descargarlos desde el menú del botón derecho de antes.
Crear una configuración permanente en una carpeta de de Remote Sync para atom
Por la forma que tiene Atom de actualizar, a veces te pasará que tendrás que volver a agregar una carpeta local al árbol de la izquierda. Si lo haces verás como se pierde la configuración de remote-sync (a veces, no siempre).
Para evitar esto, lo que puedes hacer es crear un archivo llamado .remote-sync.json en la carpeta raíz de tu proyecto con toda la configuración, por ejemplo:
{ "transport": "scp", "hostname": "10.10.10.10", "port": 22, "username": "vagrant", "password": "vagrant", "keyfile": "/home/vagrant/.ssh/aws.pem", "passphrase": "your_passphrase", "target": "/home/vagrant/dirname/subdirname", "ignore": [ ".remote-sync.json", ".git/**" ], "watch":[ "/css/styles.css", "/index.html" ] }
De esta forma, cada vez que añadas esta carpeta a un proyecto de Atom cogerá automáticamente los datos del archivo .json y no tendrás que andar configurando nada.
Si te parece que puede ser una molestia tener la carpeta local si trabajas con varios equipos, piensa que igual la puedes crear dentro de drive, dropbox o onedrive y que se sincronice en local entre todos tus dispositivos.
¿Desde cuando usas Atom y por qué? Si tienes cualquier duda deja un comentario y comparte.