Dicioralho

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.

Tecnologias

Rodar com Docker

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.

Contas, favoritos e administração

Qualquer pessoa pode consultar o dicionário sem login.

Uma conta comum pode:

Uma conta administradora também pode:

Tornar sua conta administradora

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.

Tornar sua conta administradora no Alwaysdata

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.

Inserir um verbete direto no PostgreSQL

É 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.

Rodando junto com outros projetos

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.

Comandos úteis

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

Resetar o banco local

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.

Arquivos enviados

Á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.

Configuração

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.

Rodar sem Docker

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

Atualizar um banco antigo

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.

Produção

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.

Estrutura principal

.
├── bin/
│   └── user-role.php
├── compose.yaml
├── Dockerfile
├── docker/
│   └── php.ini
├── public/
│   ├── admin/
│   ├── assets/
│   └── index.php
├── src/
│   ├── config/
│   ├── database/
│   └── function/
└── storage/
    └── palavra/

Antes de enviar ao GitHub

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

Conteúdo

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.

Licença

Distribuído sob a licença MIT.