Início rápido | Exemplos | Recursos | A pilha Devilbox | Comunidade | Contribuindo | Logotipos | Licença
O Devilbox é uma pilha PHP Docker versátil e altamente personalizável com suporte a LEMP e MEAN, bem como Websockets, Node, Python e Golang por meio de integração automatizada de proxy reverso.
O objetivo principal é fornecer um ambiente de desenvolvimento reproduzível que rode em todas as principais plataformas e seja capaz de alternar e combinar qualquer versão que você precisar. Suporta um número ilimitado de projetos para os quais vhosts, certificados SSL e registros DNS são criados automaticamente. A interceptação de e-mail e ferramentas de desenvolvimento populares também estarão à sua disposição. A configuração não é necessária, pois tudo já vem pré-configurado.
Todos os projetos criados (frontend ou backend) serão capazes de se comunicar entre si para suportar a emulação de uma arquitetura completa de microsserviços ou de um cenário de API.
Arquiteturas disponíveis: amd64
, arm64
Versões disponíveis do PHP: 5.2
, 5.3
, 5.4
, 5.5
, 5.6
, 7.0
, 7.1
, 7.2
, 7.3
, 7.4
, 8.0
, 8.1
, 8.2
Docker
e Docker Compose
:Motor Docker 17.06.0+
Docker Compose 1.16.0+
Esteja pronto e funcionando em 2 minutos.
Baixe o Devilbox
clone do git https://github.com/cytopia/devilbox
Entre no diretório git do Devilbox
cd caixa do diabo
Copie o arquivo de ambiente padrão
cp env-exemplo .env
Importante: Certifique-se de que nada esteja escutando nas portas 80
e443
do seu sistema host. Essas portas são exigidas pelo servidor web Devilbox.
Inicie o contêiner httpd
, php
e mysql
# Esta etapa pode levar alguns minutos, conforme necessário# As imagens do Docker devem ser extraídas inicialmente.# Dentro do diretório Devilbox gitdocker-compose up httpd php mysql
Visite http://localhost no seu navegador
Baixe o Devilbox
clone do git https://github.com/cytopia/devilbox
Entre no diretório git do Devilbox
cd caixa do diabo
Copie o arquivo de ambiente padrão
cp env-exemplo .env
Importante: Certifique-se de que nada esteja escutando nas portas 80
e443
do seu sistema host. Essas portas são exigidas pelo servidor web Devilbox.
Inicie o contêiner httpd
, php
e mysql
# Esta etapa pode levar alguns minutos, conforme necessário# As imagens do Docker devem ser extraídas inicialmente.# Dentro do diretório Devilbox gitdocker-compose up httpd php mysql
Visite http://localhost no seu navegador
WSL2
, consulte o guia do Linux. Clone https://github.com/cytopia/devilbox
para C:devilbox
com Git para Windows
Copie C:devilboxenv-example
para C:devilbox.env
Importante: Certifique-se de que nada esteja escutando nas portas 80
e443
do seu sistema host. Essas portas são exigidas pelo servidor web Devilbox.
Abra um terminal no Windows e inicie o contêiner httpd
, php
e mysql
:
Inicie o contêiner httpd
, php
e mysql
# Esta etapa pode levar alguns minutos, conforme necessário# As imagens do Docker devem ser extraídas inicialmente.# Dentro do diretório Devilbox gitdocker-compose up httpd php mysql
Visite http://localhost no seu navegador
O Devilbox permite que você trabalhe em seus projetos no sistema host e também dentro do contêiner de trabalho. Os arquivos do seu projeto estarão disponíveis em ambos os locais. O fluxo de trabalho geralmente é:
Use seu IDE preferido (por exemplo, PhpStorm) em seu sistema host para adicionar e alterar arquivos
Trabalhe dentro do contêiner para executar ferramentas CLI comuns, como node
, composer
, npm
, phpcs
, webpack
e muito mais.
Para entrar no contêiner de trabalho, basta executar ./shell.sh
No Linux, MacOS e Windows com WSL2
# Dentro do diretório git do Devilbox./shell.sh
No Windows sem WSL2
# Dentro do diretório git do Devilbox./shell.bat
Crie seu primeiro projeto:
Inicie o contêiner que você precisa:
docker-compose up httpd php mysql
Insira o contêiner de trabalho:
./shell.sh
Navegue para /shared/httpd
:
cd /compartilhado/httpd
Crie o diretório do seu projeto
projeto fictício mkdir
Visite http://localhost/vhosts.php
Você notará que precisa criar um diretório htdocs/
Crie o diretório htdocs/
# Navegue até o diretório do seu projetocd /shared/httpd/dummy-project# Crie htdocs dirmkdir htdocs
Visite http://localhost/vhosts.php
Você verá que agora tudo está configurado e seu projeto está criado e disponível
Crie um arquivo index.php
# Navegue até o diretório htdocs do seu projetocd /shared/httpd/dummy-project/htdocs# Crie um arquivo index.php simplesecho '<?php echo "it works";' > index.php
Visualize seu projeto no navegador: http://dummy-project.dvl.to
Encontre todos os exemplos na documentação:
O Devilbox tenta ser uma pilha de configuração zero pronta para uso e automatizou todas as tarefas chatas. Além disso, fornece recursos comuns necessários para o trabalho diário.
AutomaçãoAutomated Project creation Automated SSL Automated DNS Host permission sync | ModosStatic files PHP files Reverse Proxy Websockets | Back-endsPHP-FPM NodeJS Python Golang ... | PerfilBlackfire Xdebug XHProf |
ProjetosUnlimited Projects Inter-Project Communication Custom Project domains Valid browser HTTPS | IntranetVirtual Hosts C&C Email Reader OpCache Gui | BateriasAdminer phpMyAdmin phpPgAdmin phpRedMind | ServiçosSQL NoSQL Cache ... |
A Devilbox pretende ser um canivete suíço para o desenvolvimento local, fornecendo-lhe todos os serviços de que necessita. Para ter uma ideia da arquitetura por trás dele e também ver o que está disponível, dê uma olhada em seus componentes e uso.
Menor pilhaEsta é a menor pilha possível e totalmente funcional que você pode executar | Pilha completaPara entender melhor o que é realmente possível, dê uma olhada no exemplo completo |
Você pode inicializar e operar o Devilbox de três maneiras diferentes via docker-compose
:
Inicialização seletiva
On Demand (adicionar/remover contêiner durante a execução)
Inicialização completa
Se você já sabe que tipo de contêiner precisa antes de iniciar o Devilbox, basta especificá-los explicitamente.
# Dentro do diretório git do Devilbox, inicie httpd php mysql e redisdocker-compose up httpd php mysql redis
A intranet mostrará qual contêiner você está executando atualmente:
Se o Devilbox já estiver iniciado, você poderá anexar mais contêineres rapidamente,
# Dentro do diretório git do Devilbox anexe mongo e memcacheddocker-compose up mongo memcd
Você também pode encerrar contêineres específicos que não precisa
# Dentro do diretório git Devilbox shutdown redisdocker-compose stop redis
Se você quiser apenas iniciar tudo, execute docker-compose up
sem argumentos
# Dentro do diretório git do Devilbox inicie-os alldocker-compose up
A intranet mostrará qual contêiner você está executando atualmente:
Se preferir um guia visual, dê uma olhada nos dois vídeos de introdução no Youtube:
Documentação: Instale o Devilbox | Inicie o Devilbox | arquivo .env
A tabela a seguir lista todos os contêineres Docker integrados e pré-configurados enviados pela Devilbox. Apenas o servidor web e o container PHP são obrigatórios, todos os demais são opcionais e não precisam ser iniciados.
Cada um deles também está disponível em várias versões diferentes para refletir exatamente o ambiente desejado.
Aceleração | Rede | Aplicativo | SQL | NoSQL | Fila / Pesquisa | ALCE | Utilitários |
---|---|---|---|---|---|---|---|
HAProxy | Apache | PHP | MariaDB | Memcached | CoelhoMQ | ElasticSearch | Vincular |
Verniz | Nginx | Python (frasco) | MySQL | MongoDB | Sol | Logstash | Fogo Negro |
PerconaDB | Redis | Kibana | MailHog | ||||
PostgreSQL | Ngrok |
Documentação: Container Disponível
Cada contêiner acoplável vem com muitas versões diferentes. Para selecionar a versão desejada para um contêiner, basta editar o arquivo .env
e descomentar a versão desejada. Qualquer combinação é possível.
Apache | Nginx | PHP | MySQL | MariaDB | Percona | PgSQL | Redis | Memcached | MongoDB |
---|---|---|---|---|---|---|---|---|---|
2.2 | estável | 5.2 [1] | 5.5 | 5.5 | 5.5 | 9,0 | 2.8 | 1.4 | 2.8 |
2.4 | linha principal | 5.3 | 5.6 | 10,0 | 5.6 | 9.1 | 3,0 | 1,5 | 3,0 |
5.4 | 5.7 | 10.1 | 5.7 | 9.2 | 3.2 | 1.6 | 3.2 | ||
5.5 | 8,0 | 10.2 | 8,0 | 9.3 | 4,0 | mais recente | 3.4 | ||
5.6 | 10.3 | 9.4 | 5,0 | 3.6 | |||||
7,0 | 10.4 | 9,5 | 6,0 | 4,0 | |||||
7.1 | 10,5 | 9.6 | 6.2 | 4.2 | |||||
7.2 | 10.6 | 10 | 7,0 | 4.4 | |||||
7.3 | 10.7 | 11 | mais recente | 5,0 | |||||
7.4 | 10.8 | 12 | mais recente | ||||||
8,0 | 10.9 | ... | |||||||
8.1 | 10h10 | 15 | |||||||
8.2 | mais recente |
Documentação: Alterar versões do contêiner
Além da pilha padrão, há vários outros serviços que podem ser facilmente ativados e iniciados.
Python (frasco) | Fogo Negro | ALCE | MailHog | Ngrok | CoelhoMQ | Sol | HAProxy | Verniz |
---|---|---|---|---|---|---|---|---|
2.7 | 1,8 | 5.xy | v1.0.0 | 2.x | 3.6 | 5 | 1.x | 4 |
... | ... | 6.xy | mais recente | 3.7 | 6 | 5 | ||
3.7 | 1.18.0 | 7.xy | mais recente | 7 | 6 | |||
3.8 | mais recente | mais recente | mais recente |
Documentação: Habilitar contêiner personalizado
O Devilbox é uma pilha de desenvolvimento, por isso é garantido que muitos módulos PHP estejam disponíveis imediatamente para funcionar com muitos frameworks diferentes.
Núcleo habilitado (não pode ser desabilitado):
Ativado (pode ser desativado):
Disponível, mas desabilitado (pode ser habilitado): d
Módulos | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amqp | |||||||||||||
apc | |||||||||||||
apcu | |||||||||||||
matemática | |||||||||||||
fogo negro | d | d | d | d | d | d | d | ||||||
bz2 | |||||||||||||
calendário | |||||||||||||
ctype | |||||||||||||
enrolar | |||||||||||||
data | |||||||||||||
banco de dados | |||||||||||||
dom | |||||||||||||
encantar | |||||||||||||
ereg | |||||||||||||
exif | |||||||||||||
FFI | |||||||||||||
informações do arquivo | |||||||||||||
filtro | |||||||||||||
FTP | |||||||||||||
Deus | |||||||||||||
obter texto | |||||||||||||
GMP | |||||||||||||
hash | |||||||||||||
íconev | |||||||||||||
binário | |||||||||||||
imagem | |||||||||||||
imap | |||||||||||||
interbase | |||||||||||||
internacional | |||||||||||||
cubo de íons | d | d | d | d | d | d | d | ||||||
json | |||||||||||||
ldap | |||||||||||||
libxml | |||||||||||||
lz4 | |||||||||||||
lzf | |||||||||||||
mbstring | |||||||||||||
mcrypt | |||||||||||||
cache de memória | |||||||||||||
memcached | |||||||||||||
mhash | |||||||||||||
mongo | |||||||||||||
mongodb | |||||||||||||
pacote de mensagens | |||||||||||||
mysql | |||||||||||||
mysqli | |||||||||||||
mysqlnd | |||||||||||||
OAuth | |||||||||||||
oci8 | d | d | d | d | d | d | d | d | d | d | d | d | |
OPcache | |||||||||||||
abressl | |||||||||||||
pcntl | |||||||||||||
pcre | |||||||||||||
DOP | |||||||||||||
pdo_dblib | |||||||||||||
DOP_Firebird | |||||||||||||
pdo_mysql | |||||||||||||
DOP_OCI | d | d | d | d | d | d | d | d | |||||
pdo_pgsql | |||||||||||||
pdo_sqlite | |||||||||||||
pdo_sqlsrv | d | d | d | d | d | d | d | d | |||||
pgsql | |||||||||||||
falcão | d | d | d | d | d | d | d | d | d | d | d | ||
fara | |||||||||||||
posix | |||||||||||||
feitiço | |||||||||||||
psr | d | d | d | d | d | d | d | d | d | d | d | ||
aleatório | |||||||||||||
rdkafka | d | d | d | d | d | d | d | d | d | d | d | d | |
linha de leitura | |||||||||||||
recodificar | |||||||||||||
redis | |||||||||||||
Reflexão | |||||||||||||
sessão | |||||||||||||
shmop | |||||||||||||
SimpleXML | |||||||||||||
snmp | |||||||||||||
sabão | |||||||||||||
tomadas | |||||||||||||
sódio | |||||||||||||
sol | |||||||||||||
SPL | |||||||||||||
sqlite | |||||||||||||
sqlite3 | |||||||||||||
sqlsrv | d | d | d | d | d | d | d | d | |||||
ssh2 | |||||||||||||
desmaiar | d | d | d | d | d | d | d | d | d | d | d | ||
sysvmsg | |||||||||||||
sistema | |||||||||||||
sysvshm | |||||||||||||
limpo | |||||||||||||
tokenizador | |||||||||||||
uploadprogresso | |||||||||||||
uuid | |||||||||||||
VIP | |||||||||||||
wddx | |||||||||||||
Xdebug | |||||||||||||
xhprof | d | d | d | d | d | d | d | d | |||||
xlswriter | |||||||||||||
xml | |||||||||||||
leitor xml | |||||||||||||
xmlrpc | |||||||||||||
escritor xml | |||||||||||||
xsl | |||||||||||||
yaml | |||||||||||||
zip | |||||||||||||
zlib | |||||||||||||
zstd |
Núcleo habilitado (não pode ser desabilitado):
Ativado (pode ser desativado):
Disponível, mas desabilitado (pode ser habilitado): d
Documentação: Habilitar/desabilitar módulos PHP
Ferramentas conhecidas e populares estarão ao seu serviço:
Ferramenta | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
angular-cli | |||||||||||||
asgardcms | |||||||||||||
incrível-ci | |||||||||||||
codecepção | |||||||||||||
compositor | |||||||||||||
pacote principal | |||||||||||||
implantador | |||||||||||||
Eslint | |||||||||||||
idiota | |||||||||||||
fluxo git | |||||||||||||
grunhido-cli | |||||||||||||
gole | |||||||||||||
jq | |||||||||||||
jsonlint | |||||||||||||
instalador laravel | |||||||||||||
laravel-lúmen | |||||||||||||
verificação de link | |||||||||||||
mdl | |||||||||||||
mdlint | |||||||||||||
ferramentas mupdf | |||||||||||||
ferramentas de rede | |||||||||||||
nó | |||||||||||||
npm | |||||||||||||
nvm | |||||||||||||
phalcon-devtools | |||||||||||||
php-cs-fixador | |||||||||||||
phpcbf | |||||||||||||
phpcs | |||||||||||||
phpmd | |||||||||||||
phpunit | |||||||||||||
pip | |||||||||||||
pm2 | |||||||||||||
pwncat | |||||||||||||
sincronizar novamente | |||||||||||||
atrevimento | |||||||||||||
verificação de shell | |||||||||||||
ssh | |||||||||||||
estilolint | |||||||||||||
svn | |||||||||||||
symfony-cli | |||||||||||||
arquivo de tarefas | |||||||||||||
tig | |||||||||||||
vim | |||||||||||||
vue-cli | |||||||||||||
webpack-cli | |||||||||||||
wkhtmltopdf | |||||||||||||
wp-cli | |||||||||||||
wscat | |||||||||||||
yamllint | |||||||||||||
fio | |||||||||||||
sim | |||||||||||||
zsh |
Tanto quanto testado, não há limitações e você pode usar qualquer Framework ou CMS da mesma forma que faria em seu ambiente ativo. Abaixo estão alguns exemplos de Frameworks e CMS amplamente testados:
Documentação:
Configurar o CakePHP | Configurar o CodeIgniter | Configurar Contação | Configurar CraftCMS | Configurar o Drupal | Configurar Joomla | Configurar o Laravel | Configurar o Magento 2 | Configurar PhalconPHP | Configurar PhotonCMS | Configurar PrestaShop | Configurar ProcessWire | Configurar lojas | Configurar o Symfony | Configurar Typo3 | Configurar WordPress | Configurar o Yii | Configurar o Zend
Tanto quanto testado, não há limitações e você pode usar qualquer aplicativo que crie uma porta aberta. Essas portas terão proxy reverso do servidor web e até permitirão que você use HTTPS válido para elas. Pelo recurso de inicialização automática integrado do Devilbox, você pode garantir que seu aplicativo seja iniciado automaticamente assim que você executar docker-compose up
.
Documentação:
Configurar NodeJs de proxy reverso | Documentação do proxy reverso de configuração do Sphinx
O Devilbox vem com uma intranet pré-configurada em http://localhost
e https://localhost
. Isso pode ser explicitamente desabilitado ou protegido por senha. A intranet não só mostrará a configuração escolhida, mas também validará o status da configuração atual, como se existem registros DNS (no host e no contêiner), se os diretórios estão configurados corretamente. Além disso, fornece ferramentas externas para permitir que você interaja com bancos de dados e e-mails.
Visão geral do Host Virtual (valida diretórios e DNS)
Comando e Controle
Visão geral do e-mail
Visão geral do banco de dados (MySQL, PgSQL, Redis, Memcache, ...)
Páginas de informações (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
E muito mais...
As seguintes baterias estão disponíveis na intranet Devilbox por padrão:
Administrador | phpMyAdmin | phpPgAdmin | phpRedMin | Administrador PHP Memcached | GUI do OpCache | Visualizador de e-mail |
Documentação: Intranet Devilbox
Alguns exemplos de como é a intranet integrada.
O Devilbox tem muitos recursos que vão desde um ambiente de desenvolvimento simples de usuário único que funciona imediatamente até uma infraestrutura de desenvolvimento compartilhada para uma rede corporativa.
Para conhecer todos esses recursos, certifique-se de ter lido a documentação , para saber o que pode ser feito e como isso pode simplificar o seu dia a dia. Se você tiver algum problema imprevisto, sinta-se à vontade para entrar no bate-papo do Discord ou visitar os fóruns e obter suporte da comunidade rapidamente.
Documentos | Discórdia | Fórum | Chamas |
---|---|---|---|
devilbox.readthedocs.io | discórdia/devilbox | devilbox.discourse.group | github.com/devilbox/flames |
O Devilbox ainda é um projeto jovem com um longo roteiro pela frente. Os recursos são decididos por você - a comunidade , portanto, qualquer tipo de contribuição é bem-vinda.
Estrelar este projeto
Abra problemas para bugs e solicitações de recursos
Clone este projeto e envie correções ou recursos
Tento acompanhar literalmente mais de 100 projetos. Se meu trabalho está facilitando sua vida, considere enviar café ou cerveja.
Patrocínio do GitHub
Patreon
Contribuições: PyPI: citopia · Terraform: citopia · Ansible: citopia
Logotipos e banners podem ser encontrados em devilbox/artwork . Sinta-se à vontade para usá-los ou modificá-los de acordo com os termos de sua licença.
Licença MIT
Copyright (c) citópia 2016