Files
finanzas/Deploy-Guideline.md
2026-01-28 23:29:03 -03:00

3.0 KiB

🚀 Deployment Guideline: Finanzas Personales (Next.js + Telegram Bot)

This document contains step-by-step instructions to deploy the "Finanzas Personales" application to a Linux VPS (Ubuntu/Debian recommended).

1. Prerequisites

  • VPS: A server with Ubuntu 22.04 or later.
  • Domain: A domain pointing to your VPS IP (e.g., finanzas.tusitio.com).
  • Gitea Access: Ensure the VPS can pull from your private Gitea repository.

2. Server Setup (Run as root/sudo)

# Update system
apt update && apt upgrade -y

# Install Node.js 18+ (using NVM is recommended, but apt works for deployment)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
apt install -y nodejs nginx git

# Install Process Manager (PM2)
npm install -g pm2

3. Clone Repository & Install Dependencies

# Navigate to web directory
cd /var/www

# Clone your repo (Use your Gitea token if private)
git clone https://<YOUR_GITEA_URL>/<USER>/finanzas.git
cd finanzas

# Install dependencies
npm install

# Build the Next.js app
npm run build

4. Environment Configuration

Since we use a custom server-settings.json, you need to configure it manually on the server once.

# Create the settings file manually (or copy from local if you have sw access)
nano server-settings.json

Paste your JSON configuration (get this from your local server-settings.json):

{
  "telegram": {
    "botToken": "YOUR_BOT_TOKEN",
    "chatId": "YOUR_CHAT_ID"
  },
  "aiProviders": [
    {
      "id": "uuid...",
      "name": "Service Name",
      "endpoint": "https://api...",
      "token": "sk-...",
      "model": "gpt-4o"
    }
  ]
}

5. Startup with PM2 (Keep Apps Alive)

We need to run two processes: The Next.js Web App and the Telegram Bot.

# 1. Start Next.js (Port 3000)
pm2 start npm --name "finanzas-web" -- start -- -p 3000

# 2. Start Telegram Bot
pm2 start npm --name "finanzas-bot" -- run bot

# Save list so they revive on reboot
pm2 save
pm2 startup

6. Nginx Reverse Proxy (Expose to Internet)

Configure Nginx to safely expose port 3000 to the web.

nano /etc/nginx/sites-available/finanzas

Add this content:

server {
    listen 80;
    server_name finanzas.tusitio.com; # REPLACE THIS

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

Enable site and restart Nginx:

ln -s /etc/nginx/sites-available/finanzas /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

7. SSL Certificate (HTTPS)

Use Certbot to secure your site for free.

apt install -y certbot python3-certbot-nginx
certbot --nginx -d finanzas.tusitio.com

8. Updates

When you push new code to Gitea, update the server:

cd /var/www/finanzas
git pull
npm install
npm run build
pm2 restart finanzas-web
pm2 restart finanzas-bot