Generalidades
Este artículo asume que ya has creado tu sitio web (o aplicación) en el computador de tu hogar. Luego te guía a través de cómo colocarlo bajo el control de versión de git y usar tu servidor DreamHost como el repositorio 'remoto' (externo) para enviarlo.
De esta manera, podrás desarrollar tu sitio web completamente (o aplicación) en el computador de tu hogar mientras usa tu servidor de DreamHost como un lugar adicional para guardar tu código.
Usar Git para desarrollo web
Las instrucciones en este artículo solamente 'respaldan' tu repositorio local a un servidor de DreamHost. Estas instrucciones no actualizan ni cambian tu sitio web en vivo.
Revisa el siguiente artículo para más instrucciones de cómo enviar tus cambios de tu computador local a tu sitio web en vivo.
Paso 1 — Crear una llave de emparejamiento de SSH
Este paso explica como crear una llave de emparejamiento de SSH en tu computador Windows. Necesitarás usar esto para conectarte a tu servidor de DreamHost.
- En tu computador local, navega al directorio ~/.ssh de tu usuario:
[local ~]$ cd ~/.ssh
[local ~]$ mkdir ~/.ssh
- Configura las llaves de SSH corriendo el siguiente comando:
- La opción -C te permite agregar un comentario al archivo de la llave privada. El comentario de la llave puede ser útil para ayudar a identificar la llave en el futuro.
[local ~]$ ssh-keygen -t rsa -b 4096 -C "DreamHost Git repo" Generating a public/private rsa key pair. Enter the file in which you wish to save they key (i.e., /Users/username/.ssh/id_rsa): dreamhost-git-key
- Ingresa un nombre para el archivo cuando se indique, como dreamhost-git-key.
- Cuando se indique ingresa una contraseña, da clic en Enter dos veces para omitir.
- Los dos archivos nuevos son creados en el directorio .ssh de tu usuario:
[local ~]$ cd ~/.ssh [local ~]$ ls -la dreamhost-git-key dreamhost-git-key.pub
Paso 2 — Cargar la llave pública en tu servidor DreamHost
Este paso copia tu llave pública dentro del archivo de tu servidor de DreamHost authorized_keys.
Para correr los siguientes comandos, necesitas el nombre de su servidor de DreamHost y el usuario/contraseña asignado a tu sitio web. Revisa los siguientes artículos para ubicar esta información:
- Ubicar el nombre del servidor
- Ubicar tu usuario
- Restaurar la contraseña de tu usuario (si es necesario)
Adicionalmente, el nombre de usuario del sitio web de DreamHost con el que estás corriendo el comando debe configurarse como un usuario Shell. Revisa el siguiente artículo sobre instrucciones sobre cómo configurar esto:
- Corre el siguiente comando para copiar ty llave a tu servidor DreamHost.
- Si estás usando Linux:
[local ~]$ ssh-copy-id -i ~/.ssh/dreamhost-git-key.pub user@server.dreamhost.com
- Si estás usando Mac OS X (también funciona con Linux):
[local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
Puede que recibas el siguiente error cuando corras este comando:
mkdir: cannot create directory `/home/username/.ssh': File exists
Esto solo significa que el directorio /.ssh ya existe en el servidor web. Si ves esto, elimina la parte del comando que crea el directorio y vuelve a correrlo. Por ejemplo:
[local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "cat >> ~/.ssh/authorized_keys"
- Inicia sesión en tu servidor DreamHost vía SSH:
[local ~]$ ssh user@server.dreamhost.com
Si recibes un error intentando iniciar sesión, puede que necesites usar ssh-agent. Revisa el siguiente artículo para más información:
- Confirma que tu llave ha sido agregada al servidor de DreamHost corriendo lo siguiente (esto debería generar tu clave):
[server]$ cat ~/.ssh/authorized_keys
Paso 3 — Crear un repositorio simple en tu servidor DreamHost
Este paso crea un repositorio básico en tu servidor DreamHost. Este será el repositorio remoto al que ingresas desde tu computador local.
- Crea un nuevo directorio para tu repositorio remoto nuevo en tu servidor de DreamHost. Si este código está destinado a actualizar tu sitio web existente, debes nombrarlo igual que tu sitio web que termina en .git. Por ejemplo, algo como example.com.git.
[server]$ cd ~ [server]$ mkdir example.com.git [server]$ cd ~/example.com.git [server]$ git init --bare [server]$ git symbolic-ref HEAD refs/heads/main
- Corre ls -la para confirmar que los archivos y directorios han sido creados.
[server]$ ls -la HEAD /branches config description /hooks /info /objects /refs
- Confirma que el archivo HEAD está configurado para usar main corriendo el siguiente comando:
[server]$ cat HEAD ref: refs/heads/main
- Deberías ver a main siendo usado.
Paso 4 — Configurar git en tu computador
- Corre los siguientes comandos para crear tu identidad que va a ser usada con Git.
[local ~]$ git config --global user.name "John Doe" [local ~]$ git config --global user.email johndoe@example.com
- Corre git --version en tu computador local.
[local ~]$ git --version
[local ~]$ git config --global init.defaultBranch main
Si por alguna razón no puedes actualizar tu versión de git al menos a 2.28, aún puedes cambiar manualmente el nombre de la rama principal a main luego de que hayas hecho el primer commit de abajo. Revisa el siguiente artículo para más detalles:
- El comando de arriba crear un archivo .gitconfig bajo tu usuario.
Paso 5 — Crear tu repositorio git local
Estos pasos crean un repositorio git para tu sitio web en el computador de tu hogar. Luego usarás esto para enviar su contenido a tu servidor DreamHost.
Corre lo siguiente en el directorio de tu proyecto para iniciar el repositorio y crear tu primer commit:
[local ~]$ git init [local ~]$ git add . [local ~]$ git commit -m "First Commit"
Paso 6 — Enviar tu repositorio local al repositorio remoto
Este paso envía tu repositorio local a tu servidor de DreamHost.
- Agrega el repositorio básico que creaste en tu servidor DreamHost como un 'remoto' dentro del repositorio git de tu computador local. Asegúrate de cambiar user y server a tu usuario de DreamHost y nombre de servidor.
La palabra dreamhost es solo un alias. Se puede llamar como quieras. Pero este nombre de alias se usará cuando envíes tu contenido a tu servidor de DreamHost.
[local ~]$ git remote add dreamhost ssh://user@server.dreamhost.com/~/example.com.git
- Verifica que el nuevo remoto existe.
[local ~]$ git remote show dreamhost
- Envía el repositorio local a tu servidor de DreamHost.
[local ~]$ git push -u dreamhost main
Paso 7 — Confirmar que tu repositorio fue lanzado correctamente a tu servidor DreamHost
- Inicia sesión en tu servidor DreamHost vía SSH.
- Navega al directorio /example.com.git.
-
Cuando corres git status en el directorio /example.com.git, recibirás el siguiente error porque este directorio no es un 'árbol de trabajo':
[server]$ git status fatal: This operation must be run in a work tree
-
Cuando corres git status en el directorio /example.com.git, recibirás el siguiente error porque este directorio no es un 'árbol de trabajo':
- Clona el repo a una nueva ubicación corriendo lo siguiente, lo que te permite ver sus contenidos:
[server]$ mkdir ~/cloned-example.com.git [server]$ cd ~/cloned-example.com.git [server]$ git clone ~/example.com.git ~/cloned-example.com.git [server]$ ls -la
- Este directorio contiene todos los archivos que enviaste desde tu máquina local..