Crear server Ubuntu 14 Para poder instalar VestaCP
Aplicaciones a instalar en el servidor
- Vesta Control Panel
- Git + Gogs
- Node JS
- MongoDB
- Python 3
- PostgreSQL
- PM2
- Ruby
- Compass
- SSL
sudo apt-get update
curl -O http://vestacp.com/pub/vst-install.sh
bash vst-install.sh
Proceder con los pasos, la instalacion toma unos minutos al final se generaran las credenciales del control panel Revisar que funcione el phpmyadmin, si no fucniona hacer esto http://askubuntu.com/questions/261858/the-phpmyadmin-configuration-storage-is-not-completely-configured
Se crea un nuevo usuario
adduser newuser
Se agrega un password
visudo
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL
CTRL+X luego Y y ENTER para confirmar
Seguimos el resto de pasos logeado con el nuevo usuario
Creamos un sql para la instalacion de gogs
nano gogs.sql
Pegamos la siguiente linea y se guarda el archivo
DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
Instalar git si no esta instalado
apt-get install git
Instalar supervisor
apt-get install supervisor
Ejecutar gogs.sql com MYSQL
mysql -u root -p < gogs.sql
Instalar el binario de gogs en la siguiente direccion https://gogs.io/docs/installation/install_from_binary
wget https://dl.gogs.io/gogs_v0.9.113_linux_386.tar.gz
tar -xvzf gogs_v0.9.113_linux_386.tar.gz
Agregar las siguientes lineas al final de al archivo supervisor.conf en la siguiente ruta /etc/supervisor
[program:gogs]
command=/home/<GOGS-USER>/gogs/gogs web
autostart=true
user=<GOGS-USER>
directory=/home/<GOGS-USER>/gogs
environment=HOME="/home/<GOGS-USER>",USER="<GOGS-USER>"
Reiniciamos supervisor
service supervisor restart
Desbloqueamos el puerto en el que va a correo gogs por default es el 3000, estro se lo puede hacer desde VestaCP
Abrimos la direccion url y el puerto para seguir con la instalacion, revisar los campos y crear las carpetas que faltan gogs-repositories y log en los directorios correspondientes Es posible desactivar la opcion de registro de usuarios y que lo haga solo un super administrador
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
Para instalar la servion 3.2.10 estos pasos https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/ o la ultima version seguir los pasos a continuacion
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
Por default Ubuntu 14 ya viene con python 3.4, se puede escribir el siguiente codigo para confirmarlo
python --version
python3 --version
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Para probar que funcione
sudo -iu postgres
psql
Si hay un error al ejecutar psql por locale failure ingresar el siguiente codigo
export LANGUAGE="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
echo 'LANGUAGE="en_US.UTF-8"' >> /etc/default/locale
echo 'LC_ALL="en_US.UTF-8"' >> /etc/default/locale
npm install pm2 -g
Se puede configurar el startup para cuando reincie el server http://pm2.keymetrics.io/docs/usage/startup/
apt-get install ruby-full build-essential
apt-get install rubygems
gem install compass
SSl gratuito proporcionado por LetsEncrypt Para poder instalarlo necesitamos tener un swap file configurado se pueden seguir los pasos del siguiente link para realizarlo https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
El certificado es valido por 90 dias, despues de esto tendremos que renovarlo asi que hay que estar pendiente
cd /usr/local/sbin
sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x /usr/local/sbin/certbot-auto
certbot-auto --apache
Si todo es correcto aparecerá una interfaz grafica para escribir los dominios que deseamos agregar ssl un correo electronico y aceptar los terminos y condiciones
Es posble agregar los dominios directamente a la linea de certbot de la siguiente forma
certbot-auto certonly -d example.com -d example2.com
Para revisar el status del certificado podemos ingresar al siguiente link https://www.ssllabs.com/ssltest/analyze.html
Para renovar los certificados colocar sudo certbot-auto renew y si falla colocar lo de abajo e intentar nuevamente
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
Para asignar una tarea programada que lo haga se puede ejecutar
30 4 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log
35 4 * * 1 /etc/init.d/nginx reload
Se ejecutan las lineas cada lunes a las 4:30 y 4:35 respectivamente
Si faltan menos de 30 dias los certificados se actualizaran de manera automatica
Para actualizar el ssl de apiximah es necesario comenatr la linea de redireccion a https y descomentar el bloque de location .well-known/acme-challenge, correr certbot-auto renew reiniciar el nginx y cuando este regresar el config de nginx a la normalidad
Cambiar la nueva ip del nuevo server en VestaCP ip y web
Para cambiar el dominio y root_URL dde gogs, modificarlo en /home/git-or-newuser/gogs/custom/conf/app.ini