Skip to content

Instantly share code, notes, and snippets.

@marcedroid
Last active May 30, 2018 15:59
Show Gist options
  • Save marcedroid/a20e06da17ee302aff8d5526c924657d to your computer and use it in GitHub Desktop.
Save marcedroid/a20e06da17ee302aff8d5526c924657d to your computer and use it in GitHub Desktop.

Configuracion basica server digital ocean

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

1. Instalar Vesta Control Panel

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

2. Instalar Git + Gogs

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

3. Instalar Node JS

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

4. Instalar mongoDB

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

5. Instalar Python 3

Por default Ubuntu 14 ya viene con python 3.4, se puede escribir el siguiente codigo para confirmarlo

python --version
python3 --version

6. Instalar PostgreSQL

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

7. Instalar PM2

npm install pm2 -g

Se puede configurar el startup para cuando reincie el server http://pm2.keymetrics.io/docs/usage/startup/

8. Instalar Ruby

apt-get install ruby-full build-essential
apt-get install rubygems

9 Instalar Compass

gem install compass

10 SSL CertBot

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

Crear otro server con la imagen de este server

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment