PROTRADERS
0%

Instalación paso a paso

Pon tu app en línea, sin saber programar

Esta es la versión detallada y a prueba de tropiezos. Cada comando está listo para copiar, cada paso te dice qué deberías ver, y al lado de los puntos delicados hay un “si algo falla” con la solución. Síguela en orden y de arriba hacia abajo.

~1 hora en total 4 partes independientes Copia y pega, sin escribir a mano
A

La llave de la IA

Para que Manu IA responda con Claude.

5 min
B

Subir y encender

La app corriendo en tu VPS.

15–20 min
C

Cuentas reales

Login y base de datos (Supabase).

25 min
D

Dominio + candado

app.academiaprotraders.com con 🔒

15 min

Con A y B ya tienes la app viva. C y D son mejoras que puedes agregar después, otro día, sin prisa.

0

Antes de empezar

Reúne esto y aprende 5 palabras · 10 min
Listo

No abras nada todavía. Primero ten a la mano las cosas de abajo y lee el mini-glosario. Te va a ahorrar la mitad de los tropiezos.

0.1

Ten a la mano tus datos del VPS

El VPS es tu servidor (donde ya vive academiaprotraders.com). Necesitas 3 cosas de él, que te dio tu proveedor por correo cuando lo contrataste:

  • La IP del servidor — un número como 185.22.14.203
  • El usuario de acceso — casi siempre root (a veces ubuntu)
  • La contraseña (o el archivo de llave .pem) de ese usuario

Si no los encuentras, entra al panel de tu proveedor (Hostinger, Contabo, DigitalOcean, etc.) → sección del servidor → ahí aparecen la IP y la opción de resetear la contraseña de root.

🆘 No sé cuál es mi proveedor ni mi IP

Busca en tu correo el asunto donde te dieron el hosting/servidor. Palabras clave: “VPS”, “acceso root”, “SSH”, “tu servidor está listo”. Ahí viene la IP. Si tu web academiaprotraders.com está en un hosting compartido (no un VPS), esta app necesita un VPS aparte — cuéntame y te digo cómo conseguir uno barato.

0.2

Instala los 2 programas que vas a usar

1) Para escribir comandos en el servidor:

  • Windows: ya tienes PowerShell (búscalo en el menú inicio). No necesitas instalar nada. Alternativa: PuTTY.
  • Mac: ya tienes Terminal (Cmd+Espacio, escribe “Terminal”).

2) Para subir los archivos de la app:

  • Windows / Mac: descarga FileZilla (gratis). Es como un explorador de archivos que copia de tu compu al servidor arrastrando.
💡
No hace falta que entiendas cómo funcionan. Solo instálalos ahora; te iré diciendo exactamente dónde hacer clic.
0.3

Ten la carpeta protraders-vps descargada

Es el paquete de la app que te entregué. Descomprímela si viene en .zip. Al abrirla deberías ver estos archivos:

protraders-vps/
├── server.js              · el motor de la app
├── package.json
├── .env.example
├── deploy.sh              · instalador automático
├── supabase-schema.sql
└── public/
    ├── index.html         · la app en sí
    ├── manifest.json
    ├── sw.js
    └── icons/
⚠️
Si te falta algún archivo o la carpeta llegó incompleta, no sigas: avísame y te la reenvío completa.
0.4

Aprende estas 5 palabras (30 segundos)

Van a aparecer todo el rato. No necesitas más que esto:

VPS
Tu servidor en internet. Una computadora encendida 24/7 donde vive tu app.
SSH
La forma de “entrar” a tu VPS para darle órdenes escribiendo comandos.
Comando
Una línea que escribes (o pegas) y ejecutas con Enter. El servidor la obedece.
PM2
Un “vigilante” que mantiene tu app encendida aunque cierres la ventana o el servidor se reinicie.
Supabase
El servicio gratis que guarda las cuentas de tus usuarios en la nube (Parte C).
DNS
La “agenda telefónica” de internet: conecta tu dominio con la IP de tu VPS (Parte D).
Punto de controlTienes IP + usuario + contraseña, los 2 programas instalados, la carpeta a mano y entiendes las 5 palabras. Ahora sí, a la Parte A.
A

