Inicio rápido | Ejemplos | Características | La pila de Devilbox | Comunidad | Contribuyendo | Logotipos | Licencia
Devilbox es una pila Docker PHP de configuración cero versátil y altamente personalizable que admite LEMP y MEAN, así como Websockets, Node, Python y Golang a través de una integración automatizada de proxy inverso.
El objetivo principal es proporcionar un entorno de desarrollo reproducible que se ejecute en todas las plataformas principales y sea capaz de cambiar y combinar cualquier versión que necesite. Admite una cantidad ilimitada de proyectos para los cuales se crean automáticamente vhosts, certificados SSL y registros DNS. La interceptación de correo electrónico y las herramientas de desarrollo populares también estarán a su servicio. La configuración no es necesaria, ya que todo está preconfigurado.
Todos los proyectos creados (frontend o backend) podrán comunicarse entre sí para admitir la emulación de una arquitectura de microservicio completa o un panorama API.
Arquitecturas disponibles: amd64
, arm64
Versiones de PHP disponibles: 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
y Docker Compose
:Motor Docker 17.06.0+
Docker componer 1.16.0+
Esté listo y funcionando en 2 minutos.
Descarga la Devilbox
clon de git https://github.com/cytopia/devilbox
Ingrese al directorio git de Devilbox
cd caja del diablo
Copie el archivo de entorno predeterminado
cp env-ejemplo .env
Importante: asegúrese de que no haya nada escuchando en los puertos 80
y443
de su sistema host. Estos puertos son requeridos por el servidor web Devilbox.
Inicie el contenedor httpd
, php
y mysql
# Este paso puede tardar unos minutos según sea necesario# Las imágenes de Docker deben extraerse inicialmente.# Dentro del directorio git de Devilboxdocker-compose up httpd php mysql
Visita http://localhost en tu navegador
Descarga la Devilbox
clon de git https://github.com/cytopia/devilbox
Ingrese al directorio git de Devilbox
cd caja del diablo
Copie el archivo de entorno predeterminado
cp env-ejemplo .env
Importante: asegúrese de que no haya nada escuchando en los puertos 80
y443
de su sistema host. Estos puertos son requeridos por el servidor web Devilbox.
Inicie el contenedor httpd
, php
y mysql
# Este paso puede tardar unos minutos según sea necesario# Las imágenes de Docker deben extraerse inicialmente.# Dentro del directorio git de Devilboxdocker-compose up httpd php mysql
Visita http://localhost en tu navegador
WSL2
, consulte la guía de Linux. Clonar https://github.com/cytopia/devilbox
a C:devilbox
con Git para Windows
Copie C:devilboxenv-example
a C:devilbox.env
Importante: asegúrese de que no haya nada escuchando en los puertos 80
y443
de su sistema host. Estos puertos son requeridos por el servidor web Devilbox.
Abra una terminal en Windows e inicie el contenedor httpd
, php
y mysql
:
Inicie el contenedor httpd
, php
y mysql
# Este paso puede tardar unos minutos según sea necesario# Las imágenes de Docker deben extraerse inicialmente.# Dentro del directorio git de Devilboxdocker-compose up httpd php mysql
Visita http://localhost en tu navegador
Devilbox le permite trabajar en sus proyectos tanto en el sistema host como dentro del contenedor de trabajo. Los archivos de su proyecto estarán disponibles en ambas ubicaciones. El flujo de trabajo suele ser:
Utilice su IDE preferido (por ejemplo, PhpStorm) en su sistema host para agregar y modificar archivos
Trabaje dentro del contenedor para ejecutar herramientas cli comunes como node
, composer
, npm
, phpcs
, webpack
y muchas más.
Para ingresar al contenedor de trabajo, simplemente ejecute ./shell.sh
En Linux, MacOS y Windows con WSL2
# Dentro del directorio git de Devilbox./shell.sh
En Windows sin WSL2
# Dentro del directorio git de Devilbox./shell.bat
Crea tu primer proyecto:
Inicie el contenedor que necesita:
Docker-componer httpd php mysql
Ingrese al contenedor de trabajo:
./shell.sh
Vaya a /shared/httpd
:
cd /compartido/httpd
Crea tu directorio de proyectos
mkdir proyecto ficticio
Visita http://localhost/vhosts.php
Notarás que necesitas crear un directorio htdocs/
Crear directorio htdocs/
# Navega al directorio de tu proyectocd /shared/httpd/dummy-project# Crea htdocs dirmkdir htdocs
Visita http://localhost/vhosts.php
Verás que todo está configurado y tu proyecto está creado y disponible.
Crear un archivo index.php
# Navega al directorio htdocs de tu proyectocd /shared/httpd/dummy-project/htdocs# Crea un archivo index.php simpleecho '<?php echo "funciona";' > index.php
Vea su proyecto en el navegador: http://dummy-project.dvl.to
Encuentre todos los ejemplos en la documentación:
Devilbox intenta ser una pila de configuración cero lista para usar y ha automatizado todas las tareas aburridas. Además, proporciona características comunes necesarias para el trabajo diario.
AutomatizaciónAutomated Project creation Automated SSL Automated DNS Host permission sync | ModosStatic files PHP files Reverse Proxy Websockets | backendsPHP-FPM NodeJS Python Golang ... | PerfiladoBlackfire Xdebug XHProf |
ProyectosUnlimited Projects Inter-Project Communication Custom Project domains Valid browser HTTPS | intranetVirtual Hosts C&C Email Reader OpCache Gui | BateríasAdminer phpMyAdmin phpPgAdmin phpRedMind | ServiciosSQL NoSQL Cache ... |
Devilbox pretende ser una navaja suiza para el desarrollo local proporcionándole todos los servicios que pueda necesitar. Para tener una idea sobre la arquitectura detrás de esto y también ver lo que está disponible, eche un vistazo a sus componentes y uso.
Pila más pequeñaEsta es la pila más pequeña posible y completamente funcional que puedes ejecutar. | Pila completaPara comprender mejor lo que realmente es posible, eche un vistazo al ejemplo completo. |
Puede iniciar y operar Devilbox de tres maneras diferentes a través de docker-compose
:
Inicio selectivo
On Demand (agregar/eliminar contenedor mientras se ejecuta)
Inicio completo
Si ya sabe qué tipo de contenedor necesita antes de iniciar Devilbox, puede especificarlo explícitamente.
# Dentro del directorio git de Devilbox, inicie httpd php mysql y redisdocker: componga httpd php mysql redis
La Intranet le mostrará qué contenedor está ejecutando actualmente:
Si Devilbox ya está iniciado, puede conectar más contenedores sobre la marcha,
# Dentro del directorio git de Devilbox adjuntamos mongo y memcacheddocker-componemos mongo memcd
También puedes cerrar contenedores específicos que no necesitas.
# Dentro del directorio git de Devilbox cerrar redisdocker-compose detener redis
Si solo desea comenzar todo, ejecute docker-compose up
sin ningún argumento
# Dentro del directorio git de Devilbox, inícielos todos docker-compose up
La Intranet le mostrará qué contenedor está ejecutando actualmente:
Si prefieres una guía visual, echa un vistazo a los dos vídeos de introducción en Youtube:
Documentación: Instalar Devilbox | Iniciar la Devilbox | archivo .env
La siguiente tabla enumera todos los contenedores Docker integrados y preconfigurados enviados por Devilbox. Sólo el servidor web y el contenedor PHP son obligatorios, todos los demás son opcionales y no es necesario iniciarlos.
Cada uno de ellos también está disponible en múltiples versiones diferentes para reflejar exactamente el entorno deseado.
Acelerar | Web | Aplicación | SQL | No SQL | Cola / Búsqueda | ALCE | Utilidades |
---|---|---|---|---|---|---|---|
HAProxy | apache | PHP | mariadb | Memcached | ConejoMQ | Búsqueda elástica | Unir |
Barniz | nginx | Pitón (frasco) | mysql | MongoDB | solr | Logstash | fuego negro |
PerconaDB | Redis | kibana | CorreoHog | ||||
PostgreSQL | Ngrok |
Documentación: Contenedor Disponible
Cada contenedor acoplable viene con muchas versiones diferentes. Para seleccionar la versión deseada para un contenedor, simplemente edite el archivo .env
y descomente la versión de su elección. Cualquier combinación es posible.
apache | nginx | PHP | mysql | mariadb | Percona | PgSQL | Redis | Memcached | MongoDB |
---|---|---|---|---|---|---|---|---|---|
2.2 | estable | 5.2 [1] | 5.5 | 5.5 | 5.5 | 9.0 | 2.8 | 1.4 | 2.8 |
2.4 | chutarse | 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 | el último | 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 | el último | 5.0 | |||||
7.4 | 10.8 | 12 | el último | ||||||
8.0 | 10.9 | ... | |||||||
8.1 | 10.10 | 15 | |||||||
8.2 | el último |
Documentación: Cambiar versiones de contenedor
Además de la pila predeterminada, existe una variedad de otros servicios que se pueden habilitar e iniciar fácilmente.
Pitón (frasco) | fuego negro | ALCE | CorreoHog | Ngrok | ConejoMQ | solr | HAProxy | Barniz |
---|---|---|---|---|---|---|---|---|
2.7 | 1.8 | 5.xy | v1.0.0 | 2.x | 3.6 | 5 | 1.x | 4 |
... | ... | 6.xy | el último | 3.7 | 6 | 5 | ||
3.7 | 1.18.0 | 7.xy | el último | 7 | 6 | |||
3.8 | el último | el último | el último |
Documentación: Habilitar contenedor personalizado
Devilbox es una pila de desarrollo, por lo que se asegura que muchos módulos PHP estén disponibles listos para usar para trabajar con muchos marcos diferentes.
Núcleo habilitado (no se puede deshabilitar):
Habilitado (se puede deshabilitar):
Disponible, pero deshabilitado (se puede habilitar): 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 | |||||||||||||
bcmmatemáticas | |||||||||||||
fuego negro | d | d | d | d | d | d | d | ||||||
bz2 | |||||||||||||
calendario | |||||||||||||
tipo c | |||||||||||||
rizo | |||||||||||||
fecha | |||||||||||||
dba | |||||||||||||
dominación | |||||||||||||
encantar | |||||||||||||
ereg | |||||||||||||
exif | |||||||||||||
FFI | |||||||||||||
información de archivo | |||||||||||||
filtrar | |||||||||||||
ftp | |||||||||||||
dios | |||||||||||||
obtener texto | |||||||||||||
gmp | |||||||||||||
picadillo | |||||||||||||
iconov | |||||||||||||
igbinario | |||||||||||||
imaginario | |||||||||||||
mapa | |||||||||||||
interbase | |||||||||||||
internacional | |||||||||||||
cubo de iones | d | d | d | d | d | d | d | ||||||
json | |||||||||||||
ldap | |||||||||||||
libxml | |||||||||||||
lz4 | |||||||||||||
lzf | |||||||||||||
cadenamb | |||||||||||||
mcrypt | |||||||||||||
memcache | |||||||||||||
memcached | |||||||||||||
mhash | |||||||||||||
mongo | |||||||||||||
mongodb | |||||||||||||
paquete de mensajes | |||||||||||||
MySQL | |||||||||||||
mysqli | |||||||||||||
mysqlnd | |||||||||||||
OAuth | |||||||||||||
oci8 | d | d | d | d | d | d | d | d | d | d | d | d | |
OPcache | |||||||||||||
abresl | |||||||||||||
pcntl | |||||||||||||
pcre | |||||||||||||
DOP | |||||||||||||
pdo_dblib | |||||||||||||
PDO_pájaro de fuego | |||||||||||||
pdo_mysql | |||||||||||||
PDO_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ón | d | d | d | d | d | d | d | d | d | d | d | ||
far | |||||||||||||
posix | |||||||||||||
pspell | |||||||||||||
psr | d | d | d | d | d | d | d | d | d | d | d | ||
aleatorio | |||||||||||||
rdkafka | d | d | d | d | d | d | d | d | d | d | d | d | |
línea de lectura | |||||||||||||
recodificar | |||||||||||||
Redistribuir | |||||||||||||
Reflexión | |||||||||||||
sesión | |||||||||||||
smop | |||||||||||||
XML simple | |||||||||||||
SNMP | |||||||||||||
jabón | |||||||||||||
enchufes | |||||||||||||
sodio | |||||||||||||
Solr | |||||||||||||
SPL | |||||||||||||
sqlite | |||||||||||||
sqlite3 | |||||||||||||
sqlsrv | d | d | d | d | d | d | d | d | |||||
ssh2 | |||||||||||||
lana | d | d | d | d | d | d | d | d | d | d | d | ||
sistemavmsg | |||||||||||||
sistemavsem | |||||||||||||
sistemavshm | |||||||||||||
ordenado | |||||||||||||
tokenizador | |||||||||||||
progreso de carga | |||||||||||||
UUID | |||||||||||||
VIPS | |||||||||||||
wddx | |||||||||||||
xdebug | |||||||||||||
xhprof | d | d | d | d | d | d | d | d | |||||
escritorxls | |||||||||||||
XML | |||||||||||||
lector xml | |||||||||||||
xmlrpc | |||||||||||||
escritor xml | |||||||||||||
xsl | |||||||||||||
yaml | |||||||||||||
cremallera | |||||||||||||
zlib | |||||||||||||
zstd |
Núcleo habilitado (no se puede deshabilitar):
Habilitado (se puede deshabilitar):
Disponible, pero deshabilitado (se puede habilitar): d
Documentación: Activar/desactivar módulos PHP
Herramientas conocidas y populares estarán a su servicio:
Herramienta | 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 | |||||||||||||
impresionante-ci | |||||||||||||
codecepción | |||||||||||||
compositor | |||||||||||||
paquete central | |||||||||||||
implementador | |||||||||||||
eslint | |||||||||||||
git | |||||||||||||
flujo de git | |||||||||||||
gruñido-cli | |||||||||||||
trago | |||||||||||||
jq | |||||||||||||
jsonlint | |||||||||||||
instalador-laravel | |||||||||||||
laravel-lumen | |||||||||||||
verificación de enlace | |||||||||||||
mdl | |||||||||||||
mdlint | |||||||||||||
herramientas-mupdf | |||||||||||||
herramientas de red | |||||||||||||
nodo | |||||||||||||
mpn | |||||||||||||
nvm | |||||||||||||
phalcon-devtools | |||||||||||||
reparador de php-cs | |||||||||||||
phpcbf | |||||||||||||
php | |||||||||||||
phpmd | |||||||||||||
unidad php | |||||||||||||
pepita | |||||||||||||
pm2 | |||||||||||||
pwncat | |||||||||||||
sincronización | |||||||||||||
hablar con descaro a | |||||||||||||
chequeo de concha | |||||||||||||
ssh | |||||||||||||
estilolint | |||||||||||||
svn | |||||||||||||
Symfony-cli | |||||||||||||
archivo de tareas | |||||||||||||
tig | |||||||||||||
empuje | |||||||||||||
vue-cli | |||||||||||||
paquete web-cli | |||||||||||||
wkhtmltopdf | |||||||||||||
wp-cli | |||||||||||||
wscat | |||||||||||||
yamlint | |||||||||||||
hilo | |||||||||||||
y q | |||||||||||||
zsh |
Hasta donde se ha probado, no hay limitaciones y puede usar cualquier Framework o CMS tal como lo haría en su entorno en vivo. A continuación se muestran algunos ejemplos de marcos y CMS ampliamente probados:
Documentación:
Configurar CakePHP | Configurar CodeIgniter | Configurar contacto | Configurar CraftCMS | Configurar Drupal | Configurar Joomla | Configurar Laravel | Configurar Magento 2 | Configurar PhalconPHP | Configurar PhotonCMS | Configurar PrestaShop | Configurar ProcessWire | Configurar tienda | Configurar Symfony | Configurar Typo3 | Configurar WordPress | Configurar Yii | Configurar Zend
Hasta donde se ha probado, no hay limitaciones y puedes usar cualquier aplicación que cree un puerto abierto. El servidor web realizará un proxy inverso a estos puertos e incluso le permitirá utilizar HTTPS válido para ellos. Mediante la función de inicio automático incorporada de Devilbox, puede asegurarse de que su aplicación se inicie automáticamente tan pronto como ejecute docker-compose up
.
Documentación:
Configurar proxy inverso NodeJs | Configurar la documentación del proxy inverso Sphinx
Devilbox viene con una intranet preconfigurada en http://localhost
y https://localhost
. Esto se puede desactivar explícitamente o proteger con contraseña. La intranet no solo le mostrará la configuración elegida, sino que también validará el estado de la configuración actual, por ejemplo, si existen registros DNS (en el host y el contenedor) y si los directorios están configurados correctamente. Además, proporciona herramientas externas que le permiten interactuar con bases de datos y correos electrónicos.
Descripción general del host virtual (valida directorios y DNS)
Comando y control
Descripción general del correo electrónico
Descripción general de la base de datos (MySQL, PgSQL, Redis, Memcache, ...)
Páginas de información (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
Y muchos más...
Las siguientes baterías están disponibles en la intranet de Devilbox por defecto:
administrador | phpMyAdmin | phpPgAdmin | phpRedMin | Administrador PHP Memcached | GUI de OpCache | Visor de correo |
Documentación: Intranet de Devilbox
Algunos ejemplos de cómo se ve la intranet integrada.
Devilbox tiene muchas características que van desde un simple entorno de desarrollo para un solo usuario que funciona de inmediato hasta una infraestructura de desarrollo compartida para una red corporativa.
Para conocer todas esas funciones, asegúrese de haber leído la documentación para saber qué se puede hacer y cómo eso podría simplificar su vida diaria. Si alguna vez te encuentras con algún problema imprevisto, no dudes en unirte al chat de Discord o visitar los foros y obtener soporte de la comunidad rápidamente.
Documentos | Discordia | Foro | Llamas |
---|---|---|---|
devilbox.readthedocs.io | discordia/caja del diablo | grupo.discurso.devilbox | github.com/devilbox/flames |
Devilbox es todavía un proyecto joven con una larga hoja de ruta por delante. Las características las decide usted: la comunidad , por lo que cualquier tipo de contribución es bienvenida.
Destaca este proyecto
Abrir problemas para errores y solicitudes de funciones
Clona este proyecto y envía correcciones o funciones.
Intento mantenerme al día con literalmente más de 100 proyectos. Si mi trabajo te hace la vida más fácil, considera enviar café o cerveza.
Patrocinio de GitHub
Patreón
Contribuciones: PyPI:citopia · Terraform:citopia · Ansible:citopia
Los logotipos y pancartas se pueden encontrar en devilbox/artwork . Siéntase libre de usarlos o modificarlos según los términos de su licencia.
Licencia MIT
Copyright (c) 2016 citopia