docs: Add Deployment Guideline
This commit is contained in:
136
Deploy-Guideline.md
Normal file
136
Deploy-Guideline.md
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
# 🚀 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)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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`):
|
||||||
|
```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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano /etc/nginx/sites-available/finanzas
|
||||||
|
```
|
||||||
|
|
||||||
|
Add this content:
|
||||||
|
```nginx
|
||||||
|
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:
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /var/www/finanzas
|
||||||
|
git pull
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
pm2 restart finanzas-web
|
||||||
|
pm2 restart finanzas-bot
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user