La llave de la IA (Anthropic)

Lo que hace que Manu IA piense · 5 min
Listo

Manu IA responde usando Claude (el mismo modelo con el que hablas conmigo). Para eso necesita una “llave” privada. Aquí la creas. Es un texto largo que empieza con sk-ant-.

A1

Crea tu cuenta en Anthropic

  1. Abre console.anthropic.com
  2. Clic en Sign up (arriba a la derecha)
  3. Regístrate con tu correo o con Google
  4. Abre el correo de confirmación que te llega y confirma
A2

Agrega saldo ($10 USD)

  1. Menú izquierdo → Billing (facturación)
  2. Clic en Buy credits (comprar créditos)
  3. Agrega $10 USD con tu tarjeta
💡
Con $10 tienes para miles de conversaciones. La IA cobra por uso (centavos por respuesta), no una mensualidad. Puedes empezar con $5 si prefieres.
A3

Crea la llave y guárdala YA

  1. Menú izquierdo → API Keys
  2. Clic en Create Key
  3. Ponle un nombre, ej. protraders-app
  4. Clic en Create Key
🔑
Copia la llave inmediatamente y pégala en un bloc de notas o gestor de contraseñas. Es larga y empieza por sk-ant-.... No se vuelve a mostrar nunca. Si la pierdes, no pasa nada: borras esa y creas otra.
🆘 Cerré la ventana y no copié la llave

Tranquilo. Vuelve a API Keys, borra la llave que creaste (icono de basura) y crea una nueva con Create Key. Esta vez cópiala antes de cerrar.

Punto de controlTienes tu llave sk-ant-... guardada en un lugar seguro. Guárdala, la usarás en el paso B4.
B

Subir la app y encenderla

La parte más importante · 15–20 min
Listo

Aquí copias la app a tu servidor y la enciendes. Al final vas a poder abrirla en el navegador. Tómalo con calma: es copiar-pegar, un paso a la vez.

B1

Conéctate al VPS con FileZilla

Abre FileZilla. Arriba del todo hay 4 casillas. Llénalas así:

  • Servidor: la IP de tu VPS (ej. 185.22.14.203)
  • Nombre de usuario: tu usuario (ej. root)
  • Contraseña: tu contraseña
  • Puerto: 22

Clic en Conexión rápida. Si te sale una ventana de “clave desconocida del host”, marca “Confiar siempre” y acepta — es normal la primera vez.

Deberías ver
Estado: Conexión establecida, esperando el mensaje de bienvenida...
Estado: Conectado

En el panel derecho aparecen los archivos del servidor.

🆘 No conecta / error crítico

Error crítico: no se pudo conectar → revisa que la IP y el puerto 22 estén bien escritos, y que el usuario/contraseña sean correctos.

Authentication failed → contraseña incorrecta. Resetéala desde el panel de tu proveedor y vuelve a intentar.

Se queda “conectando…” eternamente → tu proveedor puede tener un firewall bloqueando el puerto 22, o la IP es de otra cosa. Verifica la IP en el panel.

B2

Sube la carpeta a /var/www/

  1. En el panel derecho (el servidor), en la barra de ruta escribe /var/www/ y pulsa Enter. Si no existe, clic derecho en un espacio vacío → Crear directorio → escribe www → entra en él.
  2. En el panel izquierdo (tu compu), navega hasta donde tienes la carpeta protraders-vps.
  3. Arrastra la carpeta protraders-vps completa desde la izquierda hacia el panel derecho.
  4. Espera 1–2 minutos a que suba todo. Abajo verás la cola de archivos vaciándose.
📁
La ruta final en el servidor debe quedar: /var/www/protraders-vps/
🆘 “Permission denied” al subir

Tu usuario no tiene permiso para escribir ahí. Lo más fácil: sube la carpeta a /root/ (o a tu carpeta personal) en vez de /var/www/, y luego en los comandos usa esa ruta. O conéctate como root. Si te trabas aquí, dime tu usuario y te doy la ruta exacta.

B3

