https://github.com/eduardobrust/totvs-protheus2410-smartview-docker
Protheus-Docker-SmartView
https://github.com/eduardobrust/totvs-protheus2410-smartview-docker
containers docker docker-compose protheus smartview yml
Last synced: 3 months ago
JSON representation
Protheus-Docker-SmartView
- Host: GitHub
- URL: https://github.com/eduardobrust/totvs-protheus2410-smartview-docker
- Owner: eduardobrust
- License: mit
- Created: 2025-05-11T02:18:41.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-24T19:07:25.000Z (about 1 year ago)
- Last Synced: 2025-06-15T07:48:19.477Z (about 1 year ago)
- Topics: containers, docker, docker-compose, protheus, smartview, yml
- Language: Shell
- Homepage:
- Size: 17.2 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🐳 Ambiente Dockerizado em Linux - TOTVS Protheus 12.1.2410 com SmartView e PostgreSQL
Este projeto oferece um ambiente completo e containerizado do ERP **TOTVS Protheus 12.1.2410** com **SmartView** e **PostgreSQL 16**, utilizando imagens Docker personalizadas e otimizadas para distribuições Linux.
## 📁 Estrutura recomendada do repositório
```bash
brust-protheus2410-smartview-docker-linux-postgres/
.
├── .git/
├── certificate/
├── img_dbaccess/
├── img_license/
├── img_postgres/
├── img_protheus/
├── img_smartview/
├── postgres-data/
├── totvs/
├── .gitignore
├── 1_postgres_image.sh
├── 2_license_server_image.sh
├── 3_dbaccess_image.sh
├── 4_protheus_image.sh
├── 5_smartview_image.sh
├── apprest_container.sh
├── appserver_container.sh
├── dbaccess_container.sh
├── docker-compose.override_modelo.yml
├── docker-compose.yml
├── LICENSE
├── README.md
└── totvs_all_image.sh
```
---
## 🚀 Visão Geral
Este repositório contém os arquivos de configuração e scripts necessários para subir um ambiente **TOTVS Protheus 12.1.2410 com SmartView e PostgreSQL**, totalmente containerizado com Docker.
---
## 📦 Imagens Docker
### 📥 Imagens Docker disponíveis
| Serviço | Descrição | Imagem Docker |
|----------------|---------------------------------------------------|----------------------------------------------------------------------------|
| PostgreSQL | Banco com init dbProtheus + SmartView (Debian 12) | `eduardobrust/...:dbProtheus-dbSmarView-debian12` |
| License Server | TOTVS License Server (OpenSUSE 15.6) | `eduardobrust/...:licenseserver-opensuse15.6` |
| DbAccess | Acesso ao banco de dados (Oracle Linux 9) | `eduardobrust/...:dbaccess-oracleLinux9` |
| Protheus | ERP Protheus 12.1.2410 (OpenSUSE 15.6) | `eduardobrust/...:protheus2410-opensuse15.6` |
| SmartView | Interface de visualização (Oracle Linux 9) | `eduardobrust/...:smartview-oraclelinux9` |
## Como baixar as imagens Docker
Para rodar o ambiente do Protheus 12.1.2410 com SmartView e PostgreSQL, você precisará baixar várias imagens Docker.
Abaixo estão os comandos necessários para baixar cada serviço, seguido de uma breve explicação sobre o que cada um faz:
### 1. Baixar a imagem do PostgreSQL com Banco do Protheus e SmartView usando Distro Debian 12
Essa imagem contém o ambiente configurado para o banco de dados do Protheus com o SmartView, rodando em Debian 12.
📦 **Imagem:** `eduardobrust/brust-protheus2410-smartview-linux-postgres:dbProtheus-dbSmarView-debian12`
🐧 **Distro:** Debian GNU/Linux 12
🔒 **Separação lógica:** O Protheus e o SmartView usam aliases distintos (`dbprotheus` e `dbSmartView`) no mesmo container para simular bancos independentes.
🌐 **Portas expostas:** 5433
```bash
docker pull eduardobrust/brust-protheus2410-smartview-linux-postgres:dbProtheus-dbSmarView-debian12
```
### 2. Baixar a imagem do License Server para OpenSUSE 15.6
Essa imagem contém o License Server do Protheus, configurado para rodar em OpenSUSE 15.6.
📦 **Imagem:** `eduardobrust/brust-protheus2410-smartview-linux-postgres:licenseserver-opensuse15.6`
🐧 **Distro:** OpenSUSE Leap 15.6
🔗 **Função:** Garante a licença de uso dos produtos TOTVS no ambiente isolado.
🌐 **Portas expostas:** 2236 / 5556 / 8050
```bash
docker pull eduardobrust/brust-protheus2410-smartview-linux-postgres:licenseserver-opensuse15.6
```
### 3. Baixar a imagem do DbAccess para Oracle Linux 9
Essa imagem contém o DbAccess, a camada de acesso ao banco de dados, configurado para Oracle Linux 9.
📦 **Imagem:** `eduardobrust/brust-protheus2410-smartview-linux-postgres:dbaccess-oracleLinux9`
🐧 **Distro:** Oracle Linux 9
🔄 **Dependências:** Inicia somente após o banco e o license server
💬 **Função:** Estabelece a conexão entre o AppServer e os bancos configurados (via ODBC e portas mapeadas).
🌐 **Portas expostas:** 7892 / 7893
```bash
docker pull eduardobrust/brust-protheus2410-smartview-linux-postgres:dbaccess-oracleLinux9
```
### 4. Baixar a imagem do Protheus 2410 para OpenSUSE 15.6
Essa imagem contém o ambiente Protheus 12.1.2410, configurado para rodar em OpenSUSE 15.6.
📦 **Imagem:** `eduardobrust/brust-protheus2410-smartview-linux-postgres:protheus2410-opensuse15.6`
🐧 **Distro:** OpenSUSE 15.6
🔄 **Dependências:** Inicia somente após o banco, license server e dbaccess
🎯 **Função:** Executa os serviços principais da Release 12.1.2410
🌐 Portas expostas: 1101 / 1102 / 9003 / 9090 / 21021
```bash
docker pull eduardobrust/brust-protheus2410-smartview-linux-postgres:protheus2410-opensuse15.6
```
### 5. Baixar a imagem do SmartView para Oracle Linux 9
Essa imagem contém o ambiente do SmartView configurado para rodar em Oracle Linux 9, permitindo a visualização e interação com o sistema Protheus.
📦 **Imagem:** `eduardobrust/brust-protheus2410-smartview-linux-postgres:smartview-oraclelinux9`
🐧 **Distro:** Oracle Linux 9
🔄 **Dependências:** Inicia somente após o banco, license server, dbaccess , Protheus
🧱 **Separação completa:** Utiliza banco, dbaccess e license independentes
🌐 **Portas expostas:** 7019 / 7017
```bash
docker pull eduardobrust/brust-protheus2410-smartview-linux-postgres:smartview-oraclelinux9
```
#### 📌 Observação
###### Antes de rodar esses comandos, certifique-se de que o Docker está instalado e configurado corretamente em sua máquina. Cada um desses serviços é necessário para montar o ambiente completo do Protheus com SmartView e PostgreSQL.
---
## ✅ Pré-requisitos
* 🐳 Docker instalado
* 💻 Bash (Linux, WSL ou Git Bash no Windows)
* 🐧Recomendo instalar a distro OpenSUSE encontrada no microsoft store
---
### 🧪 Compatibilidade testada
- Docker Engine: 24.0+
- Docker Compose: 2.20+
- WSL2 no Windows 11 PRO
- Sistemas baseados em Linux (Debian, Oracle Linux, OpenSUSE)
- Ubuntu como Host - Tive problemas no license Server de Ulimit *
---
## 🛠️ Como usar
### 1. Clone o repositório
```bash
git clone https://github.com/eduardobrust/brust-protheus2410-smartview-docker-linux-postgres.git
cd brust-protheus2410-smartview-docker-linux-postgres
```
###### 🌍 Baixe a pasta webagent para um diretório do windows; se estiver usando diretamente o linux, baixe o webagent do site da totvs, versão para linux. Instale e deixe rodando em memória.
### 2. Descrição dos Scripts para geração das Imagens
```bash
./1_postgres_image.sh # 🔧 Builda e sobe a imagem do PostgreSQL
./2_license_server_image.sh # 🔧 Builda e sobe a imagem do Totvs License Server
./3_dbaccess_image.sh # 🔧 Builda e sobe a imagem do Totvs Dbaccess
./4_protheus_image.sh # 🔧 Builda e sobe a imagem do Protheus 2410
./5_smartview_image.sh # 🔧 Builda e sobe a imagem do Smart View
./totvs_all_image.sh # 🔧 Builda e sobe todas as imagens seguindo a ordem acima
```
---
### 3. Comandos rápidos para geração das Imagens
```bash
./1_postgres_image.sh run # 🔧 Builda e sobe o container do PostgreSQL
./1_postgres_image.sh stop # ⛔ Para e remove o container
./1_postgres_image.sh clean # 🧹 Remove volumes não utilizados
./1_postgres_image.sh logs # 📜 Mostra logs do PostgreSQL
./1_postgres_image.sh help # ❓ Mostra o help com os comandos dispononíveis do PostgreSQL
```
## ❗ Problemas comuns
📌 **WebAgent não sobe quando os serviços do docker estão no ar - Recomendado subir antes.**
📌 **Persistência do RPO na Pasta `totvs/protheus/apo`**
A pasta `totvs/protheus/apo` é utilizada para persistir o RPO (Repositório de Objetos) do contêiner no sistema de arquivos do host, por meio de um bind mount configurado no `docker-compose.yml`. Para manter o RPO entre diferentes execuções do contêiner, é necessário garantir que o RPO do Protheus esteja presente nesta pasta antes de iniciar o contêiner.
No entanto, cuidado: se a pasta `./totvs/protheus/apo` no host estiver vazia ao iniciar o contêiner, ela sobrescreverá o conteúdo da pasta `/totvs/protheus/apo` dentro do contêiner, podendo apagar o RPO padrão da imagem. Para evitar isso, você pode comentar a linha correspondente no `docker-compose.yml`:
```yaml
# - ./totvs/protheus/apo:/totvs/protheus/apo
```
💡 **Dica de Boas Práticas**
Siga este procedimento para configurar o RPO corretamente:
1. **Inicie o contêiner sem o bind mount:** Comente a linha mencionada acima no `docker-compose.yml` e execute `docker-compose up -d`. Isso permite que o contêiner inicie com o RPO padrão da imagem do Protheus.
2. **Copie o RPO para o host:** Acesse o contêiner e copie o conteúdo da pasta `/totvs/protheus/apo` para o diretório `./totvs/protheus/apo` no host (use `docker cp` para isso).
3. **Remova o contêiner e a imagem:** Execute `docker-compose down` para parar e remover o contêiner. Se necessário, remova a imagem com `docker rmi `.
4. **Reinicie com o bind mount ativado:** Descomente a linha no `docker-compose.yml` e execute `docker-compose up -d` novamente. Agora, o contêiner usará o RPO persistido na pasta do host.
---
### 🔄 "init.sql" não executa novamente
Isso ocorre porque o volume persiste o estado. Use:
```bash
./1_postgres_image.sh stop && ./1_postgres_image.sh clean && ./1_postgres_image.sh run
```
📌 O script `init.sql` dentro da imagem `img_postgres` será executado **apenas na primeira vez** que o container for criado com volume limpo.
devido a natureza do script ser de criação de tabela.
Para forçar criar a tabela novamente, apague a pasta postgres-data.
🔄 Se quiser forçar nova execução:
```bash
./1_postgres_image.sh stop && ./1_postgres_image.sh clean && ./1_postgres_image.sh run
```
---
### 4. Subir todos as imagens com o script centralizador
```bash
./totvs_all_image.sh run
```
🧩 Ou, se preferir, utilize diretamente o Docker Compose:
```bash
docker-compose up -d
```
💡 *Recomenda-se o uso do script `totvs_all_image.sh`, pois ele pode configurar volumes, certificados e outras dependências antes de iniciar os containers.*
---
## 🔐 Certificados e Segurança
Caso deseje utilizar HTTPS ou integração segura entre os serviços, inclua seus certificados personalizados na pasta `certificate/`.
---
### 📦 Comandos rápidos para manipulação dos containeres
```bash
./apprest_container.sh start # ▶️ Inicia o serviço do Rest no Protheus
./apprest_container.sh stop # ⛔ Para o serviço do Rest no Protheus
./apprest_container.sh kill # 💀 Força a parada do serviço Rest no Protheus
./apprest_container.sh restart # 🔄 Reinicia o serviço do Rest no Protheus
./apprest_container.sh status # ℹ️ Mostra o status do serviço Rest no Protheus
./apprest_container.sh describe # 📝 Mostra detalhes do serviço e as configurações
./apprest_container.sh export # 📤 Exporta o appserver.ini, console.log para a pasta /temp do host
./apprest_container.sh log # 📜 Exibe o console.log do Rest na tela
```
---
### 🎥 Vídeo de demonstração do Processo
[](https://www.youtube.com/watch?v=fBv1C_Ezgqg)
---
## 📄 Licença
📝 Todas as marcas usadas neste projeto são de propriedade da **TOTVS S.A.**
Este projeto é mantido para fins educacionais e de testes com o ERP TOTVS Protheus.
Licenças de software devem ser providenciadas conforme exigido pela TOTVS.
Todo o projeto foi desenvolvido utilizando uma base teste com empresa 99 do Protheus.
---
## 🧑💻 Autor
Criado por **Eduardo Brust**
* 📧 [eduardobrust@gmail.com](mailto:eduardobrust@gmail.com)
* 🎥 [YouTube](https://www.youtube.com/@EduardoBrust)
* 🔗 [LinkedIn](https://www.linkedin.com/in/eduardo-brust/)
---