COMO CONFIGURAR STRAPI EN UN VPS DESDE CERO

Lo primero que hago para desplegar un ambiente de strapi en un VPS es instalar las dependencias de desarrollo que se necesita en el servidor:

CLONAMOS EL REPOSITORIO

se tiene que clonar y dar permisos en el servidor mediante ssh-geygen para poder descargar el proyecto desde github

git clone [....link de tu repo]

1. INSTALAMOS DEPENDENCIAS

INSTALAMOS NPM

apt install npm

INSTALAMOS NVM

es un manejador de node el cual nos permite instalar multiples versiones de node en este caso

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" 

luego yo necesito instalar el node 18.17 para que corra sin ningun problema mi versión de strapi que estoy trabajando

nvm install 18.17
nvm list 
nvm use 18.17

2. CONFIGURAMOS MYSQL

Instala mysql en el servidor:

sudo apt install mysql-server


Inicia el servicio de MySQL y asegúrate de que se ejecute al inicio:

sudo systemctl start mysql
sudo systemctl enable mysql


Configura la base de datos para Strapi:

sudo mysql -u root -p
CREATE DATABASE strapi_db;
CREATE USER 'strapi_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON strapi_db.* TO 'strapi_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;


3. Instala y configura PM2 para mantener Strapi en ejecución

Instala PM2 para gestionar el proceso de Strapi:

sudo npm install pm2@latest -g

crea un archivo llamada ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "strapi",
      script: "npm",
      args: "start",
      env: {
        NODE_ENV: "development",
      },
      env_production: {
        NODE_ENV: "production",
      },
    },
  ],
};

luego ejecuta pm2 start ecosystem.config.js y esto levantara el servidor de pm2

En mi caso requiero instalar la dependencia de mysql en npm porque recien lo estaba configurando en el servidor así que ejectute

npm install mysql --save  

4. Configura Nginx como proxy reverso (opcional)


Si deseas utilizar un dominio o gestionar HTTPS:

sudo apt install nginx

Despues crear tu archivo de configuración para el dominio que quieres habilitar:

touch menarini.brayan.es

server {
  server_name mi-dominio.com;  # Cambia por tu dominio
  
  location / {
    proxy_pass http://localhost:1337;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

  listen 80;
}

Sales de tu archivo y ahora enlazas con el siguiente comando, recuerda cambiar tu dominio

sudo ln -s /etc/nginx/sites-available/menarini.brayan.es /etc/nginx/sites-enabled

Despues de eso pues toca instalar el certificado de seguridad para que cualquier persona pueda acceder a tus APIs.

Instalas cerbot PARA NGNIX

Importante instalar las dependencias de cerbot para ngnix

sudo apt install certbot python3-certbot-nginx -y

Luego solo ejecuta la configuración de tu SSL

sudo certbot --nginx -d menarini.brayan.es

El resultado final debería verse algo como esto, donde te indica que fue instalado el certificado satisfactoriamente.

¡Tu web ya está lista para disfrutar! No te olvides de seguirme en todas mis redes sociales. Y como agradecimiento por llegar hasta aquí, te has ganado un 15% de descuento en todos mis servicios.


Ve a la tienda: https://brayan.es/hosting-y-dominio-oferta-15/


Válido por tiempo limitado (solo 10 disponibles).

Artículos relacionados

¡Comunícate con nosotros!