Para desarrolladores
Repositorio y rama
- GitHub:
github.com/yorshnu-skneg/iFondita - Rama de trabajo:
staging(staging = prod = GitHub). Se trabaja siempre sobre el servidor vía SSH, no en copias locales.
git clone git@github.com:yorshnu-skneg/iFondita.git
cd iFondita
git checkout stagingEstructura del monorepo
Monorepo npm workspaces (apps/*, packages/*) con Turbo.
iFondita/
├─ apps/
│ ├─ pos-backend/ # API Express + TS (puerto 3005) → api.ifondita.com
│ ├─ pos/ # Frontend POS (3001) → pos.ifondita.com
│ ├─ admin-central/ # Panel interno Fogón (3002) → fogon.ifondita.com
│ ├─ advertiser-portal/ # Portal anunciantes (3003) → ads.ifondita.com
│ ├─ restaurant-dashboard/ # Panel owner (3004) → dashboard.ifondita.com
│ ├─ web/ # Landing (3006) → ifondita.com
│ ├─ fogon/ # Fogón BI (3007) → analytics.ifondita.com
│ ├─ aprovecho/ # App comensal (3008)
│ └─ mesero/ # App mesero Expo (bloqueada)
├─ docs/ # DATABASE_ERD.md, api/openapi.yaml
└─ docs-site/ # Esta documentación (Nextra, 3009) — aislada del workspaceBackend (pos-backend)
Compila TypeScript (src/ → dist/) y corre desde el compilado.
cd apps/pos-backend
npm install
NODE_OPTIONS=--max-old-space-size=2048 npx tsc # el build necesita más memoria
pm2 restart pos-backend # siempre restart, nunca reload- Puerto 3005. Health:
GET /api/health. Swagger:GET /api-docs/. - El rol de app en la DB es DML-only; el DDL se aplica como
postgres(via sudo).
Esta documentación (docs-site, Nextra)
cd docs-site
npm install
npm run build # next build
pm2 start npm --name ifondita-docs -- start # next start -p 3009
# dev local:
npm run dev # next dev -p 3009Vive fuera del workspace npm (no bajo apps/) para no arrastrar las versiones de React/Next de las apps. Corre en el puerto 3009.
Deploy (flujo)
- Push a
stagingen GitHub. - En el servidor:
git pull origin staging. - Rebuild de la app afectada (
npx tscpara el backend,npm run buildpara las Next apps). pm2 restart <app>(nuncareload).
Nginx + Certbot enrutan cada subdominio al puerto PM2 correspondiente (renovación SSL automática).
Aliases SSH
| Alias | Servidor | Uso |
|---|---|---|
ssh ifondita | 46.62.243.250:2222 | Producción |
ssh ifondita-staging | 46.62.240.130:2222 | Staging |
- Ambos con usuario
deploy; el repo vive en/home/deploy/iFondita. - En staging,
juanmatiene sudo NOPASSWD (sólo staging, nunca replicar en prod).
Fuentes de verdad
- Schema:
docs/DATABASE_ERD.md(generado desdeinformation_schema/pg_catalogreales). - API:
docs/api/openapi.yaml(generado desde los routers reales) → Swagger enapi.ifondita.com/api-docs/. - Estado y decisiones: bóveda
MiMente/01-Proyectos/iFondita/(estado maestro +00-Inbox/).