git

Puede utilizar el servicio git de Simple Hosting para cargar su código fuente y desplegar su aplicación, incluyendo la instalación de dependencias, en su instancia de Simple Hosting.

El Panel de Control de tu instancia también tiene una interfaz gráfica para navegar por su repositorio git.

Aprenda todo sobre el uso del servicio Simple Hosting git en este artículo.

Requisitos previos

  • Necesitará tener git y un cliente SSH instalado en su ordenador para poder usar el servicio git.

Descripción general

El servicio git de Simple Hosting aloja repositorios remotos de git para usted. Además, le permite construir y desplegar su aplicación en su instancia, instalando cualquier dependencia que haya declarado.

En instancias PHP, cada sitio tiene su propio repositorio git independiente, nombrado después del dominio que corresponde al sitio (ej: example.com.git). En las instancias de Node.js, Python y Ruby, sólo hay un repositorio git, que se llama default.git.

Después de añadir el repositorio como un git remoto a su directorio de proyecto, podrá git push su código al servicio git. Por defecto, el servicio esperará que utilice la rama master, pero puede «push» cualquier rama o tag que desee.

También puede «git clone» un repositorio desde nuestro servicio git y utilizar cualquier otra característica que espere de un servidor git remoto. Puede utilizarlo realmente como un sistema de control de versiones.

Una vez que los archivos han sido enviados al servicio, están disponibles para su despliegue con el comando deploy {repository}.git, que es ejecutable vía SSH en la misma dirección que el servicio git.

El comando deploy construirá su aplicación y copiará los archivos de la aplicación en su instancia. Las dependencias de las aplicaciones se pueden declarar utilizando los gestores de paquetes soportados para cada tipo de instancia y se instalarán como parte del proceso de despliegue: Composer para PHP, NPM para Node.js, pip para Python y Bundler para Ruby.

Todos estos pasos se detallan en las secciones siguientes.

URL del servicio git

En los ejemplos que siguen, la URL del servicio git está representada por una variable bash $GIT_URL. Encontrará la URL real en la página de administración de la instancia.

En las instancias PHP, la encontrará en la sección «Sitios» dentro de la página de cada sitio.

En otros casos, lo encontrará en la sección «Desplegar» de la página de administración de su instancia.

El formato de la URL del servicio git es siempre el siguiente:

GIT_URL="ssh+git://{instance_id}@git.{datacenter_id}.gpaas.net"

Autenticación

Puedes autenticarse en el servicio git utilizando la contraseña de su instancia (comportamiento por defecto) o claves SSH públicas.

Si elige utilizar la contraseña de su instancia, tendrá que proporcionar su contraseña cada vez que interactúe con el servicio de git remoto, por ejemplo para realizar «git clone», «git push» o deploy commands.

Al utilizar la autenticación con clave SSH, su sistema debería ser capaz de proporcionar la clave pública correcta al servicio git siempre que sea necesario. Esta es la forma recomendada para autenticarse, ya que es conveniente, segura y le permite escribir scripts automatizados.

Crear un repositorio

Aquí tiene un par de ejemplos para crear su repositorio para todos los tipos de instancia: Instancias PHP, donde cada Sitio tiene su propio repositorio, y otras instancias, donde sólo existe un repositorio por defecto.

Una vez creado el repositorio, podrá verlo en el Panel de Control de su instancia usando gitweb, una interfaz gráfica de usuario open source (necesitará reiniciar su instancia después de crear un repositorio por primera vez en su instancia).

Ejemplo para una instancia PHP

Este ejemplo muestra cómo crear un repositorio local para subir código a una instancia PHP. Utiliza un sitio llamado example.com. Usted puede simplemente reemplazar el dominio del Sitio por uno de sus dominios, incluyendo el dominio de prueba que fue creado automáticamente para usted.

$ mkdir example.com
$ cd example.com
$ git init
$ git remote add gandi $GIT_URL/example.com.git
$ mkdir htdocs
$ echo "Hello world" > htdocs/index.html
$ git add htdocs
$ git commit -m "first version of index.html"
$ git push gandi master

En instancias PHP, la raíz de su repositorio no es el directorio usado por el servidor httpd de Apache para servir archivos a los visitantes web. En consecuencia, para que sus archivos sean accesibles a través de la web, debe ponerlos en el directorio htdocs/, que se creará en la raíz de su repositorio.

Ejemplo para otras instancias

Este ejemplo muestra cómo crear un repositorio en una instancia en Node.js, Python o Ruby usando un archivo de texto ficticio. Por favor, consulte sus respectivas páginas de documentación para aprender a estructurar sus archivos de proyecto.

$ mkdir myapp
$ cd myapp
$ git init
$ git remote add gandi $GIT_URL/default.git
$ echo "Creating my repository" > test.txt
$ git add test.txt
$ git commit -m "Add a text file"
$ git push gandi master

Clonar un repositorio

Copie un repositorio remoto en su computadora utilizando el comando git clone:

$ git clone $GIT_URL/{repository}.git

Por defecto, el comando git clone creará un directorio con el mismo nombre repositorio (ej: example.com o ``default`) y copiará archivos en él. Si desea especificar otro nombre para el directorio local, sin interferir con la configuración de git, lo agregará al comando:

$ git clone $GIT_URL/{repository}.git my_app

Despliegue su código

Este comando realizará un git checkout en el directorio de destino de su instancia. También instalará cualquier dependencia utilizando el gestor de paquetes: Compositor para PHP, NPM para Node.js, pip para Python y Bundler para Ruby.

$ ssh $GIT_URL 'deploy {repository}.git'

Recuerde que {repository} corresponde a la dirección de un Sitio en instancias PHP (ej: example.com), pero siempre es default en otros tipos de instancia.

El comando deploy asume que desea desplegar el código marcado en la rama master de su repositorio. Si desea desplegar otra rama o tag, por ejemplo una rama production, puede añadirla al final del comando:

$ ssh $GIT_URL 'deploy {repository}.git production'

Nota

The use of Git submodules is not supported at the moment.

Gestionar los archivos existentes

Cualquier directorio ya presente en el directorio de despliegue de destino debe tener al menos el mismo acceso de escritura del usuario, para que los archivos puedan ser reemplazados durante la implementación (es decir, chmod 644). Esta acción debe llevarse a cabo si encuentra un error como:

error: unable to unlink old 'htdocs/sites/default/settings.php' (Permission denied)

Además, es posible que desee limpiar su directorio de destino. El siguiente comando ejecutará una operación `git clean`__ en su directorio y borrará cualquier archivo que no esté rastreado por git o que no esté listado en el archivo .gitignore de su repositorio:

$ ssh $GIT_URL 'clean {repository}.git'

Advertencia

Tenga en cuenta que si su aplicación web tiene archivos que desea mantener en el servidor (por ejemplo, configuraciones específicas / claves secretas), estos deben añadirse al archivo .gitignore de su repositorio antes de ejecutar el comando clean.

Borrar un repositorio

Para eliminar completamente un repositorio de su instancia, elimine su directorio mediante sFTP o la Consola de Emergencia.

La ruta del directorio a través de sFTP tiene el siguiente aspecto:

/lamp0/vcs/git/{repository}.git

A través de la consola :

/srv/data/vcs/git/{repository}.git

Usuarios de Windows

Los usuarios de Windows pueden utilizar el cliente msysgit_git, para cual hay un tutorial disponible en http://guides.beanstalkapp.com/version-control/git-on-windows.html

SSH Key Fingerprint

La SSH key fingerprint para el git endpoint es:

35:e0:5a:a9:54:12:55:6b:ce:41:8c:c1:9e:35:1d:f6

Enlaces