Generalidades
Este artículo te guía a través del uso de Git para administrar el código de tu sitio web o aplicación local y luego subirlo a tu servidor DreamHost. Esta configuración te permite desarrollar completamente en tu computador de hogar mientras usas tu servidor DreamHost como servidor remoto de respaldo de tu código.
Usar Git para desarrollo web
Las instrucciones de este artículo solo respaldan tu repositorio local en un servidor DreamHost. No actualizan tu sitio web en producción. Revisa este artículo para obtener instrucciones sobre cómo transferir los cambios de tu computador local a tu sitio web en producción.
Configurar las claves de SSH
Esta sección explica cómo conectarte a tu servidor DreamHost usando claves de SSH.
Crear una clave de emparejamiento de SSH
Este paso crea una clave de emparejamiento de SSH en tu computador.
- En tu computador local, navega al directorio ~/.ssh de tu usuario:
[local ~]$ cd ~/.ssh
Crea el directorio si no existe.
[local ~]$ mkdir ~/.ssh
- Configura las claves de SSH corriendo el siguiente comando. La opción -C permite agregar un comentario al archivo de clave privada. Este comentario puede ser útil para identificar la clave en el futuro.
[local ~]$ ssh-keygen -t ed25519 -C "DreamHost Git repo" Generating a public/private ed25519 key pair. Enter the file in which you wish to save the key (i.e., /Users/username/.ssh/id_ed25519): dreamhost-git-key
- Ingresa un nombre para el archivo cuando se te solicite, como dreamhost-git-key.
- Ingresa una contraseña segura cuando se te solicite.
- Confirma que se han creado los nuevos archivos.
[local ~]$ ls -la dreamhost-git-key dreamhost-git-key.pub
Subir la clave pública a tu servidor de DreamHost
Este paso copia la clave pública de tu computador personal al archivo authorized_keys de tu servidor DreamHost.
Para correr estos comandos, necesitas el nombre del servidor de DreamHost y el usuario y la contraseña asignados al sitio web. Revisa estos artículos para encontrar esta información:
- Ubicar el nombre del servidor
- Ubicar el usuario
- Restablecer la contraseña de tu usuario (si es necesario)
Además, el nombre de usuario del sitio web de DreamHost con el que corres el comando debe estar configurado como usuario shell.
- Copia la clave a tu servidor DreamHost.
[local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
Es posible que recibas este error al correr 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 mkdir ~/.ssh; 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 de DreamHost a través de SSH.
[local ~]$ ssh user@server.dreamhost.com
Si usas un nombre de clave personalizado, podrías recibir un error al intentar iniciar sesión. En ese caso, quizás necesites usar ssh-agent. Revisa este artículo para obtener más información.
- Revisa el contenido del archivo para confirmar que tu clave se ha añadido al servidor DreamHost (esto debería mostrar tu clave):
[server]$ cat ~/.ssh/authorized_keys
Configurar el repositorio
Esta sección crea un repositorio en tu servidor DreamHost para almacenar el código de tu sitio web o aplicación local.
Crear un repositorio vacío en tu servidor de DreamHost
Este paso crea un repositorio vacío en tu servidor DreamHost. Este será el repositorio remoto al que enviarás tu código desde tu computador local.
- Inicia sesión en tu servidor de DreamHost a través de SSH.
- Crea un nuevo directorio para tu nuevo repositorio remoto.
Si este código está destinado a actualizar tu sitio web existente, debes nombrarlo con el mismo nombre 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 se han creado los archivos y directorios.
[server]$ ls -la HEAD /branches config description /hooks /info /objects /refs
- Confirma que el archivo HEAD esté configurado para usar main revisando su contenido.
[server]$ cat HEAD ref: refs/heads/main
Configurar Git en tu computador
Estos pasos deben ejecutarse en tu computador local.
- Crea tu identidad para usarla con Git. Estos comandos crean un archivo .gitconfig con tu nombre de usuario.
[local ~]$ git config --global user.name "John Doe" [local ~]$ git config --global user.email johndoe@example.com
- Confirma tu versión de Git.
[local ~]$ git --version
[local ~]$ git config --global init.defaultBranch main
Si, por alguna razón, no puedes actualizar tu versión a al menos la 2.28, aún puedes cambiar manualmente el nombre de la rama principal a main después de realizar la primera confirmación a continuación. Revisa este artículo para más detalles.
Crear tu repositorio Git local
Estos pasos crean un repositorio Git para tu sitio web en tu computador. Luego, lo usarás para subir tu contenido a tu servidor DreamHost.
- Navega al directorio de tu proyecto.
[local ~]$ cd /home/user/project-directory
- Inicializar el repositorio.
[local ~]$ git init
- Agrega todo el contenido y crea tu primer commit.
[local ~]$ git add . [local ~]$ git commit -m "First Commit"
Envía tu repositorio local al repositorio remoto
Este paso envía tu repositorio local al servidor de DreamHost.
- Agrega el repositorio básico que creaste en tu servidor DreamHost como un repositorio remoto dentro del repositorio Git de tu computador local.
Asegúrate de cambiar username y server por tu nombre de usuario de DreamHost y nombre de servidor.
La palabra dreamhost es solo un alias. Puedes llamarlo como quieras. Pero este alias se usará al subir tu contenido a tu servidor DreamHost.
[local ~]$ git remote add dreamhost ssh://user@server.dreamhost.com/~/example.com.git
- Verifica que exista el nuevo control remoto.
[local ~]$ git remote show dreamhost
- Envía el repositorio local al servidor de DreamHost.
[local ~]$ git push -u dreamhost main
Confirmar que tu repositorio fue enviado correctamente al servidor de DreamHost
- Inicia sesión en tu servidor de DreamHost a través de SSH.
- Navega al directorio /example.com.git.
Al correr 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
- Clona el repositorio en una nueva ubicación corriendo estos comandos, lo que te permitirá ver su contenido:
[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 ~/cloned-example.com.git
- Este nuevo directorio ahora contiene todos los archivos que enviaste desde tu máquina local.