Entra al VPS por SSH (comandos)

Abre PowerShell (Windows) o Terminal (Mac). Pega esto, cambiando usuario y la IP por los tuyos:

ssh usuario@LA-IP-DE-TU-VPS

Pulsa Enter. La primera vez pregunta Are you sure...? → escribe yes y Enter. Luego pide la contraseña.

👀
Al escribir la contraseña no se ve nada (ni puntos ni asteriscos). Es normal, así es SSH. Escríbela “a ciegas” y pulsa Enter.
Deberías ver
Welcome to Ubuntu 22.04 LTS ...
root@servidor:~#

Ese # parpadeando significa que ya estás dentro del servidor. 🎉

🆘 Errores comunes al conectar

Permission denied (publickey,password) → contraseña incorrecta, o tu VPS usa llave .pem. Con .pem el comando es ssh -i ruta/llave.pem usuario@IP.

Connection refused o timed out → IP equivocada o puerto 22 bloqueado. Verifica la IP en el panel del proveedor.

Windows: ssh no se reconoce → usa PowerShell (no CMD), o instala PuTTY.

B4

Pega tu llave de la IA en el archivo .env

Ya dentro del VPS, ejecuta estos comandos uno por uno (pega, Enter, siguiente):

cd /var/www/protraders-vps
cp .env.example .env
nano .env

Se abre el editor nano. Verás dos líneas. En nano, el símbolo ^ significa la tecla Ctrl. Haz esto:

  1. Con las flechas, ve al final de la línea ANTHROPIC_API_KEY=sk-ant-pega-aqui...
  2. Borra el texto de ejemplo después del = (tecla Suprimir / Backspace)
  3. Pega tu llave real: clic derecho del mouse (o Ctrl+Shift+V)

Debe quedar así (tu llave real, sin espacios):

ANTHROPIC_API_KEY=sk-ant-api03-XXXXXXXXXXXX...
PORT=3000

Para guardar y salir de nano:

  1. Ctrl+O  (guardar)
  2. Enter  (confirmar el nombre)
  3. Ctrl+X  (salir)
🆘 nano se ve raro / me perdí

Si te enredaste, sal sin guardar con Ctrl+X y, si pregunta, pulsa N. Luego vuelve a abrir con nano .env y empieza de nuevo con calma.

Ojo: no dejes espacios alrededor del =. Correcto: ANTHROPIC_API_KEY=sk-ant-...

B5

Ejecuta el instalador automático

Un solo comando lo hace todo: instala Node.js, las dependencias, enciende la app con PM2 y abre el puerto:

bash deploy.sh
Tarda 2–5 minutos y muestra muchísimo texto pasando. Es totalmente normal. No cierres la ventana. Espera a que se detenga.
Al terminar deberías ver
✓ DESPLIEGUE COMPLETO
Tu app está corriendo en: http://TU-IP:3000
🆘 El instalador dio error

Permission denied al correr deploy.sh → prueba bash deploy.sh (con “bash” delante, como está arriba). Si aún falla, chmod +x deploy.sh y reintenta.

command not found a mitad → el script instala Node solo; si no pudo, corre sudo apt-get update y vuelve a lanzar bash deploy.sh.

EADDRINUSE / port 3000 in use → algo ya usa el puerto. Corre pm2 delete all y reintenta.

Si sale otro error, copia las últimas 15 líneas tal cual y mándamelas.

B6

Ábrela en el navegador

En tu compu o tu teléfono, abre esta dirección (con tu IP real):

http://LA-IP-DE-TU-VPS:3000

Deberías ver la pantalla de bienvenida con el logo ProTraders y luego “BIENVENIDO A LA ACADEMIA PROTRADERS”. Puedes tocar “Crear cuenta” y probar el modo demo.

🆘 La página no abre

Vuelve a la ventana de SSH y revisa que la app esté viva:

  • pm2 status → la línea protraders debe decir online (verde). Si dice errored, mira el detalle con pm2 logs protraders.
  • curl http://localhost:3000/api/health → debe responder {"ok":true,"keyConfigured":true}.

