Dockerizado y con script de instalación

This commit is contained in:
igferne
2026-01-07 13:35:29 +01:00
parent e4f985e6aa
commit a706bf980d
13 changed files with 393 additions and 1333 deletions

View File

@@ -1,31 +1,31 @@
# backend/Dockerfile
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
# Evitar .pyc y buffering
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /app
# Dependencias del sistema mínimas
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Primero copiamos el pyproject para aprovechar la caché al instalar deps
# Copiamos pyproject y lock si lo hubiera
COPY pyproject.toml ./
# Si tienes setup.cfg/setup.py, los copias también
# Instalamos dependencias
RUN pip install --upgrade pip && \
pip install .
# Ahora copiamos todo el código
# Copiamos el resto del código (respetando .dockerignore)
COPY . .
# Crear directorios base de datos
RUN mkdir -p /app/data/input /app/data/output
# Variables de autenticación básica
ENV BASIC_AUTH_USERNAME=admin
ENV BASIC_AUTH_PASSWORD=admin
EXPOSE 8000
# Credenciales por defecto (en runtime las puedes sobrescribir)
ENV BASIC_AUTH_USERNAME=beyond \
BASIC_AUTH_PASSWORD=beyond2026
CMD ["uvicorn", "beyond_api.main:app", "--host", "0.0.0.0", "--port", "8000"]
CMD ["python", "-m", "uvicorn", "beyond_api.main:app", "--host", "0.0.0.0", "--port", "8000"]

File diff suppressed because it is too large Load Diff

View File

