Compare commits
No commits in common. "b4c6bb4ba10e11afdd258ed87edf1c5da202e956" and "d467e3dadecec7fa0021b50f05c3d8064d06ef5b" have entirely different histories.
b4c6bb4ba1
...
d467e3dade
17
.env.example
17
.env.example
@ -1,17 +0,0 @@
|
|||||||
# Deploy (docker-compose) environment variables
|
|
||||||
|
|
||||||
# Postgres (used by postgres service)
|
|
||||||
POSTGRES_USER=omnichannel
|
|
||||||
POSTGRES_PASSWORD=change-me
|
|
||||||
POSTGRES_DB=omnichannel
|
|
||||||
|
|
||||||
# App database connection (used by backend)
|
|
||||||
DB_HOST=postgres
|
|
||||||
DB_PORT=5432
|
|
||||||
DB_USER=omnichannel
|
|
||||||
DB_PASSWORD=change-me
|
|
||||||
DB_NAME=omnichannel
|
|
||||||
|
|
||||||
# Ports (optional, if you want to reference in compose later)
|
|
||||||
FRONTEND_PORT=3000
|
|
||||||
BACKEND_PORT=3001
|
|
||||||
92
README.md
92
README.md
@ -1,29 +1,89 @@
|
|||||||
# Omnichannel Sothis - Deploy
|
# Omnichannel Sothis
|
||||||
|
|
||||||
Este repositorio e o **deploy** do ecossistema. Ele **nao** contem o codigo do frontend nem do backend em producao. Esses dois sao repositorios separados e devem ser clonados ao lado deste deploy para subir o ambiente completo.
|
Protótipo visual do frontend MVP do sistema Omnichannel da Sothis.
|
||||||
|
|
||||||
## Estrutura esperada (3 repositorios)
|
O foco desta versão é apresentação de produto: a aplicação simula fluxos reais de atendimento com dados mockados, UX moderna e navegação entre telas principais.
|
||||||
|
|
||||||
- `deploy/` (este repo): `docker-compose.yml`, `database/`, `.gitignore`, `README.md`
|
## O que existe hoje
|
||||||
- `frontend/`: interface do produto
|
|
||||||
- `backend/`: API e regras de negocio
|
|
||||||
|
|
||||||
## Como subir tudo localmente
|
- Frontend em React + Vite dentro de `frontend/`
|
||||||
|
- Docker Compose na raiz para subir o frontend desta apresentação
|
||||||
|
- Telas implementadas:
|
||||||
|
- Login
|
||||||
|
- Home / Dashboard
|
||||||
|
- Chat
|
||||||
|
- Call / Softphone mock
|
||||||
|
- Novo Atendimento
|
||||||
|
|
||||||
Passo a passo (na mesma pasta raiz):
|
## Estrutura esperada do ecossistema
|
||||||
|
|
||||||
1. Clonar o repo de deploy na raiz (.)
|
Hoje este repositório cobre o frontend e um `docker-compose.yml` local para desenvolvimento/apresentação.
|
||||||
2. Clonar o repo de frontend na pasta `frontend`
|
|
||||||
3. Clonar o repo de backend na pasta `backend`
|
Para rodar o ambiente completo no futuro, a separação esperada é:
|
||||||
4. Subir tudo:
|
|
||||||
|
- `frontend`: interface do produto
|
||||||
|
- `backend`: API e regras de negócio
|
||||||
|
- `deploy`: repositório raiz de infraestrutura/orquestração, onde ficará o `docker-compose` final com frontend, backend, banco e demais serviços
|
||||||
|
|
||||||
|
## Como rodar somente o frontend
|
||||||
|
|
||||||
|
### Opção 1: com Docker
|
||||||
|
|
||||||
|
Na raiz deste projeto:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
Isso sobe `frontend`, `backend` e `database` em uma unica operacao.
|
Depois acesse:
|
||||||
|
|
||||||
## Observacoes
|
```text
|
||||||
|
http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
- O `docker-compose.yml` deste repo espera `frontend/` e `backend/` presentes na mesma raiz.
|
### Opção 2: com Node local
|
||||||
- Em producao, o fluxo pode mudar para imagens pre-buildadas, mas para desenvolvimento local esta estrutura funciona bem.
|
|
||||||
|
Entre na pasta do frontend:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Depois acesse:
|
||||||
|
|
||||||
|
```text
|
||||||
|
http://localhost:3000
|
||||||
|
```
|
||||||
|
|
||||||
|
## Como gerar build do frontend
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Para rodar o ambiente completo
|
||||||
|
|
||||||
|
Quando a solução estiver separada em múltiplos repositórios, o fluxo esperado será:
|
||||||
|
|
||||||
|
1. Fazer `pull` do repositório `frontend`
|
||||||
|
2. Fazer `pull` do repositório `backend`
|
||||||
|
3. Fazer `pull` do repositório `deploy`
|
||||||
|
4. Entrar no repositório `deploy` (raiz de infraestrutura)
|
||||||
|
5. Subir tudo com:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Em outras palavras: o `docker compose` definitivo do ambiente completo deve ser executado a partir do repositório `deploy`, que será a raiz de orquestração.
|
||||||
|
|
||||||
|
## Documentação
|
||||||
|
|
||||||
|
A documentação funcional do frontend está em [`frontend/docs`](./frontend/docs):
|
||||||
|
|
||||||
|
- visão geral do projeto
|
||||||
|
- documentação por módulo/tela
|
||||||
|
- documentação em formato narrativo/RPG para explicar os casos de uso
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
ssh desenvolvimento@10.0.120.75 -p 60000 "/home/desenvolvimento/scripts/deploy-omnichannel-dev.sh"
|
|
||||||
@ -4,35 +4,4 @@ services:
|
|||||||
context: ./frontend
|
context: ./frontend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "4000:3000"
|
- "3000:3000"
|
||||||
|
|
||||||
backend:
|
|
||||||
build:
|
|
||||||
context: ./backend
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
ports:
|
|
||||||
- "4001:3001"
|
|
||||||
env_file:
|
|
||||||
- .env.development
|
|
||||||
depends_on:
|
|
||||||
postgres:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
image: postgres:16-alpine
|
|
||||||
restart: always
|
|
||||||
env_file:
|
|
||||||
- .env.development
|
|
||||||
ports:
|
|
||||||
- "5434:5432"
|
|
||||||
volumes:
|
|
||||||
- pgdata:/var/lib/postgresql/data
|
|
||||||
- ./database/init:/docker-entrypoint-initdb.d
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
pgdata:
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user