Si curl responde bien pero desde el navegador no abre, es el firewall bloqueando el puerto 3000. Corre: sudo ufw allow 3000 y reintenta.

¡La app está viva!Ya funciona en http://TU-IP:3000 con Manu IA real y precios en vivo. Puedes parar aquí y seguir con C y D otro día.
C

Cuentas reales con Supabase

Login + base de datos en la nube · 25 min
Listo

Sin esto, cada usuario guarda sus datos solo en su navegador. Con esto: cuentas reales, login con Google/correo y una base de datos en la nube compartida. Es gratis.

C1

Crea tu proyecto en Supabase

  1. Abre supabase.comStart your project
  2. Regístrate con GitHub o con tu correo
  3. En el panel, clic en New project

Configúralo así:

  • Name: protraders-academia
  • Database Password: genera una fuerte y guárdala (por si algún día la necesitas)
  • Region: South America (São Paulo) — la más cercana a Colombia
  • Plan: Free

Clic en Create new project y espera 2–3 min a que se cree.

C2

Crea las tablas (correr el SQL)

  1. Menú lateral de Supabase → SQL Editor (icono <>)
  2. Clic en + New query
  3. En tu compu, abre el archivo supabase-schema.sql con el Bloc de notas / TextEdit
  4. Selecciona todo (Ctrl+A) y copia (Ctrl+C)
  5. Pégalo en el editor de Supabase (Ctrl+V)
  6. Clic en Run (abajo a la derecha, o Ctrl+Enter)
Deberías ver
Success. No rows returned.

Verifica: menú → Table Editor. Deben aparecer 4 tablas: profiles, trades, manu_chat, comm_messages.

C3

Copia la URL y la llave pública

  1. Menú → engranaje SettingsAPI
  2. Copia el Project URL — algo como https://abcdefgh.supabase.co
  3. Copia la llave anon / public — un texto largo que empieza con eyJ...
⚠️
NO copies la llave service_role. Esa es de administrador y nunca debe ir en la app. Solo la anon / public.
C4

Pégalas en la app y vuelve a subir

