Skip to content

Instantly share code, notes, and snippets.

@samuelluis
Last active June 6, 2017 20:08
Show Gist options
  • Save samuelluis/29f8a7ae9017f7d376818aca2b02964b to your computer and use it in GitHub Desktop.
Save samuelluis/29f8a7ae9017f7d376818aca2b02964b to your computer and use it in GitHub Desktop.
Configuracion de servidor en DigitalOcean en esencia para un app MeteorJS.

Como configurar una instancia de Digital Ocean para Bontix Displays

  1. Creamos un droplet en Digital Ocean usando Ubuntu (la version recomendada por defecto), de 1GB de RAM en adelante.
  2. Iniciamos session ssh root@<ip-de-nuestro-droplet> usando la password que nos envian al email de nuestra cuenta de Digital Ocean.
  3. Nos pedira cambiar la clave, para lo cual digitamos la misma que usamos en el login y luego ponemos la nueva 2 veces.
  4. Una vez dentro realizaremos la siguiente rutina de comandos:
    • Configuraciones del servidor
      • sudo apt-get update
      • sudo apt-get install vim git ssh wget htop curl expect
      • git clone https://gist.github.com/df5516dc160b303329ea596d8c0b8cfb.git
      • . df5516dc160b303329ea596d8c0b8cfb/init-git.sh "John Doe" john.doe@email.com, el output de este ultimo comando, es un public key que debemos poner en github, lo copiamos, iniciamos session con bontixbot y hacemos los siguientes pasos a partir del #2: Adding a new SSH key to your GitHub account
      • rm -Rf df5516dc160b303329ea596d8c0b8cfb
      • git clone https://gist.github.com/ed457b88899eaf38b6f0dcd484860116.git
      • . ed457b88899eaf38b6f0dcd484860116/config-git.sh
      • rm -Rf ed457b88899eaf38b6f0dcd484860116
    • Configurar SWAP (Opcional)
      • sudo fallocate -l 4G /swapfile
      • sudo chmod 600 /swapfile
      • sudo mkswap /swapfile
      • sudo swapon /swapfile
      • sudo nano /etc/fstab
      • Agregar al final del archivo lo siguiente: /swapfile none swap sw 0 0
      • sudo nano /etc/sysctl.conf
      • Agregar al final del archivo las siguientes lineas: vm.swappiness=10 y vm.vfs_cache_pressure = 50
    • Configuraciones de Meteor y el proyecto
      • curl https://install.meteor.com/ | sh
      • git clone git@github.com:<user>/<repo>.git
      • cd <repo>/
      • git pull
      • git checkout <my-branch>, master para production, staging para staging
      • git pull origin <my-branch>
      • git merge master para acutalizar nuestra branch con master solo si no es master
      • cd app/
      • si estas usando un usuario root debes agregar al final del .bashrc esta linea: export METEOR_ALLOW_SUPERUSER=1
      • (opcional) inicializar MONGO_URL, para conectar meteor a una mongodb externa: export MONGO_URL=mongodb://<username>:<password>@<host>:<port>/<database>?ssl=true para inicializarla permanentemente agregarla al final del archivo ~/.bashrc
      • nohup meteor -p80 --settings prod.settings.json > ~/<repo>.logs &
  5. Y listo ya tendremos nuestro server corriendo en Ubuntu en Digital Ocean.

Nota: (Opcional) Para mas comodidad al usar git podemos ver en el command prompt el branch en el que estamos actualmente, para esto agregamos al final de archivo ~/.bashrc lo siguiente:

parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

export PS1="\[\033[1;36m\]\u@\W \[\033[32m\]\$(parse_git_branch)\[\033[00m\]$ "
export PATH=/usr/local/bin:/usr/bin:$PATH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment