FEATURE: Adicionado novo modelo CI/CD
This commit is contained in:
parent
d467e3dade
commit
c854086e69
17
.env.example
Normal file
17
.env.example
Normal file
@ -0,0 +1,17 @@
|
||||
# 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
|
||||
2
MakeFile
Normal file
2
MakeFile
Normal file
@ -0,0 +1,2 @@
|
||||
deploy-dev:
|
||||
ssh desenvolvimento@10.0.120.75 -p 60000 "/home/desenvolvimento/scripts/deploy-omnichannel-dev.sh"
|
||||
92
README.md
92
README.md
@ -1,89 +1,29 @@
|
||||
# Omnichannel Sothis
|
||||
# Omnichannel Sothis - Deploy
|
||||
|
||||
Protótipo visual do frontend MVP do sistema Omnichannel da 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.
|
||||
|
||||
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.
|
||||
## Estrutura esperada (3 repositorios)
|
||||
|
||||
## O que existe hoje
|
||||
- `deploy/` (este repo): `docker-compose.yml`, `database/`, `.gitignore`, `README.md`
|
||||
- `frontend/`: interface do produto
|
||||
- `backend/`: API e regras de negocio
|
||||
|
||||
- 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
|
||||
## Como subir tudo localmente
|
||||
|
||||
## Estrutura esperada do ecossistema
|
||||
Passo a passo (na mesma pasta raiz):
|
||||
|
||||
Hoje este repositório cobre o frontend e um `docker-compose.yml` local para desenvolvimento/apresentação.
|
||||
|
||||
Para rodar o ambiente completo no futuro, a separação esperada é:
|
||||
|
||||
- `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:
|
||||
1. Clonar o repo de deploy na raiz (.)
|
||||
2. Clonar o repo de frontend na pasta `frontend`
|
||||
3. Clonar o repo de backend na pasta `backend`
|
||||
4. Subir tudo:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Depois acesse:
|
||||
Isso sobe `frontend`, `backend` e `database` em uma unica operacao.
|
||||
|
||||
```text
|
||||
http://localhost:3000
|
||||
```
|
||||
## Observacoes
|
||||
|
||||
### Opção 2: com Node local
|
||||
|
||||
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
|
||||
- O `docker-compose.yml` deste repo espera `frontend/` e `backend/` presentes na mesma raiz.
|
||||
- Em producao, o fluxo pode mudar para imagens pre-buildadas, mas para desenvolvimento local esta estrutura funciona bem.
|
||||
|
||||
0
database/Dockerfile
Normal file
0
database/Dockerfile
Normal file
0
database/init/001.schema.sql
Normal file
0
database/init/001.schema.sql
Normal file
@ -5,3 +5,34 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- "3000:3000"
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- "3001:3001"
|
||||
env_file:
|
||||
- .env.development
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
restart: always
|
||||
env_file:
|
||||
- .env.development
|
||||
ports:
|
||||
- "5432: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