Proyectos/gulBAC 3.0/ActualizandoElSitio

Esto es una guía para cualquiera que quiera replicar y modificar el sitio de gulBAC.

Intro
Actualmente usamos hyde, un programa/framework/cms/nosequécarajoes en python que genera páginas estáticas, y esas páginas las subimos por ftp al server de gulBAC alojado en USLA. Como dijo el filósofo y profeta Comtom, la filosofía de esto es que todo es un archivo, y nos ahorra enroscarnos con scripts, bases de datos, usuarios y contraseñas. Por otro lado, genera un código aparentemente limpio y hace que gulBAC rankee mejor en los motores de búsqueda.

El circuito es el siguiente (todo paso es importante, especialmente el último!!)

Obtener el fuente
El fuente de la página está en un repositorio en github
 * El repositorio es: http://github.com/comtom/gulBAC

Para instalar git en Debian y derivados, simplemente instalar el paquete git

En nuestro directorio de proyectos ejecutamos: git clone https://github.com/gulBAC/gulBAC

Modificarlo y regenerarlo
Se creará un directorio gulBAC/ que adentro contiene gulbac-final/

En gulbac-final los directorios importantes son: content y deploy


 * El contenido se modifica en el dir content. Se usan templates a lo django, HTML o markdown, lo que les sea más familiar.
 * Actualmente la mayor parte está en markdown, existe un programa libre llamado ReText y es una herramienta muy útil que se puede usar para los templates en markdown :)
 * Luego de generarlo, el resultado aparece en el dir deploy. Este es el directorio que luego se subirá por FTP a la web de gulBAC (ya sea por uno o por un admin que tenga tales permisos)

Creación de nuevas páginas
Se debe crear un directorio dentro de content y dentro de éste un archivo .html con el mismo nombre que el directorio recién creado. Favor de completar quien lo sepa (Nicoman, Comtom...)

Ejemplo:
 * Seccion noticias

directorio en content/noticias archivo template en content/noticias/noticias.html

Encontré ésta página con la sintaxis de Markdown

Editar el layout (no content)
Así como está el directorio content, el sitio no se genera sólo en base a ese sino también a otras entradas. Entre ellas, el directorio layout del cual podemos destacar el siguiente archivo:

gulBAC/gulbac-final/layout/skeleton/base.html

Como se puede ver ahí está el sidebar con sus links y otras cosas que no tengo ganas de fijarme qué son. Lo pongo acá en el wiki porque en un futuro será útil

Generando

 * Para generarlo primero necesitamos tener las siguientes cosas instaladas:
 * python, python-django, python-yaml, python-markdown, python-cherrypy3 (este último para levantar un webserver y poder ver los cambios localmente)

Pueden leer más precisamente cómo usar hyde acá

python hyde.py -g -s gulbac-final/
 * Para generar el sitio (desde gulBAC/):

python hyde.py -w -s gulbac-final/
 * Para levantar el webserver:

Se podrá acceder al mismo http://localhost:8080/

Subir nuevamente con git

 * Este paso es MUY importante, repito MUY importante. Si no actualizamos el fuente en el repositorio de github, la próxima persona que quiera hacer una edición va a estar trabajando sobre la versión pasada y si lo sube va a pisar lo que acabamos de editar. Asique agarrense buenas costumbre changos.

Para subir de nuevo al repositorio, se deben correr los siguientes comandos (desde nuestro directorio de proyectos):

git add. git commit -m "Mensaje indicando los cambios que se hicieron" git push origin master

Luego de hacer esto, si no somos admin y no tenemos permisos para modificar la web, notificamos a alguno de ellos (admins@gulbac.org.ar) y les decimos que revisen nuestro repositorio y suban las modificaciones. Si somos admin subimos por FTP el contenido de "deploy"

Seguramente te será útil esta guía rápida de GIT

Chequear si existe una version mas nueva antes de editar
Estando posicionado en el directorio gulBAC

git remote add upstream git@github.com:gulBAC/gulBAC.git git fetch upstream git merge upstream/master

Si da un Already up-to-date esta todo joya, editen sin problemas

Subir resultado a la web en producción

 * Importante: NO hacer ninguna modificación sin leer esto, INSISTO, lean esto:

En el mismo directorio web/ al que se sube el contenido de deploy, se encuentran los directorios tareas y preguntas, del TaskFreak y Q&A respectivamente. ES MUY IMPORTANTE NO, repito: NO, no y NO tocar estos directorios, ni pisarlos ni sobreescribirlos ni eliminarlos ni cambiarlos a menos que esa sea la intención.

Work in progress: deploy via git
git remote add produccion url://del.rep.os/itorio/gulBAC.git git push produccion master git push origin master
 * Generar par de claves ssh
 * Comunicarse con uno de los admin y pasarle la pubkey
 * Agregar un remote al repositorio git:
 * Enviar los cambios a ese remote:
 * Enviar los cambios a github:

Futuro de este sistema
Como habran visto hay cosas que estan un poco verdes. Hay que ir puliendo algunas cosas, como por ejemplo hacer un cronjob cada X tiempo en el server de usla que:
 * 1) Actualice el repositorio de git
 * 2) Si encuentra cambios, que corra git
 * 3) Haga un backup (en tar.gz por ejemplo)
 * 4) borre el sitio "viejo"
 * 5) Copie el directorio deploy al / del webserver