Método fácil: editas el archivo en tu compu y lo re-subes con FileZilla.

  1. En tu compu, abre protraders-vps/public/index.html con el Bloc de notas (Windows) o TextEdit en modo texto plano (Mac)
  2. Busca (Ctrl+F): const SUPABASE = {
  3. Pega tus valores entre las comillas, así:
const SUPABASE = {
  url:     'https://abcdefgh.supabase.co',
  anonKey: 'eyJhbGciOiJIUzI1NiIs...',
};
  1. Guarda el archivo
  2. Con FileZilla, sube ese index.html a /var/www/protraders-vps/public/ (reemplaza el que está ahí)
  3. En la ventana de SSH, reinicia la app:
pm2 restart protraders
💡
Tras subir cualquier cambio, haz siempre pm2 restart protraders y en el navegador un refresco forzado (Ctrl+Shift+R) para ver lo nuevo.
C5

(Opcional) Entrar sin confirmar correo

Para que tus usuarios entren al instante al registrarse:

  1. Supabase → AuthenticationProvidersEmail
  2. Desactiva Confirm email
  3. Save
🔵 Quiero también botón “Entrar con Google”

Es un paso extra con Google Cloud. Resumen: creas credenciales OAuth en console.cloud.google.com, pones como redirect URI exactamente https://TU-URL.supabase.co/auth/v1/callback, y pegas el Client ID y Client Secret en Supabase → Authentication → Providers → Google. El error #1 aquí es una URL de redirección mal copiada (una barra / de más). Si lo vas a hacer, dime y te guío pantalla por pantalla.

C6

Prueba que se crean cuentas de verdad

Abre de nuevo http://TU-IP:3000, toca Crear cuenta y regístrate. Luego, en Supabase → AuthenticationUsers, deberías verte a ti mismo en la lista.

🆘 Me registro pero no aparece en Supabase

Casi siempre es la URL o la llave mal pegadas en el paso C4. Revisa que estén completas, sin espacios, y que sea la llave anon (no service_role). Vuelve a guardar, re-sube el index.html y pm2 restart protraders.

Punto de controlTus usuarios ya tienen cuentas reales guardadas en la nube. Última mejora opcional: tu propio dominio con candado.
D

Tu dominio con candado 🔒

De http://IP:3000 a https://app.academiaprotraders.com · 15 min
Listo

Para que tu app tenga una dirección profesional y el candado de seguridad (HTTPS). Se hace una sola vez y el certificado se renueva solo.

D1

Apunta el subdominio a tu VPS

Entra al panel donde administras academiaprotraders.com → sección DNS / Registros DNS. Añade un registro:

  • Tipo: A
  • Nombre / Host: app
  • Valor / Apunta a: la IP de tu VPS
  • TTL: por defecto (o 3600)

Guarda. Ahora hay que esperar a que se propague (de 5 a 30 min). Verifícalo con este comando en SSH — cuando responda con la IP de tu VPS, está listo:

ping app.academiaprotraders.com
No avances al paso D5 hasta que el ping responda con la IP correcta. Si haces el candado antes de que el DNS propague, va a fallar.
D2

Instala Nginx y Certbot

En SSH, uno por uno:

sudo apt-get update
sudo apt-get install -y nginx certbot python3-certbot-nginx
💡
Nginx es el “recepcionista” que recibe las visitas y las manda a tu app. Certbot pone el candado gratis.
D3

Configura Nginx

Abre el archivo de configuración:

sudo nano /etc/nginx/sites-available/protraders

Pega exactamente esto (clic derecho → pegar):

server {
    server_name app.academiaprotraders.com;
    client_max_body_size 5M;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Guarda y sal: Ctrl+OEnterCtrl+X

D4

Activa la configuración

Uno por uno:

sudo ln -s /etc/nginx/sites-available/protraders /etc/nginx/sites-enabled/
sudo nginx -t
Deberías ver
syntax is ok
test is successful
sudo systemctl reload nginx
🆘 nginx -t da error

Casi siempre es un carácter mal pegado en el paso D3. Vuelve a abrir sudo nano /etc/nginx/sites-available/protraders, borra todo y vuelve a pegar el bloque con el botón “Copiar”. Guarda y repite sudo nginx -t.

D5

Instala el candado (HTTPS)

sudo certbot --nginx -d app.academiaprotraders.com

Te preguntará:

  • Tu email real → escríbelo y Enter
  • Aceptar términos → escribe A y Enter
  • Compartir email con EFF → N y Enter (o Y si quieres)
Al terminar deberías ver
Congratulations! You have successfully enabled
https://app.academiaprotraders.com
🆘 Certbot falló

DNS problem / NXDOMAIN o Timeout → el DNS aún no propagó. Espera 15–30 min más, verifica con ping app.academiaprotraders.com (paso D1) y reintenta el mismo comando.

Could not bind to port 80 → algo usa el puerto 80. Corre sudo systemctl stop apache2 y reintenta certbot.

D6

Compruébalo

Abre en el navegador https://app.academiaprotraders.com. Deberías ver el candado 🔒 a la izquierda de la dirección y tu app cargando.

🔁
El certificado se renueva solo. No tienes que hacer nada más nunca.
¡Terminaste todo!Tu app está 100% profesional: Manu IA, precios en vivo, cuentas reales, HTTPS e instalable en el móvil.

🆘 Comandos de rescate

Guárdalos. Sirven para cualquier momento en que algo se comporte raro. Se ejecutan en la ventana de SSH.

Ver qué está pasando (logs en vivo)

pm2 logs protraders

Sal con Ctrl+C.

Reiniciar la app tras un cambio

pm2 restart protraders

¿Está corriendo?

pm2 status

Debe decir online en verde.

¿El motor responde? (la llave está bien)

curl http://localhost:3000/api/health

Ideal: {"ok":true,"keyConfigured":true}

Cuando algo falle y no lo resuelvas, escríbeme con estas 3 cosas y te lo soluciono al toque:
  1. En qué paso te trabaste (ej. “B5”)
  2. El comando exacto que ejecutaste
  3. El mensaje de error tal cual (copia-pega, no lo describas con tus palabras)