viernes, 16 de mayo de 2014

Gitlab push on mail not working

The solution was in the issue:
https://github.com/gitlabhq/gitlabhq/issues/6725

Basically you should use this patch:

diff --git a/app/mailers/emails/projects.rb b/app/mailers/emails/projects.rb
index 46aa34d..57ce69e 100644
--- a/app/mailers/emails/projects.rb
+++ b/app/mailers/emails/projects.rb
@@ -26,7 +26,7 @@ module Emails
       if @commits.length > 1
         @target_url = project_compare_url(@project, from: @commits.first, to: @commits.last)
       else
-        @target_url = project_commit_url(@project, @compare.commit)
+        @target_url = project_commit_url(@project, id: @compare.commit.id)
       end

       mail(from: sender(author_id), 
 
 
Or update your gitlab.

lunes, 28 de abril de 2014

Code Review with Redmine and Gitolite

First of all ofcourse I connected to the server throught ssh:
ssh me@server
After that I downloaded the code-review plugin from the repo
wget https://bitbucket.org/haru_iida/redmine_code_review/downloads/redmine_code_review-0.6.3.zip
That was the last download that I found, you should check it out to if there is a new version to download, or clone the repo.
Unzip:
unzip redmine_code_review-0.6.3.zip 

After install, you should configure the plugin in Redmine -> Settings
Setup user/roles permissions for the plugin Settings -> Role, User

Setup the repository for each project needed (Settings -> Repository).

Permission problems:
Create redmine group:
groupadd redmine
Add www-data to redmine group:
usermod -aG redmine www-data
If you want you could also add git user to that group:
usermod -aG redmine git

Change permissions:
sudo chmod 770 -R /hom/git/repositories
sudo chown git:redmine /home/git/repositories -R

And finally issues with gitolite and redmine:

Edit the .gitolite.rc file and to change the umask.
  1. the default umask for repositories is 0077; change this if you run stuff
  2. like gitweb and find it can't read the repos. Please note the syntax; the
  3. leading 0 is required
#$REPO_UMASK = 0077; # gets you 'rwx------'
#$REPO_UMASK = 0027; # gets you 'rwxr-x---'
$REPO_UMASK = 0022; # gets you 'rwxr-xr-x'

In my case it was actually:

UMASK                       =>  0022,

sábado, 28 de septiembre de 2013

mate-panel: Como cambiar el color de letra.

El tema gtk o "Interface Theme" que estes usando define ese color.

Entonces lo que tendrías que hacer si, por ejemplo, quieres modificar el tema *elementary*

deberías ir como root a la carpeta: /usr/share/themes/elementary/
fijarte si en el archivo gtkrc, dice algo como:
#include "Apps/xfce-panel.rc"
o
include "Apps/dark-panel.rc"

Si tiene un # enfrente quiere decir que está comentado entonces tienes que sacarlo

y editar dicho archivo, por ejemplo, si decía:

include "Apps/xfce-panel.rc"

debes editar el archivo
/usr/share/themes/elementary/gtk-2.0/Apps/xfce-panel.rc

En ese archivo debe decir:
style "elementary-panel"

Ahí es donde se define el color de letras, fg es la abreviación de foreground, y se refiere justamente a eso.
Entonces defines por ejemplo, que tu panel sea rojo:
fg[NORMAL] = "#D00"

Si no conoces los colores en hexadecimal podes usar herramientas como http://www.colorpicker.com, gimp, o incluso gedit, ya que tiene un plugin para eso.

Se me olvido algo. El archivo xfce-panel.rc debe contener las siguientes líneas:

class "PanelApp*" style "elementary-panel"
class "PanelToplevel*" style "elementary-panel"
class "*Xfce*Panel*" style "elementary-panel"
widget "*fast-user-switch*" style "elementary-panel"
widget "PanelToplevel*PanelAppletFrame" style "elementary-panel"
widget "PanelToplevel*PanelMenuBar" style "elementary-panel"
widget "PanelToplevel*PanelWidget*" style "elementary-panel"
widget "*CPUFreq*Applet*" style "elementary-panel"
widget "*Xfce*Panel*" style "elementary-panel"
widget_class "BonoboPlug*PanelApplet*" style "elementary-panel"
widget_class "*tray*" style "elementary-panel"

Si alguna está comentada, descomentala. Aparentemente esas líneas sirven para asignar el estilo definido a esas clases y widgets.
En realidad no se mucho sobre el tema, tal vez haya alguna forma más fácil de cambiar el color de letra de mate-panel. Aunque tampoco es taaan complicado.

martes, 7 de mayo de 2013

Apache y Webrick (rails 3) con certificados ssl


Una vez instalados los módulos, procederemos con la creación del certificado. En primera instancia generamos la llave privada(private-key):
openssl genrsa -out cert.key 1024
Ahora generamos el CSR (Certificate Signing Request), usando la key generada antes:
openssl req -new -key cert.key -out cert.csr
Y ahora generamos el certificado en sí utilizando la key y el CSR:
openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

Para Webrick

Para generar server.csr
openssl req -new -x509 -days 3650 -nodes > server.csr

-nodes option ask for some info
-days 3650 ~= 10 years

Crear un RSA Key
openssl rsa -in privkey.pem -out server.key

Crear un certificado
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

Suponiendo que los archivos generados están en una carpeta csr, en la raíz de la aplicación, en script/rails agregar/modificar:

require 'rubygems'
require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'

module Rails
    class Server < ::Rack::Server
        def default_options
            super.merge({
                :Port => 3000,
                :SSLEnable => true,
                :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
                :SSLPrivateKey => OpenSSL::PKey::RSA.new(
                       File.open("csr/server.key").read),
                :SSLCertificate => OpenSSL::X509::Certificate.new(
                       File.open("csr/server.crt").read),
                :SSLCertName => [["CN", WEBrick::Utils::getservername]]
            })
        end
    end
end 

Esto obliga al server a utilizar siempre https, lo cual en realidad no es tan útil teniendo en cuenta que solo usamos webrick en development.
En el caso de que tengas en producción apache, algo realmente más útil es usar rack-ssl-enforcer que nos permite usar https en algunas rutas y http en otras sin modificar el servidor (script/rails.rb).
Por ejemplo, si queremos que solo los archivos .js sean servidos por http y todo lo demás por https hacemos lo siguiente:
* Modificamos el archivo config/enviroments/production.rb y le agregamos las linea:
    # rack-ssl-enforcer
    config.middleware.use Rack::SslEnforcer, :except => [/\.js$/], :strict => true
para más información ver rack-ssl-enforcer.
De esta manera solo en producción necesitarás usar https y en development podrás usar http, que es más rápido.

Para apache

Generar un apache.pem con: openssl req -new -x509 -days 3650 -nodes -out apache.pem -keyout apache.pem donde Common Name es www.dominio_de_tu_empresa.com Luego hay que generar el link simbólico que apache utiliza que es un hash. Para esto vemos que salida obtenemos de: openssl x509 -hash -noout < apache.pem Obs: Para ejecutar el comando anterior apache.pem necesita tener permisos adecuados, luego podemos volver a aplicar permisos 600 (ver final del post). Al número que obtuvimos lo llamaremos 'hash_salida'. Usa ese número para generar el link simbólico: ln -sf apache.pem hash_salida.0 Aplicamos los debidos permisos: chmod 600 apache.pem

Y esta sería la configuración de un VirtualHost en un server que solo sirve una única aplicación:




<VirtualHost *:80>
ServerName nombre_de_dominio.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /path/de/la/aplicacion/public/
<Directory /path/de/la/aplicacion/public/>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
ErrorLog /var/log/apache2/nombre_de_la_app/error.log
CustomLog /var/log/apache2/nombre_de_la_app/access.log combined
</VirtualHost>


NameVirtualHost *:443
<VirtualHost *:443>
ServerName nombre_de_dominio.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /path/de/la/aplicacion/public/
<Directory /path/de/la/aplicacion/public/>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
ErrorLog /var/log/apache2/nombre_de_la_app/error.log
CustomLog /var/log/apache2/nombre_de_la_app/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>


domingo, 14 de abril de 2013

Mysql 5 debian wheezy

Tuve este extraño problema instalando mysql 5 en debian wheezy estos días:

# aptitude install mysql-server
The following NEW packages will be installed:
  mysql-server
The following partially installed packages will be configured:
  mysql-server-5.5
0 packages upgraded, 1 newly installed, 0 to remove and 20 not upgraded.
Need to get 0 B/76.8 kB of archives. After unpacking 124 kB will be used.
Selecting previously unselected package mysql-server.
(Reading database ... 165072 files and directories currently installed.)
Unpacking mysql-server (from .../mysql-server_5.5.30+dfsg-1_all.deb) ...
Setting up mysql-server-5.5 (5.5.30+dfsg-1) ...
[ ok ] Stopping MySQL database server: mysqld.
130414 14:06:27 [Note] Plugin 'FEDERATED' is disabled.
130414 14:06:27 InnoDB: The InnoDB memory heap is disabled
130414 14:06:27 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130414 14:06:27 InnoDB: Compressed tables use zlib 1.2.7
130414 14:06:27 InnoDB: Using Linux native AIO
130414 14:06:27 InnoDB: Initializing buffer pool, size = 128.0M
130414 14:06:27 InnoDB: Completed initialization of buffer pool
130414 14:06:27 InnoDB: highest supported file format is Barracuda.
130414 14:06:27  InnoDB: Waiting for the background threads to start
130414 14:06:28 InnoDB: 5.5.30 started; log sequence number 1595685
130414 14:06:28  InnoDB: Starting shutdown...
130414 14:06:29  InnoDB: Shutdown completed; log sequence number 1595685
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.5; however:
  Package mysql-server-5.5 is not configured yet.

dpkg: error processing mysql-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.5
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up mysql-server-5.5 (5.5.30+dfsg-1) ...
[ ok ] Stopping MySQL database server: mysqld.
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.5; however:
  Package mysql-server-5.5 is not configured yet.

dpkg: error processing mysql-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.5
 mysql-server

Bueno, después de deambular mucho por internet, encontré que el problema podría ser un /etc/mysql/my.cnf corrupto, entonces moví mi  /etc/mysql/my.cnf a  /etc/mysql/my.cnf.corrupto y noté que había un /etc/mysql/debian.cnf después de comprobar que el contenido de my.cnf y debian.cnf eran lo suficientemente similares copié el debian.cnf a my.cnf y terminé la instalación sin problemas :D

martes, 19 de marzo de 2013

Instalando postgresql en sabayon 11


Tip: es recomendable que actualicen su sistema antes de cualquier instalación.
Bueno, antes que nada esto no es una guia. Es más bien una historia, la historia de la única manera que logré hacer que funcione postgresql-server-9.1 en mi Sabayon 11, después de muchos y diferentes intentos. Por alguna razón (desconocida por mi) no pude hacer funcionar siguiendo ningúna de las más diversas guias que intenté. En fin, lo que hice fue:
* Abrí Rigo. Sí, ya se que se supone que pueda hacerlo con equo pero simplemente no había funcionado.
* Instalé pgadmin3
* Instalé postgresql-server-9.1
Ejecuté el script de postinstalación:
# emerge --config dev-db/postgresql-server:9.1
Fin, así fue como funcionó.

domingo, 10 de febrero de 2013

paperclip attr_accessor

Si tienen el error que dice algo como: requiered attr_accessor for xxxxx_file_name La solución es volver a migrar sus bases de datos. Si hiceron: rake db:drop rake db:create rake db:migrate Que es algo que suelo hacer en proyectos nuevos. Eso no es suficiente. Deben volver a hacer un rake db:migrate para que funcione.