O Dicioralho é um dicionário independente de gírias, expressões populares, regionalismos, palavras informais e palavrões do português brasileiro.
A consulta é pública. Conta é necessária apenas para recursos pessoais, como favoritos e anotações. A criação, edição e publicação de verbetes fica na área administrativa.
Requisitos:
Clone o repositório e entre na pasta:
git clone https://github.com/BrunoWithoutH/Dicioralho.git
cd Dicioralho
Crie o arquivo local de configuração:
cp .env.example .env
Suba a aplicação e o PostgreSQL:
docker compose up --build -d
Abra:
http://localhost:8082
O banco é criado automaticamente na primeira inicialização usando src/database/dicioralho.sql.
Qualquer pessoa pode consultar o dicionário sem login.
Uma conta comum pode:
Uma conta administradora também pode:
Crie sua conta normalmente pelo site primeiro.
Depois, no ambiente Docker, rode:
docker compose exec web php bin/user-role.php seu-email@exemplo.com admin
Faça logout e login novamente.
A opção Administrar verbetes aparecerá no menu. Dentro dela existe o botão Novo verbete.
Para voltar uma conta para usuário comum:
docker compose exec web php bin/user-role.php seu-email@exemplo.com user
Depois que já existir um administrador, ele também pode promover ou rebaixar outras contas pela página Usuários.
Não é necessário abrir o banco e editar a tabela manualmente.
Depois de criar sua conta no site publicado, conecte por SSH ao Alwaysdata, entre na pasta do projeto e rode:
php bin/user-role.php seu-email@exemplo.com admin
O comando usa as mesmas variáveis de banco da aplicação. O .env de produção precisa estar configurado no servidor.
Depois faça logout e login novamente no site.
É possível inserir palavras sem associá-las a uma conta, porque palavras.idusuario aceita NULL.
Exemplo:
INSERT INTO palavras (
idpalavra,
idusuario,
palavra,
definicaopalavra,
statuspalavra
) VALUES (
substr(md5(random()::text || clock_timestamp()::text), 1, 12),
NULL,
'exemplo',
'Definição do verbete.',
'ativa'
);
Isso é útil para importações e manutenção, mas para uso normal é mais prático criar uma conta administradora e usar o formulário do próprio site.
O Dicioralho usa a porta 8082 por padrão.
Exemplo:
StrideBR http://localhost:8080
Adminer http://localhost:8081
Dicioralho http://localhost:8082
A porta é configurada no .env:
APP_PORT=8082
Para usar outra porta:
APP_PORT=8083
Depois recrie o serviço:
docker compose up -d
Cada projeto iniciado em uma pasta diferente recebe sua própria rede e seus próprios volumes do Docker Compose.
Ver os containers:
docker compose ps
Ver os logs da aplicação:
docker compose logs -f web
Ver os logs do PostgreSQL:
docker compose logs -f db
Parar o ambiente:
docker compose down
Reconstruir a aplicação:
docker compose up --build -d
O PostgreSQL usa um volume persistente. Para apagar o banco local e criá-lo novamente:
docker compose down -v
docker compose up --build -d
Esse comando apaga os dados locais do Docker.
Áudios e imagens ficam em storage/palavra/. O diretório public/storage é um link simbólico para esse armazenamento.
No Docker, storage/ também usa um volume persistente.
A aplicação usa variáveis de ambiente para conectar ao banco.
Arquivo de configuração:
src/config/pg_config.php
Variáveis disponíveis:
APP_ENV
APP_DEBUG
APP_PORT
DB_HOST
DB_PORT
DB_NAME
DB_USER
DB_PASSWORD
DB_SSLMODE
O .env é ignorado pelo Git e não deve ser commitado.
Também é possível usar PHP e PostgreSQL instalados na máquina.
Crie o banco usando:
src/database/dicioralho.sql
Copie .env.example para .env e ajuste:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=dicioralho
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_SSLMODE=prefer
Depois rode:
php -S localhost:8000 -t public
Se o banco ainda vier da versão escolar do projeto, execute:
src/database/migrations/2026_public_dictionary.sql
A migration remove a estrutura antiga de instituições, turmas e tarefas e adapta o banco para a versão pública atual.
Não use as credenciais do Docker em produção.
No servidor, crie um .env próprio com as credenciais reais do PostgreSQL e mantenha o document root apontando para public/.
Exemplo:
APP_ENV=production
APP_DEBUG=false
DB_HOST=host-do-postgresql
DB_PORT=5432
DB_NAME=nome_do_banco
DB_USER=usuario_do_banco
DB_PASSWORD=senha_do_banco
DB_SSLMODE=prefer
Nunca coloque senha, token ou outra credencial diretamente em arquivos PHP versionados.
.
├── bin/
│ └── user-role.php
├── compose.yaml
├── Dockerfile
├── docker/
│ └── php.ini
├── public/
│ ├── admin/
│ ├── assets/
│ └── index.php
├── src/
│ ├── config/
│ ├── database/
│ └── function/
└── storage/
└── palavra/
Confira se o .env não está entrando no commit:
git status
Depois:
git add .
git commit -m "Atualiza ambiente e administração"
git push
O Dicioralho documenta linguagem real. Alguns verbetes podem conter termos ofensivos, vulgares ou socialmente sensíveis. A presença de um termo no dicionário tem finalidade descritiva e não representa endosso ao seu uso.
Distribuído sob a licença MIT.