Interface web customizável para gerenciamento de containers Docker através da API do Portainer, com suporte a multi-tenancy e autenticação LDAP.
- 🚀 Gerenciamento de Stacks: Deploy e controle de stacks Docker
- 🔐 Autenticação LDAP: Integração com Active Directory/LDAP
- 🌐 Multi-servidor: Suporte a múltiplos servidores Portainer
- 📋 Templates: Sistema de templates para deploy rápido
- 🏢 SaaS Ready: Funcionalidades multi-tenant integradas
- 🎯 Gerenciamento de Domínios: Controle de domínios por projeto
- PHP >= 7.1.3
- Composer
- SQLite/MySQL/PostgreSQL
- Docker (opcional para deployment)
- Servidor Portainer configurado
git clone https://github.com/marcelofmatos/leegui.git
cd leeguicomposer install
npm install && npm run devcp .env.example .env
php artisan key:generatetouch database/database.sqlite
php artisan migrateNo arquivo .env, configure as variáveis LDAP:
LDAP_USERNAME="cn=admin,dc=example,dc=com"
LDAP_PASSWORD="password"
LDAP_HOSTS=ldap.example.com
LDAP_PORT=389
LDAP_BASE_DN="dc=example,dc=com"php artisan servedocker build -t leegui:latest .docker-compose up -dUse o arquivo docker-compose-multiple-servers.yml para deploy em múltiplos servidores:
docker-compose -f docker-compose-multiple-servers.yml up -d- Acesse
/portainer_server - Configure URL e credenciais do servidor Portainer
- Teste a conexão
- Acesse
/template - Defina templates de stacks reutilizáveis
- Configure variáveis de ambiente padrão
- Acesse
/saas/create - Selecione servidor e template
- Configure domínio e variáveis
- Acompanhe o status do deployment
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /portainer_server |
Lista servidores |
| POST | /portainer_server |
Adiciona servidor |
| GET | /portainer_server/{id}/stacks |
Lista stacks do servidor |
| DELETE | /portainer_server/{id}/stack/{stack_id} |
Remove stack |
| GET | /saas/status/{server}/{stack} |
Status do deployment |
| GET | /saas/check/{domain} |
Valida disponibilidade do domínio |
leegui/
├── app/
│ ├── Http/
│ │ └── Controllers/
│ │ ├── DomainController.php
│ │ ├── PortainerServerController.php
│ │ ├── ProjectController.php
│ │ ├── StackController.php
│ │ └── TemplateController.php
│ └── Models/
├── config/
├── database/
├── public/
├── resources/
├── routes/
└── docker-compose.yml
Para produção, use a configuração Nginx incluída:
cp nginx/default.conf /etc/nginx/sites-available/leegui.confConfigure SSL no .env:
APP_ENV=prod
APP_URL=https://seu-dominio.comDesative registro público em routes/web.php se necessário.
- Fork o projeto
- Crie sua feature branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Crie um Pull Request
- Verifique se a API do Portainer está acessível
- Confirme credenciais no banco de dados
- Teste conectividade:
curl http://portainer-server:9000/api/auth
- Verifique configurações no
.env - Teste conexão:
php artisan ldap:test - Confirme base DN e filtros de busca
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cacheEste projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
Marcelo F. Matos
- GitHub: @marcelofmatos