Ajustes documentacao
This commit is contained in:
@@ -1,15 +1,4 @@
|
||||
mysql_data
|
||||
node_modules
|
||||
agent
|
||||
.git
|
||||
.gitignore
|
||||
.env
|
||||
.env.example
|
||||
docker-compose.yml
|
||||
Dockerfile
|
||||
README.md
|
||||
DEPLOY.md
|
||||
agent/
|
||||
database/
|
||||
.idea/
|
||||
.vscode/
|
||||
vendor/
|
||||
node_modules/
|
||||
storage/
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ agent/dist/*
|
||||
.DS_Store
|
||||
mysql_data/
|
||||
storage/
|
||||
|
||||
|
||||
2
.vscode/settings.json
vendored
Normal file
2
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
@@ -18,6 +18,9 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
# Install PHP extensions
|
||||
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd curl
|
||||
|
||||
# Configure PHP upload limits
|
||||
RUN echo "upload_max_filesize = 40M\npost_max_size = 50M" > /usr/local/etc/php/conf.d/uploads.ini
|
||||
|
||||
# Enable Apache mod_rewrite
|
||||
RUN a2enmod rewrite
|
||||
|
||||
|
||||
@@ -80,7 +80,12 @@ class OrderController
|
||||
}
|
||||
|
||||
if (!isset($_FILES['csv_file']) || $_FILES['csv_file']['error'] !== UPLOAD_ERR_OK) {
|
||||
$_SESSION['flash_error'] = "Erro no upload do arquivo CSV.";
|
||||
$csvError = $_FILES['csv_file']['error'] ?? 'desconhecido';
|
||||
if ($csvError === UPLOAD_ERR_INI_SIZE || $csvError === UPLOAD_ERR_FORM_SIZE) {
|
||||
$_SESSION['flash_error'] = "O arquivo CSV/TXT excede o limite de tamanho permitido pelo servidor.";
|
||||
} else {
|
||||
$_SESSION['flash_error'] = "Erro no upload do arquivo CSV. (código " . $csvError . ")";
|
||||
}
|
||||
View::redirect('/admin/orders/create');
|
||||
return;
|
||||
}
|
||||
|
||||
84
doc/ATUALIZACAO.md
Normal file
84
doc/ATUALIZACAO.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Procedimento de Atualização
|
||||
|
||||
Este documento descreve os passos necessários para atualizar a aplicação DNSBlock para a nova versão, incluindo a aplicação de migrações no banco de dados.
|
||||
|
||||
## 1. Backup do Banco de Dados (Recomendado)
|
||||
|
||||
Antes de qualquer atualização, é altamente recomendável fazer um backup do banco de dados atual para evitar perda de dados em caso de falhas.
|
||||
|
||||
```bash
|
||||
make backup
|
||||
# O backup será salvo na pasta backups/
|
||||
```
|
||||
|
||||
## 2. Atualização do Código-Fonte
|
||||
|
||||
Baixe as atualizações mais recentes do repositório (se estiver usando git) ou substitua os arquivos da aplicação pela nova versão.
|
||||
|
||||
```bash
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
## 3. Reconstrução e Reinício dos Containers
|
||||
|
||||
Após atualizar o código, é fundamental reconstruir a imagem Docker da aplicação e reiniciar os containers. Isso garante que as novas configurações de ambiente (como aumento do limite de upload do PHP) sejam aplicadas corretamente.
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
*(Nota: O comando `make restart` do Makefile apenas reinicia os containers, mas não força a reconstrução da imagem. Portanto, para atualizações de versão, utilize o comando acima).*
|
||||
|
||||
## 4. Aplicação das Migrações de Banco de Dados (SQL)
|
||||
|
||||
As atualizações que alteram a estrutura do banco de dados incluem arquivos `.sql` na pasta `database/migrations/`. Para aplicá-los, utilize o comando `docker exec` direcionando o arquivo para o container do MySQL.
|
||||
|
||||
Para aplicar a migração mais recente referente ao suporte a anexos nas ordens judiciais, execute na raiz do projeto:
|
||||
|
||||
```bash
|
||||
docker exec -i dnsblock-db mysql -u root -p"$(grep DB_ROOT_PASSWORD .env | cut -d '=' -f2 | tr -d '\r')" dnsblock < database/migrations/2026_03_12_create_order_attachments.sql
|
||||
```
|
||||
|
||||
**Regra Geral para Migrações:**
|
||||
Caso existam múltiplas migrações que ainda não foram aplicadas em seu ambiente de produção, aplique-as uma a uma, respeitando a ordem cronológica dos prefixos dos arquivos (ex: `2025_...`, `2026_...`). Exemplo genérico:
|
||||
```bash
|
||||
docker exec -i dnsblock-db mysql -u root -p"$(grep DB_ROOT_PASSWORD .env | cut -d '=' -f2 | tr -d '\r')" dnsblock < database/migrations/ARQUIVO_DE_MIGRACAO.sql
|
||||
```
|
||||
|
||||
## 5. Permissões de Diretório (Armazenamento Persistente)
|
||||
|
||||
Para garantir que a aplicação consiga salvar arquivos enviados (como os PDFs de anexos) no diretório mapeado para o hospedeiro, é obrigatório ajustar as permissões do diretório `storage`.
|
||||
|
||||
Após os containers estarem em execução, rode o seguinte comando na raiz do projeto para conceder a posse e permissão correta ao usuário do container web (`www-data`):
|
||||
|
||||
```bash
|
||||
docker exec dnsblock-app chown -R www-data:www-data /var/www/html/storage
|
||||
docker exec dnsblock-app chmod -R 775 /var/www/html/storage
|
||||
```
|
||||
|
||||
## 6. Validação da Atualização
|
||||
|
||||
1. Acesse o sistema pelo navegador.
|
||||
2. Limpe o cache do navegador (CTRL + F5) para garantir o carregamento de novos scripts, se houver.
|
||||
3. Valide o funcionamento das novas entregas (ex: anexe um arquivo grande na página de Ordens Judiciais).
|
||||
4. Verifique os logs se encontrar algum problema de comunicação:
|
||||
```bash
|
||||
make logs
|
||||
```
|
||||
|
||||
## 7. Limpeza e Otimização (Opcional)
|
||||
|
||||
Após a atualização bem-sucedida, é recomendado realizar uma limpeza no ambiente Docker para remover compilações antigas (imagens) e dados que não são mais utilizados, liberando espaço em disco no servidor.
|
||||
|
||||
**Atenção:** Os comandos abaixo não afetarão conteinêres em execução nem os volumes que estão associados a eles (seus dados estarão seguros).
|
||||
|
||||
Para remover **imagens antigas**, containers parados e redes não utilizadas:
|
||||
```bash
|
||||
docker system prune -f
|
||||
```
|
||||
|
||||
Se você mudou volumes recentemente (como na migração do banco de dados) e tem certeza de que os **volumes antigos não são mais necessários**:
|
||||
```bash
|
||||
docker volume prune -f
|
||||
```
|
||||
*(Nota: O comando de volumes remove TODOS os volumes Docker na máquina que não estejam atrelados a um container ativo. Use com cautela se houver outras aplicações no mesmo servidor).*
|
||||
@@ -5,7 +5,7 @@ if ($hasError) {
|
||||
unset($_SESSION['flash_error']); // Prevent toast from showing
|
||||
}
|
||||
?>
|
||||
<div class="max-w-3xl mx-auto bg-white rounded-xl shadow-sm border border-gray-100 p-6" x-data='orderForm(<?= $hasError ? 'true' : 'false' ?>, <?= json_encode($errorMsg) ?>)'>
|
||||
<div class="max-w-3xl mx-auto bg-white rounded-xl shadow-sm border border-gray-100 p-6" x-data='orderForm(<?= $hasError ? 'true' : 'false' ?>, <?= htmlspecialchars(json_encode($errorMsg), ENT_QUOTES, 'UTF-8') ?>)'>
|
||||
|
||||
<!-- Modal de Erro -->
|
||||
<div x-show="showModal" class="fixed inset-0 z-50 overflow-y-auto" aria-labelledby="modal-title" role="dialog" aria-modal="true" x-cloak>
|
||||
|
||||
Reference in New Issue
Block a user