@@ -1,301 +0,0 @@
interaction_id,datetime_start,queue_skill,channel,duration_talk,hold_time,wrap_up_time,agent_id,transfer_flag,caller_id
id_1,2024-01-07 11:28:00,ventas,voz,708,17,22,A3,False,+34693410762
id_2,2024-01-24 12:35:00,soporte,voz,1028,37,26,A2,True,+34613953367
id_3,2024-01-12 13:01:00,ventas,email,507,20,43,A5,False,+34642860080
id_4,2024-01-27 18:41:00,ventas,email,217,24,37,A4,False,+34632049003
id_5,2024-01-23 11:56:00,ventas,voz,624,19,30,A1,False,+34695672411
id_6,2024-01-15 19:06:00,soporte,voz,789,52,45,A5,False,+34668979792
id_7,2024-01-04 09:39:00,ventas,email,510,60,44,A2,True,+34652631083
id_8,2024-01-02 17:35:00,posventa,voz,321,44,42,A4,False,+34636433622
id_9,2024-01-28 16:39:00,retenciones,voz,694,43,75,A2,False,+34657055419
id_10,2024-01-28 16:28:00,posventa,chat,814,41,53,A3,False,+34691355424
id_11,2024-01-27 12:41:00,soporte,voz,432,23,44,A3,False,+34604545583
id_12,2024-01-23 14:23:00,ventas,voz,795,49,65,A4,False,+34614881728
id_13,2024-01-03 12:46:00,ventas,chat,794,45,62,A3,False,+34697636744
id_14,2024-01-15 17:41:00,retenciones,voz,667,2,35,A4,False,+34628433648
id_15,2024-01-20 11:29:00,ventas,chat,659,9,18,A1,False,+34621970758
id_16,2024-01-27 10:21:00,retenciones,email,638,35,53,A5,False,+34650441204
id_17,2024-01-06 19:27:00,retenciones,email,517,2,34,A2,False,+34653892568
id_18,2024-01-07 08:00:00,ventas,voz,750,22,18,A2,False,+34672931048
id_19,2024-01-03 14:05:00,retenciones,voz,68,36,34,A2,False,+34623234510
id_20,2024-01-27 13:31:00,ventas,chat,542,67,42,A3,False,+34613022704
id_21,2024-01-26 11:11:00,posventa,email,596,0,23,A3,True,+34667922032
id_22,2024-01-02 09:27:00,soporte,chat,401,26,44,A3,False,+34688917675
id_23,2024-01-26 13:31:00,soporte,email,447,33,20,A3,False,+34606659908
id_24,2024-01-20 09:05:00,ventas,email,466,54,34,A2,False,+34635562619
id_25,2024-01-27 13:15:00,soporte,voz,619,19,16,A4,False,+34677809459
id_26,2024-01-09 08:39:00,posventa,chat,613,42,37,A5,False,+34670721464
id_27,2024-01-25 09:22:00,soporte,email,974,37,30,A3,False,+34671450611
id_28,2024-01-28 08:01:00,ventas,voz,495,50,42,A1,False,+34623448674
id_29,2024-01-19 10:19:00,retenciones,chat,650,36,29,A3,False,+34654710375
id_30,2024-01-20 10:47:00,ventas,voz,646,35,29,A5,True,+34619576703
id_31,2024-01-14 09:01:00,retenciones,voz,809,56,51,A4,False,+34655403796
id_32,2024-01-16 11:55:00,posventa,email,409,49,46,A4,False,+34624947744
id_33,2024-01-16 19:58:00,soporte,chat,326,14,53,A2,False,+34658245345
id_34,2024-01-21 08:27:00,soporte,email,552,47,45,A5,False,+34640820227
id_35,2024-01-03 08:16:00,retenciones,email,597,33,49,A5,False,+34666880548
id_36,2024-01-24 08:45:00,posventa,email,530,20,51,A4,False,+34631725526
id_37,2024-01-01 10:17:00,retenciones,voz,742,31,49,A2,False,+34691299103
id_38,2024-01-15 13:22:00,posventa,voz,952,31,22,A1,False,+34694569232
id_39,2024-01-08 08:08:00,ventas,voz,408,57,53,A2,False,+34676294551
id_40,2024-01-13 19:57:00,posventa,email,479,18,38,A1,False,+34602503771
id_41,2024-01-02 09:31:00,posventa,chat,502,31,74,A5,False,+34671531065
id_42,2024-01-22 08:51:00,posventa,email,226,0,46,A3,False,+34692526139
id_43,2024-01-12 19:04:00,ventas,email,842,26,34,A1,False,+34657351079
id_44,2024-01-20 09:59:00,retenciones,email,341,3,10,A3,False,+34603695961
id_45,2024-01-05 17:52:00,ventas,chat,572,14,34,A4,False,+34620840174
id_46,2024-01-02 13:47:00,soporte,chat,631,35,73,A1,False,+34677183765
id_47,2024-01-29 14:02:00,retenciones,email,453,4,36,A2,False,+34698208175
id_48,2024-01-21 14:35:00,ventas,email,974,24,21,A3,False,+34694919177
id_49,2024-01-22 12:35:00,soporte,voz,574,20,40,A3,False,+34610495300
id_50,2024-01-13 11:15:00,soporte,email,1069,33,30,A5,True,+34699967871
id_51,2024-01-27 11:23:00,ventas,email,749,66,43,A3,False,+34604035851
id_52,2024-01-03 08:32:00,posventa,voz,545,7,48,A1,False,+34630185054
id_53,2024-01-14 09:50:00,retenciones,chat,291,52,22,A2,False,+34608454561
id_54,2024-01-19 16:06:00,ventas,voz,914,37,29,A5,False,+34610617244
id_55,2024-01-24 11:24:00,ventas,voz,474,47,48,A4,False,+34693437616
id_56,2024-01-03 11:17:00,ventas,email,457,39,17,A2,False,+34662976036
id_57,2024-01-12 08:54:00,soporte,email,765,46,59,A4,False,+34688146618
id_58,2024-01-19 08:35:00,soporte,chat,604,24,30,A5,False,+34656294783
id_59,2024-01-20 10:57:00,posventa,voz,436,71,24,A5,False,+34610198499
id_60,2024-01-21 14:15:00,soporte,email,357,16,39,A3,False,+34617310852
id_61,2024-01-03 14:28:00,posventa,email,434,23,46,A3,False,+34631665404
id_62,2024-01-06 14:45:00,posventa,email,487,21,43,A4,False,+34680497273
id_63,2024-01-02 12:28:00,ventas,voz,310,1,29,A2,False,+34675524262
id_64,2024-01-27 17:25:00,ventas,chat,557,15,11,A1,False,+34638538877
id_65,2024-01-26 11:27:00,soporte,email,729,40,52,A2,False,+34638503931
id_66,2024-01-17 16:55:00,ventas,voz,826,0,57,A1,False,+34639301804
id_67,2024-01-13 12:15:00,soporte,voz,644,30,41,A1,False,+34699204497
id_68,2024-01-15 16:48:00,retenciones,voz,445,21,67,A5,False,+34693691765
id_69,2024-01-03 14:56:00,soporte,chat,571,17,35,A4,False,+34693837987
id_70,2024-01-26 15:57:00,soporte,email,452,14,26,A2,False,+34642734307
id_71,2024-01-27 13:16:00,posventa,voz,470,0,17,A4,False,+34658842658
id_72,2024-01-29 13:17:00,posventa,voz,735,63,14,A1,False,+34686966281
id_73,2024-01-24 09:58:00,ventas,email,835,20,14,A4,False,+34628267184
id_74,2024-01-13 08:33:00,retenciones,chat,870,36,68,A4,False,+34629702914
id_75,2024-01-21 14:36:00,posventa,email,784,46,19,A1,False,+34606195200
id_76,2024-01-19 11:00:00,ventas,voz,472,51,63,A4,False,+34685072967
id_77,2024-01-07 17:57:00,retenciones,voz,910,32,57,A2,False,+34607102173
id_78,2024-01-27 16:16:00,soporte,voz,613,42,60,A5,False,+34648840101
id_79,2024-01-28 09:37:00,posventa,voz,922,55,26,A4,False,+34669562616
id_80,2024-01-06 08:23:00,soporte,chat,623,24,48,A4,False,+34643558992
id_81,2024-01-05 11:09:00,soporte,voz,597,45,35,A4,False,+34615734209
id_82,2024-01-13 18:42:00,ventas,voz,267,27,38,A5,False,+34613081782
id_83,2024-01-16 18:53:00,ventas,voz,418,41,28,A2,False,+34665438362
id_84,2024-01-29 09:57:00,soporte,chat,934,42,32,A4,False,+34616618153
id_85,2024-01-29 13:20:00,posventa,voz,936,77,51,A4,False,+34675589337
id_86,2024-01-13 18:08:00,ventas,voz,542,29,26,A4,False,+34650066487
id_87,2024-01-30 18:47:00,ventas,chat,577,25,49,A3,False,+34693842126
id_88,2024-01-15 15:21:00,posventa,chat,751,45,28,A4,False,+34607585153
id_89,2024-01-13 17:13:00,posventa,voz,773,39,34,A2,False,+34647756479
id_90,2024-01-25 14:36:00,retenciones,voz,780,35,20,A1,False,+34664413145
id_91,2024-01-30 19:24:00,ventas,email,643,48,55,A3,False,+34693198563
id_92,2024-01-15 13:33:00,ventas,voz,730,71,60,A5,False,+34616203305
id_93,2024-01-09 12:05:00,posventa,email,645,46,39,A5,False,+34679357216
id_94,2024-01-21 13:20:00,soporte,voz,272,20,30,A5,False,+34616514877
id_95,2024-01-30 15:54:00,ventas,voz,759,32,66,A1,False,+34616263882
id_96,2024-01-08 17:50:00,ventas,email,585,21,47,A2,False,+34682405138
id_97,2024-01-20 08:19:00,posventa,voz,508,23,17,A5,False,+34653215075
id_98,2024-01-13 18:02:00,soporte,email,759,27,33,A5,False,+34603757974
id_99,2024-01-10 19:01:00,ventas,email,801,18,52,A1,False,+34608112074
id_100,2024-01-15 15:37:00,posventa,email,374,0,24,A5,False,+34677822269
id_101,2024-01-28 19:49:00,retenciones,chat,674,17,41,A2,False,+34601135964
id_102,2024-01-08 18:40:00,retenciones,voz,568,45,49,A3,False,+34608910852
id_103,2024-01-19 18:13:00,posventa,voz,158,37,35,A3,False,+34607021862
id_104,2024-01-08 10:37:00,posventa,chat,789,0,62,A1,False,+34649875088
id_105,2024-01-01 14:01:00,ventas,chat,778,31,26,A5,False,+34611630982
id_106,2024-01-19 15:41:00,ventas,voz,657,36,33,A5,False,+34609496563
id_107,2024-01-30 14:26:00,soporte,email,502,38,23,A3,False,+34609803005
id_108,2024-01-04 13:01:00,soporte,chat,436,39,45,A1,False,+34637612325
id_109,2024-01-13 11:44:00,soporte,chat,546,10,33,A3,False,+34615043403
id_110,2024-01-13 09:26:00,soporte,chat,675,57,55,A5,False,+34607726890
id_111,2024-01-27 12:19:00,retenciones,email,244,59,49,A5,False,+34660628583
id_112,2024-01-30 09:24:00,ventas,email,588,47,25,A5,False,+34636346859
id_113,2024-01-04 11:04:00,retenciones,email,643,38,43,A1,False,+34676796917
id_114,2024-01-19 15:40:00,soporte,chat,372,28,51,A1,False,+34669111188
id_115,2024-01-26 11:53:00,ventas,email,505,49,24,A5,False,+34618492846
id_116,2024-01-09 12:08:00,soporte,chat,454,42,30,A3,False,+34688121122
id_117,2024-01-20 16:25:00,soporte,email,554,42,59,A3,False,+34625146282
id_118,2024-01-27 19:58:00,soporte,email,436,25,35,A3,False,+34654440645
id_119,2024-01-21 15:32:00,posventa,chat,816,0,24,A1,False,+34635966581
id_120,2024-01-22 19:39:00,ventas,email,703,81,40,A4,True,+34688213938
id_121,2024-01-27 15:18:00,retenciones,voz,510,0,18,A1,False,+34613781009
id_122,2024-01-01 10:46:00,retenciones,voz,893,78,69,A3,False,+34665954738
id_123,2024-01-04 08:07:00,soporte,email,318,14,23,A4,True,+34699831174
id_124,2024-01-29 15:00:00,posventa,email,950,0,45,A1,False,+34623656190
id_125,2024-01-29 15:53:00,ventas,voz,762,0,42,A2,False,+34685808215
id_126,2024-01-14 15:45:00,ventas,chat,795,22,57,A5,False,+34675094484
id_127,2024-01-14 14:47:00,soporte,chat,646,15,50,A2,False,+34606202258
id_128,2024-01-04 19:17:00,ventas,chat,693,5,27,A3,False,+34612790902
id_129,2024-01-12 11:04:00,ventas,chat,837,16,54,A2,False,+34624899065
id_130,2024-01-22 19:23:00,soporte,email,527,33,25,A1,False,+34609944790
id_131,2024-01-17 09:50:00,retenciones,email,940,31,28,A4,False,+34686131989
id_132,2024-01-11 11:25:00,soporte,voz,924,4,41,A2,False,+34678987338
id_133,2024-01-06 09:20:00,soporte,chat,598,57,37,A1,False,+34606238795
id_134,2024-01-23 12:41:00,soporte,email,464,21,30,A3,False,+34657701082
id_135,2024-01-08 09:11:00,posventa,email,580,75,57,A2,False,+34689813693
id_136,2024-01-26 09:59:00,retenciones,voz,651,32,36,A1,True,+34631970599
id_137,2024-01-11 11:48:00,posventa,voz,749,60,38,A4,False,+34642955157
id_138,2024-01-05 15:32:00,soporte,voz,711,35,14,A4,False,+34686654442
id_139,2024-01-17 18:44:00,retenciones,chat,674,9,8,A2,False,+34628104320
id_140,2024-01-25 18:39:00,soporte,voz,529,0,33,A2,False,+34678021860
id_141,2024-01-12 19:50:00,posventa,chat,724,0,29,A3,False,+34650760636
id_142,2024-01-17 17:56:00,ventas,chat,550,3,36,A3,False,+34636045138
id_143,2024-01-08 12:16:00,posventa,email,857,51,33,A5,False,+34610563214
id_144,2024-01-27 17:40:00,retenciones,voz,726,38,43,A1,False,+34623387092
id_145,2024-01-22 17:06:00,retenciones,voz,689,25,56,A5,False,+34628348817
id_146,2024-01-27 17:38:00,retenciones,voz,583,31,33,A1,False,+34652879148
id_147,2024-01-02 10:36:00,posventa,chat,94,55,61,A3,False,+34630715395
id_148,2024-01-29 13:24:00,posventa,email,219,32,65,A5,False,+34607152747
id_149,2024-01-30 09:54:00,ventas,chat,651,29,49,A5,False,+34640739629
id_150,2024-01-20 08:28:00,soporte,chat,565,29,31,A1,False,+34693144811
id_151,2024-01-15 16:09:00,posventa,voz,546,16,66,A5,True,+34646695565
id_152,2024-01-24 09:03:00,soporte,chat,633,43,64,A4,False,+34617562548
id_153,2024-01-14 16:14:00,ventas,email,910,10,54,A3,False,+34684445004
id_154,2024-01-02 16:06:00,retenciones,email,557,33,47,A1,False,+34654496748
id_155,2024-01-14 17:42:00,retenciones,email,496,18,48,A3,False,+34620521013
id_156,2024-01-15 14:48:00,posventa,chat,475,80,47,A4,False,+34643951994
id_157,2024-01-10 10:49:00,retenciones,email,633,29,38,A2,False,+34624586222
id_158,2024-01-25 16:03:00,soporte,chat,789,13,42,A4,False,+34667001666
id_159,2024-01-27 19:28:00,soporte,email,657,36,49,A5,False,+34609462743
id_160,2024-01-28 13:07:00,retenciones,chat,1002,25,41,A5,False,+34606155579
id_161,2024-01-16 19:04:00,ventas,chat,608,50,42,A3,False,+34653811239
id_162,2024-01-27 08:05:00,soporte,chat,772,52,40,A5,False,+34604684346
id_163,2024-01-27 16:12:00,retenciones,chat,700,47,55,A4,False,+34610115078
id_164,2024-01-05 18:44:00,posventa,email,906,26,42,A2,False,+34610528294
id_165,2024-01-18 11:01:00,posventa,email,605,55,42,A2,False,+34642106078
id_166,2024-01-02 19:23:00,ventas,chat,609,25,42,A5,False,+34679146438
id_167,2024-01-10 16:31:00,retenciones,voz,529,52,48,A2,False,+34675176851
id_168,2024-01-04 09:03:00,retenciones,voz,459,51,24,A2,True,+34684483977
id_169,2024-01-22 08:21:00,soporte,voz,503,32,45,A1,True,+34695019914
id_170,2024-01-01 13:46:00,soporte,chat,494,61,39,A5,False,+34636089369
id_171,2024-01-02 09:28:00,ventas,chat,617,53,31,A4,False,+34698023086
id_172,2024-01-14 11:21:00,soporte,email,775,38,43,A4,False,+34697042181
id_173,2024-01-19 16:04:00,posventa,chat,590,34,36,A2,False,+34601074961
id_174,2024-01-15 19:15:00,soporte,email,670,5,42,A1,False,+34689858638
id_175,2024-01-27 09:51:00,ventas,chat,702,24,64,A2,False,+34655940773
id_176,2024-01-16 16:59:00,soporte,email,900,32,29,A5,False,+34670047063
id_177,2024-01-08 18:12:00,posventa,voz,576,6,25,A5,False,+34613476005
id_178,2024-01-11 16:32:00,soporte,voz,923,48,52,A4,False,+34638836811
id_179,2024-01-25 13:21:00,soporte,chat,478,7,40,A5,False,+34685936029
id_180,2024-01-01 11:25:00,retenciones,chat,443,9,35,A5,False,+34608439469
id_181,2024-01-26 09:14:00,posventa,email,501,21,44,A4,False,+34601443717
id_182,2024-01-09 13:08:00,soporte,email,440,31,30,A4,False,+34642307399
id_183,2024-01-18 19:19:00,posventa,chat,809,19,59,A2,False,+34679790594
id_184,2024-01-09 19:41:00,retenciones,email,639,63,33,A4,False,+34614150540
id_185,2024-01-25 10:57:00,soporte,chat,529,0,48,A4,False,+34653307679
id_186,2024-01-19 19:17:00,ventas,email,675,40,10,A3,False,+34681718171
id_187,2024-01-10 10:34:00,soporte,chat,517,1,47,A3,False,+34699989204
id_188,2024-01-26 15:19:00,retenciones,email,516,57,51,A1,False,+34620808635
id_189,2024-01-24 09:48:00,soporte,voz,1118,38,38,A2,False,+34617066318
id_190,2024-01-02 11:05:00,posventa,email,525,12,19,A2,False,+34628175911
id_191,2024-01-21 08:34:00,soporte,voz,504,57,64,A4,False,+34654181889
id_192,2024-01-23 12:04:00,posventa,chat,855,27,28,A5,False,+34633523310
id_193,2024-01-14 15:38:00,posventa,chat,829,0,34,A1,False,+34634932801
id_194,2024-01-03 12:04:00,soporte,chat,376,52,29,A4,False,+34604600108
id_195,2024-01-23 18:09:00,ventas,email,180,35,36,A4,False,+34647602635
id_196,2024-01-01 16:53:00,posventa,voz,846,46,58,A3,False,+34601805808
id_197,2024-01-24 19:55:00,retenciones,chat,806,34,36,A4,False,+34653175588
id_198,2024-01-20 17:28:00,soporte,chat,560,5,49,A2,False,+34615702852
id_199,2024-01-01 08:50:00,retenciones,chat,783,36,54,A4,False,+34645587883
id_200,2024-01-06 11:22:00,ventas,chat,30,11,49,A3,False,+34604990961
id_201,2024-01-21 08:54:00,posventa,email,475,68,37,A2,False,+34642439798
id_202,2024-01-26 18:09:00,posventa,voz,643,33,42,A5,False,+34683149786
id_203,2024-01-08 16:45:00,ventas,chat,636,45,52,A5,False,+34613045697
id_204,2024-01-18 13:08:00,ventas,voz,963,23,43,A4,False,+34665969098
id_205,2024-01-04 09:37:00,soporte,chat,837,5,48,A2,False,+34622910282
id_206,2024-01-01 15:53:00,ventas,chat,740,3,57,A4,False,+34669070841
id_207,2024-01-07 12:18:00,retenciones,voz,401,0,30,A4,False,+34645938649
id_208,2024-01-11 10:07:00,retenciones,chat,335,51,63,A4,False,+34620554754
id_209,2024-01-21 17:07:00,retenciones,chat,100,75,19,A3,False,+34610104107
id_210,2024-01-04 18:47:00,ventas,chat,270,62,44,A1,False,+34691199914
id_211,2024-01-13 12:22:00,ventas,chat,783,26,22,A2,False,+34644810380
id_212,2024-01-22 10:33:00,ventas,email,906,37,23,A1,False,+34659468269
id_213,2024-01-27 19:34:00,ventas,voz,434,33,29,A2,False,+34645844569
id_214,2024-01-25 18:06:00,ventas,email,911,10,48,A2,False,+34692540486
id_215,2024-01-24 08:41:00,soporte,voz,435,26,33,A4,False,+34679690286
id_216,2024-01-27 14:21:00,ventas,email,830,30,40,A2,False,+34692796686
id_217,2024-01-10 15:57:00,posventa,email,747,24,44,A3,False,+34689380419
id_218,2024-01-18 15:18:00,retenciones,voz,901,38,53,A5,False,+34671537554
id_219,2024-01-04 17:32:00,ventas,voz,371,24,47,A3,False,+34617644180
id_220,2024-01-17 13:47:00,ventas,email,527,8,28,A1,False,+34655666186
id_221,2024-01-10 16:13:00,retenciones,email,490,33,33,A4,False,+34684143761
id_222,2024-01-03 17:53:00,posventa,email,461,64,33,A2,True,+34614578363
id_223,2024-01-14 10:03:00,ventas,email,713,62,34,A2,False,+34682424160
id_224,2024-01-04 10:08:00,ventas,email,559,7,29,A3,False,+34629737667
id_225,2024-01-13 08:59:00,ventas,email,646,0,44,A1,False,+34650825596
id_226,2024-01-26 10:21:00,retenciones,email,766,43,69,A4,False,+34690493043
id_227,2024-01-08 13:43:00,retenciones,voz,862,43,35,A5,False,+34639970870
id_228,2024-01-16 19:16:00,retenciones,voz,362,0,32,A4,False,+34623255666
id_229,2024-01-08 13:04:00,posventa,voz,773,45,51,A4,False,+34630267797
id_230,2024-01-18 15:38:00,retenciones,email,368,35,55,A4,False,+34613116915
id_231,2024-01-02 11:32:00,soporte,chat,463,6,16,A2,False,+34641765312
id_232,2024-01-11 10:51:00,retenciones,email,361,33,38,A5,False,+34623683333
id_233,2024-01-03 13:42:00,posventa,chat,937,67,40,A4,False,+34636432549
id_234,2024-01-18 10:29:00,retenciones,chat,106,41,48,A2,False,+34679110216
id_235,2024-01-15 12:34:00,ventas,chat,707,12,40,A4,False,+34642866200
id_236,2024-01-02 16:53:00,soporte,chat,598,48,16,A5,False,+34699907919
id_237,2024-01-22 11:02:00,posventa,chat,440,37,54,A1,False,+34675013292
id_238,2024-01-28 19:31:00,posventa,chat,30,34,25,A2,False,+34604746771
id_239,2024-01-18 19:05:00,posventa,voz,268,55,57,A3,False,+34668082045
id_240,2024-01-11 09:30:00,retenciones,chat,196,18,33,A3,False,+34694597309
id_241,2024-01-14 10:06:00,retenciones,email,522,33,42,A1,False,+34692210534
id_242,2024-01-28 11:28:00,soporte,voz,600,39,74,A2,False,+34624525886
id_243,2024-01-05 11:34:00,posventa,chat,365,0,48,A5,False,+34647378941
id_244,2024-01-23 09:26:00,soporte,email,751,57,34,A4,False,+34652010809
id_245,2024-01-24 14:04:00,posventa,chat,401,29,10,A1,False,+34618608310
id_246,2024-01-21 17:03:00,ventas,chat,1012,22,48,A2,False,+34603815144
id_247,2024-01-29 11:28:00,posventa,email,894,25,29,A2,False,+34600442939
id_248,2024-01-16 08:09:00,retenciones,email,807,28,42,A5,False,+34654254875
id_249,2024-01-11 14:33:00,retenciones,chat,410,0,45,A5,False,+34632038060
id_250,2024-01-19 12:31:00,retenciones,chat,548,29,43,A5,True,+34629084871
id_251,2024-01-25 14:42:00,retenciones,chat,818,41,5,A4,False,+34698090211
id_252,2024-01-11 11:14:00,retenciones,chat,637,8,13,A3,False,+34677457397
id_253,2024-01-08 17:37:00,soporte,voz,605,13,42,A2,False,+34631099208
id_254,2024-01-02 09:02:00,retenciones,voz,649,35,26,A5,False,+34681193128
id_255,2024-01-25 17:54:00,soporte,voz,471,48,40,A2,False,+34689198479
id_256,2024-01-28 09:10:00,posventa,chat,653,13,43,A5,False,+34680925517
id_257,2024-01-28 17:24:00,retenciones,voz,497,14,43,A2,False,+34654610032
id_258,2024-01-24 12:34:00,retenciones,voz,702,5,57,A3,False,+34636213515
id_259,2024-01-09 09:20:00,soporte,chat,550,62,47,A1,False,+34697101535
id_260,2024-01-11 13:21:00,soporte,chat,746,37,30,A1,False,+34684370894
id_261,2024-01-19 14:23:00,ventas,email,405,0,52,A3,False,+34652315765
id_262,2024-01-19 14:28:00,soporte,email,770,33,27,A4,False,+34616413806
id_263,2024-01-08 17:57:00,ventas,voz,558,12,31,A5,False,+34661509503
id_264,2024-01-14 14:26:00,retenciones,chat,717,19,23,A4,False,+34698683379
id_265,2024-01-04 13:41:00,posventa,chat,443,42,38,A2,False,+34606739013
id_266,2024-01-24 10:36:00,ventas,chat,683,24,25,A4,False,+34648085527
id_267,2024-01-22 10:25:00,ventas,voz,316,0,17,A4,False,+34652496899
id_268,2024-01-29 10:23:00,posventa,voz,852,25,35,A5,False,+34692573559
id_269,2024-01-30 15:33:00,ventas,voz,921,61,25,A2,False,+34615663645
id_270,2024-01-26 13:52:00,retenciones,voz,677,31,62,A2,False,+34696432867
id_271,2024-01-30 14:48:00,ventas,email,431,27,47,A4,False,+34663848248
id_272,2024-01-28 13:44:00,soporte,email,326,39,23,A4,False,+34694499886
id_273,2024-01-27 13:46:00,posventa,chat,525,51,68,A3,False,+34679394364
id_274,2024-01-10 09:02:00,posventa,chat,908,19,51,A5,False,+34675057004
id_275,2024-01-19 12:18:00,ventas,email,506,0,47,A1,False,+34661069572
id_276,2024-01-04 13:25:00,soporte,email,493,34,34,A2,False,+34646206264
id_277,2024-01-04 13:40:00,retenciones,email,670,8,45,A1,False,+34682096675
id_278,2024-01-21 15:43:00,soporte,voz,485,10,25,A2,False,+34626133385
id_279,2024-01-16 13:30:00,ventas,voz,898,24,39,A1,True,+34600658003
id_280,2024-01-18 17:42:00,posventa,chat,450,32,23,A5,False,+34615433222
id_281,2024-01-06 09:31:00,posventa,chat,649,31,50,A1,True,+34653873131
id_282,2024-01-24 16:36:00,soporte,chat,619,7,48,A3,False,+34613981528
id_283,2024-01-21 19:56:00,posventa,voz,478,62,43,A2,False,+34650538135
id_284,2024-01-29 09:27:00,retenciones,email,481,24,42,A5,False,+34652777488
id_285,2024-01-02 13:45:00,soporte,chat,385,0,46,A1,False,+34623689071
id_286,2024-01-19 14:21:00,soporte,email,780,48,29,A2,False,+34652499002
id_287,2024-01-10 10:50:00,retenciones,voz,474,42,29,A1,False,+34628997485
id_288,2024-01-20 13:14:00,ventas,voz,497,36,36,A3,False,+34623593741
id_289,2024-01-27 16:39:00,retenciones,chat,776,28,37,A1,False,+34602276787
id_290,2024-01-23 16:58:00,posventa,email,1238,56,31,A3,False,+34669863927
id_291,2024-01-12 17:07:00,posventa,chat,783,16,68,A5,False,+34690067502
id_292,2024-01-15 15:17:00,posventa,chat,816,39,27,A1,False,+34618303750
id_293,2024-01-16 10:44:00,ventas,chat,546,39,31,A3,False,+34633833647
id_294,2024-01-11 12:03:00,retenciones,voz,496,12,57,A1,False,+34671335020
id_295,2024-01-23 12:20:00,soporte,email,415,53,27,A5,False,+34602592536
id_296,2024-01-20 09:25:00,ventas,email,672,33,34,A3,False,+34661963740
id_297,2024-01-09 11:37:00,ventas,voz,961,37,35,A4,False,+34693480811
id_298,2024-01-09 12:23:00,posventa,chat,208,55,39,A2,False,+34675211737
id_299,2024-01-16 12:27:00,posventa,email,486,21,30,A4,False,+34663349631
id_300,2024-01-22 08:04:00,ventas,chat,194,38,45,A3,False,+34605432019
1 interaction_id datetime_start queue_skill channel duration_talk hold_time wrap_up_time agent_id transfer_flag caller_id
2 id_1 2024-01-07 11:28:00 ventas voz 708 17 22 A3 False +34693410762
3 id_2 2024-01-24 12:35:00 soporte voz 1028 37 26 A2 True +34613953367
4 id_3 2024-01-12 13:01:00 ventas email 507 20 43 A5 False +34642860080
5 id_4 2024-01-27 18:41:00 ventas email 217 24 37 A4 False +34632049003
6 id_5 2024-01-23 11:56:00 ventas voz 624 19 30 A1 False +34695672411
7 id_6 2024-01-15 19:06:00 soporte voz 789 52 45 A5 False +34668979792
8 id_7 2024-01-04 09:39:00 ventas email 510 60 44 A2 True +34652631083
9 id_8 2024-01-02 17:35:00 posventa voz 321 44 42 A4 False +34636433622
10 id_9 2024-01-28 16:39:00 retenciones voz 694 43 75 A2 False +34657055419
11 id_10 2024-01-28 16:28:00 posventa chat 814 41 53 A3 False +34691355424
12 id_11 2024-01-27 12:41:00 soporte voz 432 23 44 A3 False +34604545583
13 id_12 2024-01-23 14:23:00 ventas voz 795 49 65 A4 False +34614881728
14 id_13 2024-01-03 12:46:00 ventas chat 794 45 62 A3 False +34697636744
15 id_14 2024-01-15 17:41:00 retenciones voz 667 2 35 A4 False +34628433648
16 id_15 2024-01-20 11:29:00 ventas chat 659 9 18 A1 False +34621970758
17 id_16 2024-01-27 10:21:00 retenciones email 638 35 53 A5 False +34650441204
18 id_17 2024-01-06 19:27:00 retenciones email 517 2 34 A2 False +34653892568
19 id_18 2024-01-07 08:00:00 ventas voz 750 22 18 A2 False +34672931048
20 id_19 2024-01-03 14:05:00 retenciones voz 68 36 34 A2 False +34623234510
21 id_20 2024-01-27 13:31:00 ventas chat 542 67 42 A3 False +34613022704
22 id_21 2024-01-26 11:11:00 posventa email 596 0 23 A3 True +34667922032
23 id_22 2024-01-02 09:27:00 soporte chat 401 26 44 A3 False +34688917675
24 id_23 2024-01-26 13:31:00 soporte email 447 33 20 A3 False +34606659908
25 id_24 2024-01-20 09:05:00 ventas email 466 54 34 A2 False +34635562619
26 id_25 2024-01-27 13:15:00 soporte voz 619 19 16 A4 False +34677809459
27 id_26 2024-01-09 08:39:00 posventa chat 613 42 37 A5 False +34670721464
28 id_27 2024-01-25 09:22:00 soporte email 974 37 30 A3 False +34671450611
29 id_28 2024-01-28 08:01:00 ventas voz 495 50 42 A1 False +34623448674
30 id_29 2024-01-19 10:19:00 retenciones chat 650 36 29 A3 False +34654710375
31 id_30 2024-01-20 10:47:00 ventas voz 646 35 29 A5 True +34619576703
32 id_31 2024-01-14 09:01:00 retenciones voz 809 56 51 A4 False +34655403796
33 id_32 2024-01-16 11:55:00 posventa email 409 49 46 A4 False +34624947744
34 id_33 2024-01-16 19:58:00 soporte chat 326 14 53 A2 False +34658245345
35 id_34 2024-01-21 08:27:00 soporte email 552 47 45 A5 False +34640820227
36 id_35 2024-01-03 08:16:00 retenciones email 597 33 49 A5 False +34666880548
37 id_36 2024-01-24 08:45:00 posventa email 530 20 51 A4 False +34631725526
38 id_37 2024-01-01 10:17:00 retenciones voz 742 31 49 A2 False +34691299103
39 id_38 2024-01-15 13:22:00 posventa voz 952 31 22 A1 False +34694569232
40 id_39 2024-01-08 08:08:00 ventas voz 408 57 53 A2 False +34676294551
41 id_40 2024-01-13 19:57:00 posventa email 479 18 38 A1 False +34602503771
42 id_41 2024-01-02 09:31:00 posventa chat 502 31 74 A5 False +34671531065
43 id_42 2024-01-22 08:51:00 posventa email 226 0 46 A3 False +34692526139
44 id_43 2024-01-12 19:04:00 ventas email 842 26 34 A1 False +34657351079
45 id_44 2024-01-20 09:59:00 retenciones email 341 3 10 A3 False +34603695961
46 id_45 2024-01-05 17:52:00 ventas chat 572 14 34 A4 False +34620840174
47 id_46 2024-01-02 13:47:00 soporte chat 631 35 73 A1 False +34677183765
48 id_47 2024-01-29 14:02:00 retenciones email 453 4 36 A2 False +34698208175
49 id_48 2024-01-21 14:35:00 ventas email 974 24 21 A3 False +34694919177
50 id_49 2024-01-22 12:35:00 soporte voz 574 20 40 A3 False +34610495300
51 id_50 2024-01-13 11:15:00 soporte email 1069 33 30 A5 True +34699967871
52 id_51 2024-01-27 11:23:00 ventas email 749 66 43 A3 False +34604035851
53 id_52 2024-01-03 08:32:00 posventa voz 545 7 48 A1 False +34630185054
54 id_53 2024-01-14 09:50:00 retenciones chat 291 52 22 A2 False +34608454561
55 id_54 2024-01-19 16:06:00 ventas voz 914 37 29 A5 False +34610617244
56 id_55 2024-01-24 11:24:00 ventas voz 474 47 48 A4 False +34693437616
57 id_56 2024-01-03 11:17:00 ventas email 457 39 17 A2 False +34662976036
58 id_57 2024-01-12 08:54:00 soporte email 765 46 59 A4 False +34688146618
59 id_58 2024-01-19 08:35:00 soporte chat 604 24 30 A5 False +34656294783
60 id_59 2024-01-20 10:57:00 posventa voz 436 71 24 A5 False +34610198499
61 id_60 2024-01-21 14:15:00 soporte email 357 16 39 A3 False +34617310852
62 id_61 2024-01-03 14:28:00 posventa email 434 23 46 A3 False +34631665404
63 id_62 2024-01-06 14:45:00 posventa email 487 21 43 A4 False +34680497273
64 id_63 2024-01-02 12:28:00 ventas voz 310 1 29 A2 False +34675524262
65 id_64 2024-01-27 17:25:00 ventas chat 557 15 11 A1 False +34638538877
66 id_65 2024-01-26 11:27:00 soporte email 729 40 52 A2 False +34638503931
67 id_66 2024-01-17 16:55:00 ventas voz 826 0 57 A1 False +34639301804
68 id_67 2024-01-13 12:15:00 soporte voz 644 30 41 A1 False +34699204497
69 id_68 2024-01-15 16:48:00 retenciones voz 445 21 67 A5 False +34693691765
70 id_69 2024-01-03 14:56:00 soporte chat 571 17 35 A4 False +34693837987
71 id_70 2024-01-26 15:57:00 soporte email 452 14 26 A2 False +34642734307
72 id_71 2024-01-27 13:16:00 posventa voz 470 0 17 A4 False +34658842658
73 id_72 2024-01-29 13:17:00 posventa voz 735 63 14 A1 False +34686966281
74 id_73 2024-01-24 09:58:00 ventas email 835 20 14 A4 False +34628267184
75 id_74 2024-01-13 08:33:00 retenciones chat 870 36 68 A4 False +34629702914
76 id_75 2024-01-21 14:36:00 posventa email 784 46 19 A1 False +34606195200
77 id_76 2024-01-19 11:00:00 ventas voz 472 51 63 A4 False +34685072967
78 id_77 2024-01-07 17:57:00 retenciones voz 910 32 57 A2 False +34607102173
79 id_78 2024-01-27 16:16:00 soporte voz 613 42 60 A5 False +34648840101
80 id_79 2024-01-28 09:37:00 posventa voz 922 55 26 A4 False +34669562616
81 id_80 2024-01-06 08:23:00 soporte chat 623 24 48 A4 False +34643558992
82 id_81 2024-01-05 11:09:00 soporte voz 597 45 35 A4 False +34615734209
83 id_82 2024-01-13 18:42:00 ventas voz 267 27 38 A5 False +34613081782
84 id_83 2024-01-16 18:53:00 ventas voz 418 41 28 A2 False +34665438362
85 id_84 2024-01-29 09:57:00 soporte chat 934 42 32 A4 False +34616618153
86 id_85 2024-01-29 13:20:00 posventa voz 936 77 51 A4 False +34675589337
87 id_86 2024-01-13 18:08:00 ventas voz 542 29 26 A4 False +34650066487
88 id_87 2024-01-30 18:47:00 ventas chat 577 25 49 A3 False +34693842126
89 id_88 2024-01-15 15:21:00 posventa chat 751 45 28 A4 False +34607585153
90 id_89 2024-01-13 17:13:00 posventa voz 773 39 34 A2 False +34647756479
91 id_90 2024-01-25 14:36:00 retenciones voz 780 35 20 A1 False +34664413145
92 id_91 2024-01-30 19:24:00 ventas email 643 48 55 A3 False +34693198563
93 id_92 2024-01-15 13:33:00 ventas voz 730 71 60 A5 False +34616203305
94 id_93 2024-01-09 12:05:00 posventa email 645 46 39 A5 False +34679357216
95 id_94 2024-01-21 13:20:00 soporte voz 272 20 30 A5 False +34616514877
96 id_95 2024-01-30 15:54:00 ventas voz 759 32 66 A1 False +34616263882
97 id_96 2024-01-08 17:50:00 ventas email 585 21 47 A2 False +34682405138
98 id_97 2024-01-20 08:19:00 posventa voz 508 23 17 A5 False +34653215075
99 id_98 2024-01-13 18:02:00 soporte email 759 27 33 A5 False +34603757974
100 id_99 2024-01-10 19:01:00 ventas email 801 18 52 A1 False +34608112074
101 id_100 2024-01-15 15:37:00 posventa email 374 0 24 A5 False +34677822269
102 id_101 2024-01-28 19:49:00 retenciones chat 674 17 41 A2 False +34601135964
103 id_102 2024-01-08 18:40:00 retenciones voz 568 45 49 A3 False +34608910852
104 id_103 2024-01-19 18:13:00 posventa voz 158 37 35 A3 False +34607021862
105 id_104 2024-01-08 10:37:00 posventa chat 789 0 62 A1 False +34649875088
106 id_105 2024-01-01 14:01:00 ventas chat 778 31 26 A5 False +34611630982
107 id_106 2024-01-19 15:41:00 ventas voz 657 36 33 A5 False +34609496563
108 id_107 2024-01-30 14:26:00 soporte email 502 38 23 A3 False +34609803005
109 id_108 2024-01-04 13:01:00 soporte chat 436 39 45 A1 False +34637612325
110 id_109 2024-01-13 11:44:00 soporte chat 546 10 33 A3 False +34615043403
111 id_110 2024-01-13 09:26:00 soporte chat 675 57 55 A5 False +34607726890
112 id_111 2024-01-27 12:19:00 retenciones email 244 59 49 A5 False +34660628583
113 id_112 2024-01-30 09:24:00 ventas email 588 47 25 A5 False +34636346859
114 id_113 2024-01-04 11:04:00 retenciones email 643 38 43 A1 False +34676796917
115 id_114 2024-01-19 15:40:00 soporte chat 372 28 51 A1 False +34669111188
116 id_115 2024-01-26 11:53:00 ventas email 505 49 24 A5 False +34618492846
117 id_116 2024-01-09 12:08:00 soporte chat 454 42 30 A3 False +34688121122
118 id_117 2024-01-20 16:25:00 soporte email 554 42 59 A3 False +34625146282
119 id_118 2024-01-27 19:58:00 soporte email 436 25 35 A3 False +34654440645
120 id_119 2024-01-21 15:32:00 posventa chat 816 0 24 A1 False +34635966581
121 id_120 2024-01-22 19:39:00 ventas email 703 81 40 A4 True +34688213938
122 id_121 2024-01-27 15:18:00 retenciones voz 510 0 18 A1 False +34613781009
123 id_122 2024-01-01 10:46:00 retenciones voz 893 78 69 A3 False +34665954738
124 id_123 2024-01-04 08:07:00 soporte email 318 14 23 A4 True +34699831174
125 id_124 2024-01-29 15:00:00 posventa email 950 0 45 A1 False +34623656190
126 id_125 2024-01-29 15:53:00 ventas voz 762 0 42 A2 False +34685808215
127 id_126 2024-01-14 15:45:00 ventas chat 795 22 57 A5 False +34675094484
128 id_127 2024-01-14 14:47:00 soporte chat 646 15 50 A2 False +34606202258
129 id_128 2024-01-04 19:17:00 ventas chat 693 5 27 A3 False +34612790902
130 id_129 2024-01-12 11:04:00 ventas chat 837 16 54 A2 False +34624899065
131 id_130 2024-01-22 19:23:00 soporte email 527 33 25 A1 False +34609944790
132 id_131 2024-01-17 09:50:00 retenciones email 940 31 28 A4 False +34686131989
133 id_132 2024-01-11 11:25:00 soporte voz 924 4 41 A2 False +34678987338
134 id_133 2024-01-06 09:20:00 soporte chat 598 57 37 A1 False +34606238795
135 id_134 2024-01-23 12:41:00 soporte email 464 21 30 A3 False +34657701082
136 id_135 2024-01-08 09:11:00 posventa email 580 75 57 A2 False +34689813693
137 id_136 2024-01-26 09:59:00 retenciones voz 651 32 36 A1 True +34631970599
138 id_137 2024-01-11 11:48:00 posventa voz 749 60 38 A4 False +34642955157
139 id_138 2024-01-05 15:32:00 soporte voz 711 35 14 A4 False +34686654442
140 id_139 2024-01-17 18:44:00 retenciones chat 674 9 8 A2 False +34628104320
141 id_140 2024-01-25 18:39:00 soporte voz 529 0 33 A2 False +34678021860
142 id_141 2024-01-12 19:50:00 posventa chat 724 0 29 A3 False +34650760636
143 id_142 2024-01-17 17:56:00 ventas chat 550 3 36 A3 False +34636045138
144 id_143 2024-01-08 12:16:00 posventa email 857 51 33 A5 False +34610563214
145 id_144 2024-01-27 17:40:00 retenciones voz 726 38 43 A1 False +34623387092
146 id_145 2024-01-22 17:06:00 retenciones voz 689 25 56 A5 False +34628348817
147 id_146 2024-01-27 17:38:00 retenciones voz 583 31 33 A1 False +34652879148
148 id_147 2024-01-02 10:36:00 posventa chat 94 55 61 A3 False +34630715395
149 id_148 2024-01-29 13:24:00 posventa email 219 32 65 A5 False +34607152747
150 id_149 2024-01-30 09:54:00 ventas chat 651 29 49 A5 False +34640739629
151 id_150 2024-01-20 08:28:00 soporte chat 565 29 31 A1 False +34693144811
152 id_151 2024-01-15 16:09:00 posventa voz 546 16 66 A5 True +34646695565
153 id_152 2024-01-24 09:03:00 soporte chat 633 43 64 A4 False +34617562548
154 id_153 2024-01-14 16:14:00 ventas email 910 10 54 A3 False +34684445004
155 id_154 2024-01-02 16:06:00 retenciones email 557 33 47 A1 False +34654496748
156 id_155 2024-01-14 17:42:00 retenciones email 496 18 48 A3 False +34620521013
157 id_156 2024-01-15 14:48:00 posventa chat 475 80 47 A4 False +34643951994
158 id_157 2024-01-10 10:49:00 retenciones email 633 29 38 A2 False +34624586222
159 id_158 2024-01-25 16:03:00 soporte chat 789 13 42 A4 False +34667001666
160 id_159 2024-01-27 19:28:00 soporte email 657 36 49 A5 False +34609462743
161 id_160 2024-01-28 13:07:00 retenciones chat 1002 25 41 A5 False +34606155579
162 id_161 2024-01-16 19:04:00 ventas chat 608 50 42 A3 False +34653811239
163 id_162 2024-01-27 08:05:00 soporte chat 772 52 40 A5 False +34604684346
164 id_163 2024-01-27 16:12:00 retenciones chat 700 47 55 A4 False +34610115078
165 id_164 2024-01-05 18:44:00 posventa email 906 26 42 A2 False +34610528294
166 id_165 2024-01-18 11:01:00 posventa email 605 55 42 A2 False +34642106078
167 id_166 2024-01-02 19:23:00 ventas chat 609 25 42 A5 False +34679146438
168 id_167 2024-01-10 16:31:00 retenciones voz 529 52 48 A2 False +34675176851
169 id_168 2024-01-04 09:03:00 retenciones voz 459 51 24 A2 True +34684483977
170 id_169 2024-01-22 08:21:00 soporte voz 503 32 45 A1 True +34695019914
171 id_170 2024-01-01 13:46:00 soporte chat 494 61 39 A5 False +34636089369
172 id_171 2024-01-02 09:28:00 ventas chat 617 53 31 A4 False +34698023086
173 id_172 2024-01-14 11:21:00 soporte email 775 38 43 A4 False +34697042181
174 id_173 2024-01-19 16:04:00 posventa chat 590 34 36 A2 False +34601074961
175 id_174 2024-01-15 19:15:00 soporte email 670 5 42 A1 False +34689858638
176 id_175 2024-01-27 09:51:00 ventas chat 702 24 64 A2 False +34655940773
177 id_176 2024-01-16 16:59:00 soporte email 900 32 29 A5 False +34670047063
178 id_177 2024-01-08 18:12:00 posventa voz 576 6 25 A5 False +34613476005
179 id_178 2024-01-11 16:32:00 soporte voz 923 48 52 A4 False +34638836811
180 id_179 2024-01-25 13:21:00 soporte chat 478 7 40 A5 False +34685936029
181 id_180 2024-01-01 11:25:00 retenciones chat 443 9 35 A5 False +34608439469
182 id_181 2024-01-26 09:14:00 posventa email 501 21 44 A4 False +34601443717
183 id_182 2024-01-09 13:08:00 soporte email 440 31 30 A4 False +34642307399
184 id_183 2024-01-18 19:19:00 posventa chat 809 19 59 A2 False +34679790594
185 id_184 2024-01-09 19:41:00 retenciones email 639 63 33 A4 False +34614150540
186 id_185 2024-01-25 10:57:00 soporte chat 529 0 48 A4 False +34653307679
187 id_186 2024-01-19 19:17:00 ventas email 675 40 10 A3 False +34681718171
188 id_187 2024-01-10 10:34:00 soporte chat 517 1 47 A3 False +34699989204
189 id_188 2024-01-26 15:19:00 retenciones email 516 57 51 A1 False +34620808635
190 id_189 2024-01-24 09:48:00 soporte voz 1118 38 38 A2 False +34617066318
191 id_190 2024-01-02 11:05:00 posventa email 525 12 19 A2 False +34628175911
192 id_191 2024-01-21 08:34:00 soporte voz 504 57 64 A4 False +34654181889
193 id_192 2024-01-23 12:04:00 posventa chat 855 27 28 A5 False +34633523310
194 id_193 2024-01-14 15:38:00 posventa chat 829 0 34 A1 False +34634932801
195 id_194 2024-01-03 12:04:00 soporte chat 376 52 29 A4 False +34604600108
196 id_195 2024-01-23 18:09:00 ventas email 180 35 36 A4 False +34647602635
197 id_196 2024-01-01 16:53:00 posventa voz 846 46 58 A3 False +34601805808
198 id_197 2024-01-24 19:55:00 retenciones chat 806 34 36 A4 False +34653175588
199 id_198 2024-01-20 17:28:00 soporte chat 560 5 49 A2 False +34615702852
200 id_199 2024-01-01 08:50:00 retenciones chat 783 36 54 A4 False +34645587883
201 id_200 2024-01-06 11:22:00 ventas chat 30 11 49 A3 False +34604990961
202 id_201 2024-01-21 08:54:00 posventa email 475 68 37 A2 False +34642439798
203 id_202 2024-01-26 18:09:00 posventa voz 643 33 42 A5 False +34683149786
204 id_203 2024-01-08 16:45:00 ventas chat 636 45 52 A5 False +34613045697
205 id_204 2024-01-18 13:08:00 ventas voz 963 23 43 A4 False +34665969098
206 id_205 2024-01-04 09:37:00 soporte chat 837 5 48 A2 False +34622910282
207 id_206 2024-01-01 15:53:00 ventas chat 740 3 57 A4 False +34669070841
208 id_207 2024-01-07 12:18:00 retenciones voz 401 0 30 A4 False +34645938649
209 id_208 2024-01-11 10:07:00 retenciones chat 335 51 63 A4 False +34620554754
210 id_209 2024-01-21 17:07:00 retenciones chat 100 75 19 A3 False +34610104107
211 id_210 2024-01-04 18:47:00 ventas chat 270 62 44 A1 False +34691199914
212 id_211 2024-01-13 12:22:00 ventas chat 783 26 22 A2 False +34644810380
213 id_212 2024-01-22 10:33:00 ventas email 906 37 23 A1 False +34659468269
214 id_213 2024-01-27 19:34:00 ventas voz 434 33 29 A2 False +34645844569
215 id_214 2024-01-25 18:06:00 ventas email 911 10 48 A2 False +34692540486
216 id_215 2024-01-24 08:41:00 soporte voz 435 26 33 A4 False +34679690286
217 id_216 2024-01-27 14:21:00 ventas email 830 30 40 A2 False +34692796686
218 id_217 2024-01-10 15:57:00 posventa email 747 24 44 A3 False +34689380419
219 id_218 2024-01-18 15:18:00 retenciones voz 901 38 53 A5 False +34671537554
220 id_219 2024-01-04 17:32:00 ventas voz 371 24 47 A3 False +34617644180
221 id_220 2024-01-17 13:47:00 ventas email 527 8 28 A1 False +34655666186
222 id_221 2024-01-10 16:13:00 retenciones email 490 33 33 A4 False +34684143761
223 id_222 2024-01-03 17:53:00 posventa email 461 64 33 A2 True +34614578363
224 id_223 2024-01-14 10:03:00 ventas email 713 62 34 A2 False +34682424160
225 id_224 2024-01-04 10:08:00 ventas email 559 7 29 A3 False +34629737667
226 id_225 2024-01-13 08:59:00 ventas email 646 0 44 A1 False +34650825596
227 id_226 2024-01-26 10:21:00 retenciones email 766 43 69 A4 False +34690493043
228 id_227 2024-01-08 13:43:00 retenciones voz 862 43 35 A5 False +34639970870
229 id_228 2024-01-16 19:16:00 retenciones voz 362 0 32 A4 False +34623255666
230 id_229 2024-01-08 13:04:00 posventa voz 773 45 51 A4 False +34630267797
231 id_230 2024-01-18 15:38:00 retenciones email 368 35 55 A4 False +34613116915
232 id_231 2024-01-02 11:32:00 soporte chat 463 6 16 A2 False +34641765312
233 id_232 2024-01-11 10:51:00 retenciones email 361 33 38 A5 False +34623683333
234 id_233 2024-01-03 13:42:00 posventa chat 937 67 40 A4 False +34636432549
235 id_234 2024-01-18 10:29:00 retenciones chat 106 41 48 A2 False +34679110216
236 id_235 2024-01-15 12:34:00 ventas chat 707 12 40 A4 False +34642866200
237 id_236 2024-01-02 16:53:00 soporte chat 598 48 16 A5 False +34699907919
238 id_237 2024-01-22 11:02:00 posventa chat 440 37 54 A1 False +34675013292
239 id_238 2024-01-28 19:31:00 posventa chat 30 34 25 A2 False +34604746771
240 id_239 2024-01-18 19:05:00 posventa voz 268 55 57 A3 False +34668082045
241 id_240 2024-01-11 09:30:00 retenciones chat 196 18 33 A3 False +34694597309
242 id_241 2024-01-14 10:06:00 retenciones email 522 33 42 A1 False +34692210534
243 id_242 2024-01-28 11:28:00 soporte voz 600 39 74 A2 False +34624525886
244 id_243 2024-01-05 11:34:00 posventa chat 365 0 48 A5 False +34647378941
245 id_244 2024-01-23 09:26:00 soporte email 751 57 34 A4 False +34652010809
246 id_245 2024-01-24 14:04:00 posventa chat 401 29 10 A1 False +34618608310
247 id_246 2024-01-21 17:03:00 ventas chat 1012 22 48 A2 False +34603815144
248 id_247 2024-01-29 11:28:00 posventa email 894 25 29 A2 False +34600442939
249 id_248 2024-01-16 08:09:00 retenciones email 807 28 42 A5 False +34654254875
250 id_249 2024-01-11 14:33:00 retenciones chat 410 0 45 A5 False +34632038060
251 id_250 2024-01-19 12:31:00 retenciones chat 548 29 43 A5 True +34629084871
252 id_251 2024-01-25 14:42:00 retenciones chat 818 41 5 A4 False +34698090211
253 id_252 2024-01-11 11:14:00 retenciones chat 637 8 13 A3 False +34677457397
254 id_253 2024-01-08 17:37:00 soporte voz 605 13 42 A2 False +34631099208
255 id_254 2024-01-02 09:02:00 retenciones voz 649 35 26 A5 False +34681193128
256 id_255 2024-01-25 17:54:00 soporte voz 471 48 40 A2 False +34689198479
257 id_256 2024-01-28 09:10:00 posventa chat 653 13 43 A5 False +34680925517
258 id_257 2024-01-28 17:24:00 retenciones voz 497 14 43 A2 False +34654610032
259 id_258 2024-01-24 12:34:00 retenciones voz 702 5 57 A3 False +34636213515
260 id_259 2024-01-09 09:20:00 soporte chat 550 62 47 A1 False +34697101535
261 id_260 2024-01-11 13:21:00 soporte chat 746 37 30 A1 False +34684370894
262 id_261 2024-01-19 14:23:00 ventas email 405 0 52 A3 False +34652315765
263 id_262 2024-01-19 14:28:00 soporte email 770 33 27 A4 False +34616413806
264 id_263 2024-01-08 17:57:00 ventas voz 558 12 31 A5 False +34661509503
265 id_264 2024-01-14 14:26:00 retenciones chat 717 19 23 A4 False +34698683379
266 id_265 2024-01-04 13:41:00 posventa chat 443 42 38 A2 False +34606739013
267 id_266 2024-01-24 10:36:00 ventas chat 683 24 25 A4 False +34648085527
268 id_267 2024-01-22 10:25:00 ventas voz 316 0 17 A4 False +34652496899
269 id_268 2024-01-29 10:23:00 posventa voz 852 25 35 A5 False +34692573559
270 id_269 2024-01-30 15:33:00 ventas voz 921 61 25 A2 False +34615663645
271 id_270 2024-01-26 13:52:00 retenciones voz 677 31 62 A2 False +34696432867
272 id_271 2024-01-30 14:48:00 ventas email 431 27 47 A4 False +34663848248
273 id_272 2024-01-28 13:44:00 soporte email 326 39 23 A4 False +34694499886
274 id_273 2024-01-27 13:46:00 posventa chat 525 51 68 A3 False +34679394364
275 id_274 2024-01-10 09:02:00 posventa chat 908 19 51 A5 False +34675057004
276 id_275 2024-01-19 12:18:00 ventas email 506 0 47 A1 False +34661069572
277 id_276 2024-01-04 13:25:00 soporte email 493 34 34 A2 False +34646206264
278 id_277 2024-01-04 13:40:00 retenciones email 670 8 45 A1 False +34682096675
279 id_278 2024-01-21 15:43:00 soporte voz 485 10 25 A2 False +34626133385
280 id_279 2024-01-16 13:30:00 ventas voz 898 24 39 A1 True +34600658003
281 id_280 2024-01-18 17:42:00 posventa chat 450 32 23 A5 False +34615433222
282 id_281 2024-01-06 09:31:00 posventa chat 649 31 50 A1 True +34653873131
283 id_282 2024-01-24 16:36:00 soporte chat 619 7 48 A3 False +34613981528
284 id_283 2024-01-21 19:56:00 posventa voz 478 62 43 A2 False +34650538135
285 id_284 2024-01-29 09:27:00 retenciones email 481 24 42 A5 False +34652777488
286 id_285 2024-01-02 13:45:00 soporte chat 385 0 46 A1 False +34623689071
287 id_286 2024-01-19 14:21:00 soporte email 780 48 29 A2 False +34652499002
288 id_287 2024-01-10 10:50:00 retenciones voz 474 42 29 A1 False +34628997485
289 id_288 2024-01-20 13:14:00 ventas voz 497 36 36 A3 False +34623593741
290 id_289 2024-01-27 16:39:00 retenciones chat 776 28 37 A1 False +34602276787
291 id_290 2024-01-23 16:58:00 posventa email 1238 56 31 A3 False +34669863927
292 id_291 2024-01-12 17:07:00 posventa chat 783 16 68 A5 False +34690067502
293 id_292 2024-01-15 15:17:00 posventa chat 816 39 27 A1 False +34618303750
294 id_293 2024-01-16 10:44:00 ventas chat 546 39 31 A3 False +34633833647
295 id_294 2024-01-11 12:03:00 retenciones voz 496 12 57 A1 False +34671335020
296 id_295 2024-01-23 12:20:00 soporte email 415 53 27 A5 False +34602592536
297 id_296 2024-01-20 09:25:00 ventas email 672 33 34 A3 False +34661963740
298 id_297 2024-01-09 11:37:00 ventas voz 961 37 35 A4 False +34693480811
299 id_298 2024-01-09 12:23:00 posventa chat 208 55 39 A2 False +34675211737
300 id_299 2024-01-16 12:27:00 posventa email 486 21 30 A4 False +34663349631
301 id_300 2024-01-22 08:04:00 ventas chat 194 38 45 A3 False +34605432019

