Plataforma web de apostas ficticias desenvolvida com CodeIgniter 4, com backend em PHP 8.2, frontend estatico servido por Nginx e banco MySQL 8.0 via Docker Compose.
O projeto separa a aplicacao em tres partes:
app/: backend MVC do CodeIgniter 4, com controllers, models, filtros, seeds e configuracoes.frontend/: telas estaticas servidas pelo Nginx para a experiencia publica e de cliente.database/schema.sql: schema inicial do MySQL, com tabelas e dados base.
- Docker Desktop ou Docker Engine com Docker Compose.
- Porta
8080livre para o frontend. - Porta
8082livre para o backend. - Porta
3306livre para o MySQL.
Crie um arquivo .env na raiz do projeto com as variaveis usadas pelo compose.yaml:
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=pimbastic_esports
MYSQL_USER=root
MYSQL_PASSWORD=rootSe quiser alterar o acesso inicial do administrador, tambem pode definir:
ADMIN_EMAIL=admin@pimbastic.local
ADMIN_PASSWORD=admin123- Suba a infraestrutura limpa:
docker compose down -v
docker compose up --build -d- Verifique os servicos:
docker compose ps- Acesse a aplicacao:
- Frontend publico: http://localhost:8080
- Backend CodeIgniter: http://localhost:8082
- MySQL: localhost:3306
O container do MySQL carrega automaticamente o schema em database/schema.sql na primeira inicializacao do volume. Esse script cria as tabelas principais e insere dados basicos para campeonato, times, jogo e cliente.
Se precisar recriar tudo do zero, use docker compose down -v antes de subir novamente.
Depois que os containers estiverem ativos, crie o primeiro usuario admin com:
php spark db:seed AdminSeederSe as variaveis ADMIN_EMAIL e ADMIN_PASSWORD nao estiverem definidas, o seeder usa os padroes:
- Email:
admin@pimbastic.local - Senha:
admin123
As rotas do backend estao definidas em app/Config/Routes.php e incluem:
POST /auth/loginPOST /auth/registerPOST /auth/logoutGET /cliente/dashboardPOST /cliente/saldoPOST /apostasPUT /apostas/{id}DELETE /apostas/{id}GET /admin/dashboardGET /admin/jogos-recentes- CRUD de
campeonatos,times,jogoseusuarios - rotinas de
liquidacao
app/
frontend/
database/schema.sql
public/
compose.yaml
Dockerfile
README.md
- O backend usa
public/como document root. - O Apache do container
apptemmod_rewritehabilitado para as rotas do CodeIgniter. - O frontend e o backend compartilham a rede
app-networkdefinida no Compose. - O volume
db_datapersiste os dados do MySQL entre reinicios.
Para acompanhar logs dos servicos:
docker compose logs -f app
docker compose logs -f frontend
docker compose logs -f dbPara testar o banco inicializado, consulte as tabelas criadas pelo schema ou rode um SELECT no MySQL depois da subida dos containers.