View File

@@ -1,12 +0,0 @@
server {
listen 80;
server_name _; # en local nos da igual el dominio
location / {
proxy_pass http://api:8000;
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;
}
}

44
docker-compose.yml Normal file
View File

@@ -0,0 +1,44 @@
version: "3.9"
services:
backend:
build:
context: ./backend
container_name: beyond-backend
environment:
# credenciales del API (las mismas que usas ahora)
BASIC_AUTH_USERNAME: admin
BASIC_AUTH_PASSWORD: admin
expose:
- "8000"
networks:
- beyond-net
frontend:
build:
context: ./frontend
args:
# el front compilará con este BASE_URL -> /api
VITE_API_BASE_URL: /api
container_name: beyond-frontend
expose:
- "4173"
networks:
- beyond-net
nginx:
image: nginx:1.27-alpine
container_name: beyond-nginx
depends_on:
- backend
- frontend
ports:
- "80:80"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d:ro
networks:
- beyond-net
networks:
beyond-net:
driver: bridge

3
frontend/.gitignore vendored
View File

@@ -10,7 +10,8 @@ lerna-debug.log*
node_modules
dist
dist-ssr
*.local
*.localnode_modules
.DS_Store
# Editor directories and files
.vscode/*

36
frontend/Dockerfile Normal file
View File

@@ -0,0 +1,36 @@
# frontend/Dockerfile
# 1) Fase de build
FROM node:20-alpine AS build
WORKDIR /app
# Copiamos sólo package.json para cachear mejor
COPY package*.json ./
RUN npm install
# Copiamos el resto del código
COPY . .
# Variable para que el front apunte a nginx (/api -> backend)
ARG VITE_API_BASE_URL=/api
ENV VITE_API_BASE_URL=${VITE_API_BASE_URL}
# Construimos el bundle
RUN npm run build
# 2) Fase de servidor estático
FROM node:20-alpine
WORKDIR /app
# Copiamos el build
COPY --from=build /app/dist ./dist
# Server estático muy simple
RUN npm install -g serve
EXPOSE 4173
CMD ["serve", "-s", "dist", "-l", "4173"]

5
frontend/dockerignore Normal file
View File

@@ -0,0 +1,5 @@
node_modules
dist
.vscode
.DS_Store
*.log

View File

@@ -21,7 +21,7 @@
"xlsx": "^0.18.5"
},
"devDependencies": {
"@types/node": "^22.14.0",
"@types/node": "^22.19.3",
"@vitejs/plugin-react": "^5.0.0",
"typescript": "~5.8.2",
"vite": "^6.2.0"
@@ -1793,9 +1793,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.19.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz",
"integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==",
"version": "22.19.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
"integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
"dev": true,
"license": "MIT",
"dependencies": {

View File

@@ -22,7 +22,7 @@
"xlsx": "^0.18.5"
},
"devDependencies": {
"@types/node": "^22.14.0",
"@types/node": "^22.19.3",
"@vitejs/plugin-react": "^5.0.0",
"typescript": "~5.8.2",
"vite": "^6.2.0"

View File

@@ -8,7 +8,7 @@ type SegmentMapping = {
};
const API_BASE_URL =
import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000';
import.meta.env.VITE_API_BASE_URL || '';
function getAuthHeader(): Record<string, string> {
const user = import.meta.env.VITE_API_USERNAME;

261
install_beyond.sh Normal file
View File

@@ -0,0 +1,261 @@
#!/usr/bin/env bash
set -euo pipefail
###############################################
# CONFIGURACIÓN BÁSICA EDITA ESTO
###############################################
# TODO: pon aquí la URL real de tu repo
REPO_URL_DEFAULT="https://github.com/igferne/Beyond-Diagnosis.git"
INSTALL_DIR="/opt/beyonddiagnosis"
###############################################
# UTILIDADES
###############################################
step() {
echo
echo "=================================================="
echo " 👉 $1"
echo "=================================================="
}
require_root() {
if [ "$(id -u)" -ne 0 ]; then
echo "Este script debe ejecutarse como root (o con sudo)."
exit 1
fi
}
###############################################
# 1. COMPROBACIONES INICIALES
###############################################
require_root
step "Recogiendo datos de configuración"
read -rp "Dominio para la aplicación (ej: app.cliente.com): " DOMAIN
if [ -z "$DOMAIN" ]; then
echo "El dominio no puede estar vacío."
exit 1
fi
read -rp "Email para Let's Encrypt (avisos de renovación): " EMAIL
if [ -z "$EMAIL" ]; then
echo "El email no puede estar vacío."
exit 1
fi
read -rp "Usuario de acceso (Basic Auth / login): " API_USER
if [ -z "$API_USER" ]; then
echo "El usuario no puede estar vacío."
exit 1
fi
read -rsp "Contraseña de acceso: " API_PASS
echo
if [ -z "$API_PASS" ]; then
echo "La contraseña no puede estar vacía."
exit 1
fi
read -rp "URL del repositorio Git [$REPO_URL_DEFAULT]: " REPO_URL
REPO_URL=${REPO_URL:-$REPO_URL_DEFAULT}
echo
echo "Resumen de configuración:"
echo " Dominio: $DOMAIN"
echo " Email Let'sEnc: $EMAIL"
echo " Usuario API: $API_USER"
echo " Repo: $REPO_URL"
echo
read -rp "¿Continuar con la instalación? [s/N]: " CONFIRM
CONFIRM=${CONFIRM:-N}
if [[ ! "$CONFIRM" =~ ^[sS]$ ]]; then
echo "Instalación cancelada."
exit 0
fi
###############################################
# 2. INSTALAR DOCKER + DOCKER COMPOSE + CERTBOT
###############################################
step "Instalando Docker, docker compose plugin y certbot"
apt-get update -y
# Dependencias para repositorio Docker
apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
# Clave GPG de Docker
if [ ! -f /etc/apt/keyrings/docker.gpg ]; then
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
gpg --dearmor -o /etc/apt/keyrings/docker.gpg
fi
# Repo Docker estable
if [ ! -f /etc/apt/sources.list.d/docker.list ]; then
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
fi
apt-get update -y
apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin \
git \
certbot
systemctl enable docker
systemctl start docker
# Abrimos puertos en ufw si está activo
if command -v ufw >/dev/null 2>&1; then
if ufw status | grep -q "Status: active"; then
step "Configurando firewall (ufw) para permitir 80 y 443"
ufw allow 80/tcp || true
ufw allow 443/tcp || true
fi
fi
###############################################
# 3. CLONAR / ACTUALIZAR REPO
###############################################
step "Descargando/actualizando el repositorio en $INSTALL_DIR"
if [ -d "$INSTALL_DIR/.git" ]; then
echo "Directorio git ya existe, haciendo 'git pull'..."
git -C "$INSTALL_DIR" pull --ff-only
else
rm -rf "$INSTALL_DIR"
git clone "$REPO_URL" "$INSTALL_DIR"
fi
cd "$INSTALL_DIR"
###############################################
# 4. CONFIGURAR docker-compose.yml (credenciales y nginx)
###############################################
step "Aplicando credenciales al docker-compose.yml"
if ! grep -q "BASIC_AUTH_USERNAME" docker-compose.yml; then
echo "⚠ No encuentro BASIC_AUTH_USERNAME en docker-compose.yml. Revisa el archivo a mano."
else
sed -i "s/BASIC_AUTH_USERNAME:.*/BASIC_AUTH_USERNAME: \"$API_USER\"/" docker-compose.yml
fi
if ! grep -q "BASIC_AUTH_PASSWORD" docker-compose.yml; then
echo "⚠ No encuentro BASIC_AUTH_PASSWORD en docker-compose.yml. Revisa el archivo a mano."
else
sed -i "s/BASIC_AUTH_PASSWORD:.*/BASIC_AUTH_PASSWORD: \"$API_PASS\"/" docker-compose.yml
fi
# Aseguramos que nginx exponga también 443
if grep -q 'ports:' docker-compose.yml && grep -q 'nginx:' docker-compose.yml; then
if ! grep -q '443:443' docker-compose.yml; then
sed -i '/- "80:80"/a\ - "443:443"' docker-compose.yml || true
fi
fi
# Aseguramos que montamos /etc/letsencrypt dentro del contenedor de nginx
if ! grep -q '/etc/letsencrypt:/etc/letsencrypt:ro' docker-compose.yml; then
sed -i '/nginx:/,/networks:/{
/volumes:/a\ - /etc/letsencrypt:/etc/letsencrypt:ro
}' docker-compose.yml || true
fi
###############################################
# 5. OBTENER CERTIFICADO LET'S ENCRYPT
###############################################
step "Obteniendo certificado SSL de Lets Encrypt para $DOMAIN"
if [ -f "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" ]; then
echo "Certificado ya existe, saltando paso de emisión."
else
# Asegurarnos de que no hay nada escuchando en 80/443
systemctl stop nginx || true
certbot certonly \
--standalone \
--non-interactive \
--agree-tos \
-m "$EMAIL" \
-d "$DOMAIN"
echo "Certificado emitido en /etc/letsencrypt/live/$DOMAIN/"
fi
###############################################
# 6. CONFIGURAR NGINX DENTRO DEL REPO
###############################################
step "Generando configuración nginx con SSL"
mkdir -p nginx/conf.d
cat > nginx/conf.d/beyond.conf <<EOF
server {
listen 80;
server_name $DOMAIN;
return 301 https://\$host\$request_uri;
}
server {
listen 443 ssl;
server_name $DOMAIN;
ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# FRONTEND (React)
location / {
proxy_pass http://frontend:4173/;
proxy_http_version 1.1;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
}
# BACKEND (FastAPI)
location /api/ {
proxy_pass http://backend:8000/;
proxy_http_version 1.1;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
}
}
EOF
###############################################
# 7. BUILD Y ARRANQUE DE CONTENEDORES
###############################################
step "Construyendo imágenes Docker y arrancando contenedores"
docker compose build
docker compose up -d
###############################################
# 8. FIN
###############################################
step "Instalación completada"
echo "La aplicación debería estar disponible en: https://$DOMAIN"
echo
echo "Servicios levantados:"
docker compose ps
echo
echo "Para ver logs: cd $INSTALL_DIR && docker compose logs -f"
echo "Para parar: cd $INSTALL_DIR && docker compose down"

View File

@@ -0,0 +1,27 @@
server {
listen 80;
server_name _;
# FRONTEND (React)
location / {
proxy_pass http://frontend:4173/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# API (backend FastAPI)
#
# El front llamará a /api/analysis, /api/auth/login, etc.
# Esto lo reenviamos al backend en 8000, eliminando el prefijo /api.
location /api/ {
proxy_pass http://backend:8000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}