Démarrage rapide | Exemples | Caractéristiques | La pile Devilbox | Communauté | Contribuer | Logos | Licence
La Devilbox est une pile Docker PHP sans configuration polyvalente et hautement personnalisable prenant en charge LEMP et MEAN ainsi que Websockets, Node, Python et Golang via une intégration automatisée de proxy inverse.
L'objectif principal est de fournir un environnement de développement reproductible qui fonctionne sur toutes les principales plates-formes et qui est capable de basculer et de combiner n'importe quelle version dont vous avez besoin. Il prend en charge un nombre illimité de projets pour lesquels des vhosts, des certificats SSL et des enregistrements DNS sont créés automatiquement. L'interception des e-mails et les outils de développement populaires seront également à votre service. Aucune configuration n’est nécessaire puisque tout est déjà préconfiguré.
Tous les projets créés (frontend ou backend) pourront communiquer entre eux pour prendre en charge l'émulation d'une architecture microservice complète ou d'un paysage API.
Architectures disponibles : amd64
, arm64
Versions 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
et Docker Compose
:Moteur Docker 17.06.0+
Docker Composer 1.16.0+
Soyez opérationnel en 2 minutes.
Téléchargez la Devilbox
git clone https://github.com/cytopia/devilbox
Entrez dans le répertoire git de Devilbox
cd boîte du diable
Copiez le fichier d'environnement par défaut
cp env-exemple .env
Important : assurez-vous que rien n'écoute sur les ports 80
et443
de votre système hôte. Ces ports sont requis par le serveur Web Devilbox.
Démarrez le conteneur httpd
, php
et mysql
# Cette étape peut prendre quelques minutes si nécessaire# Les images Docker doivent être extraites initialement.# Dans le répertoire git de Devilboxdocker-compose up httpd php mysql
Visitez http://localhost dans votre navigateur
Téléchargez la Devilbox
git clone https://github.com/cytopia/devilbox
Entrez dans le répertoire git de Devilbox
cd boîte du diable
Copiez le fichier d'environnement par défaut
cp env-exemple .env
Important : assurez-vous que rien n'écoute sur les ports 80
et443
de votre système hôte. Ces ports sont requis par le serveur Web Devilbox.
Démarrez le conteneur httpd
, php
et mysql
# Cette étape peut prendre quelques minutes si nécessaire# Les images Docker doivent être extraites initialement.# Dans le répertoire git de Devilboxdocker-compose up httpd php mysql
Visitez http://localhost dans votre navigateur
WSL2
, reportez-vous plutôt au guide Linux. Cloner https://github.com/cytopia/devilbox
vers C:devilbox
avec Git pour Windows
Copier C:devilboxenv-example
dans C:devilbox.env
Important : assurez-vous que rien n'écoute sur les ports 80
et443
de votre système hôte. Ces ports sont requis par le serveur Web Devilbox.
Ouvrez un terminal sous Windows et démarrez les conteneurs httpd
, php
et mysql
:
Démarrez le conteneur httpd
, php
et mysql
# Cette étape peut prendre quelques minutes si nécessaire# Les images Docker doivent être extraites initialement.# Dans le répertoire git de Devilboxdocker-compose up httpd php mysql
Visitez http://localhost dans votre navigateur
La Devilbox vous permet de travailler sur vos projets sur le système hôte ainsi qu'à l'intérieur du conteneur de travail. Vos fichiers de projet seront disponibles aux deux endroits. Le flux de travail est généralement :
Utilisez votre IDE préféré (par exemple PhpStorm) sur votre système hôte pour ajouter et modifier des fichiers
Travaillez à l'intérieur du conteneur pour exécuter des outils cli courants tels que node
, composer
, npm
, phpcs
, webpack
et bien d'autres.
Pour accéder au conteneur de travail, exécutez simplement ./shell.sh
Sous Linux, MacOS et Windows avec WSL2
# Dans le répertoire git de Devilbox./shell.sh
Sous Windows sans WSL2
# Dans le répertoire git de Devilbox./shell.bat
Créez votre premier projet :
Démarrez le conteneur dont vous avez besoin :
docker-compose up httpd php mysql
Entrez le conteneur de travail :
./shell.sh
Accédez à /shared/httpd
:
cd /partagé/httpd
Créez votre répertoire de projet
projet factice mkdir
Visitez http://localhost/vhosts.php
Vous remarquerez que vous devez créer un répertoire htdocs/
Créer le répertoire htdocs/
# Accédez au répertoire de votre projet cd /shared/httpd/dummy-project# Créez des htdocs dirmkdir htdocs
Visitez http://localhost/vhosts.php
Vous verrez que tout est maintenant configuré et que votre projet est créé et disponible
Créer un fichier index.php
# Accédez au répertoire htdocs de votre projetcd /shared/httpd/dummy-project/htdocs# Créez un simple fichier index.phpecho '<?php echo "ça marche";' > index.php
Visualisez votre projet dans le navigateur : http://dummy-project.dvl.to
Retrouvez tous les exemples dans la documentation :
La Devilbox essaie d'être une pile sans configuration prête à l'emploi et a automatisé toutes les tâches ennuyeuses. De plus, il fournit des fonctionnalités communes requises pour le travail quotidien.
AutomationAutomated Project creation Automated SSL Automated DNS Host permission sync | ModesStatic files PHP files Reverse Proxy Websockets | Back-endsPHP-FPM NodeJS Python Golang ... | ProfilageBlackfire Xdebug XHProf |
ProjetsUnlimited Projects Inter-Project Communication Custom Project domains Valid browser HTTPS | IntranetVirtual Hosts C&C Email Reader OpCache Gui | PilesAdminer phpMyAdmin phpPgAdmin phpRedMind | ServicesSQL NoSQL Cache ... |
La Devilbox se veut un couteau suisse pour le développement local en vous fournissant tous les services dont vous auriez besoin. Pour avoir une idée de l'architecture qui se cache derrière et pour voir également ce qui est disponible, jetez un œil à ses composants et à son utilisation.
La plus petite pileIl s'agit de la pile la plus petite possible et entièrement fonctionnelle que vous puissiez exécuter | Pile complètePour mieux comprendre ce qui est réellement possible, jetez un œil à l’exemple complet |
Vous pouvez démarrer et faire fonctionner la Devilbox de trois manières différentes via docker-compose
:
Démarrage sélectif
À la demande (ajouter/supprimer un conteneur pendant l'exécution)
Démarrage complet
Si vous savez déjà de quel type de conteneur vous avez besoin avant de démarrer la Devilbox, vous pouvez simplement les spécifier explicitement.
# Dans le répertoire git de Devilbox, démarrez httpd php mysql et redisdocker-compose up httpd php mysql redis
L'intranet vous montrera quel conteneur vous exécutez actuellement :
Si la Devilbox est déjà démarrée, vous pouvez attacher plus de conteneurs à la volée,
# Dans le répertoire git de Devilbox, attachez mongo et memcacheddocker-compose up mongo memcd
Vous pouvez également fermer des conteneurs spécifiques dont vous n'avez pas besoin
# Dans le répertoire git de Devilbox, shutdown redisdocker-compose stop redis
Si vous voulez juste tout démarrer, exécutez docker-compose up
sans aucun argument
# Dans le répertoire git de Devilbox, démarrez-les alldocker-compose up
L'intranet vous montrera quel conteneur vous exécutez actuellement :
Si vous préférez un guide visuel, jetez un œil aux deux vidéos d’introduction sur Youtube :
Documentation : Installer la Devilbox | Démarrez la Devilbox | fichier .env
Le tableau suivant répertorie tous les conteneurs Docker intégrés et préconfigurés expédiés par Devilbox. Seuls le serveur web et le conteneur PHP sont obligatoires, tous les autres sont facultatifs et n'ont pas besoin d'être démarrés.
Chacun d’eux est également disponible en plusieurs versions différentes afin de refléter exactement l’environnement souhaité.
Accélérer | Internet | Application | SQL | NoSQL | File d'attente / Recherche | WAPITI | Utilitaires |
---|---|---|---|---|---|---|---|
HAProxy | Apache | PHP | MariaDB | Memcaché | LapinMQ | Recherche élastique | Lier |
Vernis | Nginx | Python (flacon) | MySQL | MongoDB | Solr | Cache-journaux | Feu noir |
PerconaDB | Rédis | Kibana | MailHog | ||||
PostgreSQL | Ngrok |
Documentation : Conteneur disponible
Chaque conteneur amovible est disponible dans de nombreuses versions différentes. Afin de sélectionner la version souhaitée pour un conteneur, éditez simplement le fichier .env
et décommentez la version de votre choix. Toute combinaison est possible.
Apache | Nginx | PHP | MySQL | MariaDB | Percona | PgSQL | Rédis | Memcaché | MongoDB |
---|---|---|---|---|---|---|---|---|---|
2.2 | écurie | 5.2 [1] | 5.5 | 5.5 | 5.5 | 9.0 | 2.8 | 1.4 | 2.8 |
2.4 | ligne principale | 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 | dernier | 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 | dernier | 5.0 | |||||
7.4 | 10.8 | 12 | dernier | ||||||
8.0 | 10.9 | ... | |||||||
8.1 | 10h10 | 15 | |||||||
8.2 | dernier |
Documentation : Modifier les versions du conteneur
En plus de la pile par défaut, il existe une variété d'autres services qui peuvent être facilement activés et démarrés.
Python (flacon) | Feu noir | WAPITI | MailHog | Ngrok | LapinMQ | Solr | HAProxy | Vernis |
---|---|---|---|---|---|---|---|---|
2.7 | 1.8 | 5.xy | v1.0.0 | 2.x | 3.6 | 5 | 1.x | 4 |
... | ... | 6.xy | dernier | 3.7 | 6 | 5 | ||
3.7 | 1.18.0 | 7.xy | dernier | 7 | 6 | |||
3.8 | dernier | dernier | dernier |
Documentation : Activer le conteneur personnalisé
La Devilbox est une pile de développement, elle garantit donc que de nombreux modules PHP sont disponibles immédiatement afin de fonctionner avec de nombreux frameworks différents.
Core activé (ne peut pas être désactivé) :
Activé (peut être désactivé) :
Disponible, mais désactivé (peut être activé) : d
Modules | PHP5.2 | PHP5.3 | PHP5.4 | PHP5.5 | PHP5.6 | PHP7.0 | PHP7.1 | PHP7.2 | PHP7.3 | PHP7.4 | PHP8.0 | PHP8.1 | PHP8.2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amqp | |||||||||||||
APC | |||||||||||||
apcu | |||||||||||||
bcmath | |||||||||||||
feu noir | d | d | d | d | d | d | d | ||||||
bz2 | |||||||||||||
calendrier | |||||||||||||
typec | |||||||||||||
boucle | |||||||||||||
date | |||||||||||||
dba | |||||||||||||
dom | |||||||||||||
enchanter | |||||||||||||
ereg | |||||||||||||
exif | |||||||||||||
FFI | |||||||||||||
informations sur le fichier | |||||||||||||
filtre | |||||||||||||
FTP | |||||||||||||
dieu | |||||||||||||
obtenir du texte | |||||||||||||
gmp | |||||||||||||
hacher | |||||||||||||
icônev | |||||||||||||
igbinaire | |||||||||||||
imagick | |||||||||||||
imap | |||||||||||||
interbase | |||||||||||||
international | |||||||||||||
ioncube | d | d | d | d | d | d | d | ||||||
json | |||||||||||||
ldap | |||||||||||||
libxml | |||||||||||||
lz4 | |||||||||||||
lzf | |||||||||||||
chaînemb | |||||||||||||
mcrypt | |||||||||||||
cache mémoire | |||||||||||||
memcaché | |||||||||||||
mhash | |||||||||||||
mongo | |||||||||||||
mongodb | |||||||||||||
pack de messages | |||||||||||||
mysql | |||||||||||||
mysqli | |||||||||||||
mysqlnd | |||||||||||||
OAuth | |||||||||||||
oci8 | d | d | d | d | d | d | d | d | d | d | d | d | |
OPcache | |||||||||||||
ouvressl | |||||||||||||
pcntl | |||||||||||||
PCRE | |||||||||||||
AOP | |||||||||||||
pdo_dblib | |||||||||||||
PDO_Firebird | |||||||||||||
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 | |||||||||||||
faucon | d | d | d | d | d | d | d | d | d | d | d | ||
Phar | |||||||||||||
posix | |||||||||||||
pspell | |||||||||||||
psr | d | d | d | d | d | d | d | d | d | d | d | ||
aléatoire | |||||||||||||
rdkafka | d | d | d | d | d | d | d | d | d | d | d | d | |
lire la ligne | |||||||||||||
recoder | |||||||||||||
redis | |||||||||||||
Réflexion | |||||||||||||
session | |||||||||||||
shmop | |||||||||||||
SimpleXML | |||||||||||||
snmp | |||||||||||||
savon | |||||||||||||
prises | |||||||||||||
sodium | |||||||||||||
solr | |||||||||||||
SPL | |||||||||||||
SQLite | |||||||||||||
sqlite3 | |||||||||||||
sqlsrv | d | d | d | d | d | d | d | d | |||||
ssh2 | |||||||||||||
laine | d | d | d | d | d | d | d | d | d | d | d | ||
sysvmsg | |||||||||||||
système | |||||||||||||
système | |||||||||||||
rangé | |||||||||||||
tokeniseur | |||||||||||||
progression du téléchargement | |||||||||||||
uuide | |||||||||||||
VIP | |||||||||||||
wddx | |||||||||||||
Xdebug | |||||||||||||
xhprof | d | d | d | d | d | d | d | d | |||||
xlswriter | |||||||||||||
XML | |||||||||||||
lecteur XML | |||||||||||||
xmlrpc | |||||||||||||
écrivain xml | |||||||||||||
xsl | |||||||||||||
yaml | |||||||||||||
fermeture éclair | |||||||||||||
zlib | |||||||||||||
zstd |
Core activé (ne peut pas être désactivé) :
Activé (peut être désactivé) :
Disponible, mais désactivé (peut être activé) : d
Documentation : Activer/désactiver les modules PHP
Des outils connus et appréciés seront à votre service :
Outil | PHP5.2 | PHP5.3 | PHP5.4 | PHP5.5 | PHP5.6 | PHP7.0 | PHP7.1 | PHP7.2 | PHP7.3 | PHP7.4 | PHP8.0 | PHP8.1 | PHP8.2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
angulaire-cli | |||||||||||||
asgardcms | |||||||||||||
génial-ci | |||||||||||||
codeception | |||||||||||||
compositeur | |||||||||||||
pack de base | |||||||||||||
déployeur | |||||||||||||
eslint | |||||||||||||
git | |||||||||||||
git-flow | |||||||||||||
grognement-cli | |||||||||||||
gorgée | |||||||||||||
jq | |||||||||||||
jsonlint | |||||||||||||
installateur laravel | |||||||||||||
laravel-lumen | |||||||||||||
vérification des liens | |||||||||||||
mdl | |||||||||||||
mdlint | |||||||||||||
outils mupdf | |||||||||||||
outils réseau | |||||||||||||
nœud | |||||||||||||
npm | |||||||||||||
nvm | |||||||||||||
phalcon-devtools | |||||||||||||
php-cs-fixateur | |||||||||||||
phppcbf | |||||||||||||
phpcs | |||||||||||||
phpmd | |||||||||||||
unité php | |||||||||||||
pépin | |||||||||||||
pm2 | |||||||||||||
pwncat | |||||||||||||
rsync | |||||||||||||
toupet | |||||||||||||
contrôle de coquille | |||||||||||||
chut | |||||||||||||
stylelint | |||||||||||||
svn | |||||||||||||
symfony-cli | |||||||||||||
fichier de tâches | |||||||||||||
tig | |||||||||||||
vim | |||||||||||||
vue-cli | |||||||||||||
webpack-cli | |||||||||||||
wkhtmltopdf | |||||||||||||
wp-cli | |||||||||||||
wscat | |||||||||||||
yamlint | |||||||||||||
fil | |||||||||||||
oui | |||||||||||||
zsh |
Dans la mesure où il a été testé, il n'y a aucune limitation et vous pouvez utiliser n'importe quel framework ou CMS comme vous le feriez sur votre environnement réel. Vous trouverez ci-dessous quelques exemples de frameworks et de CMS largement testés :
Documentation:
Configurer CakePHP | Configurer CodeIgniter | Configurer Contao | Configurer CraftCMS | Configurer Drupal | Configurer Joomla | Configurer Laravel | Configurer Magento 2 | Configurer PhalconPHP | Configurer PhotonCMS | Configurer PrestaShop | Configurer ProcessWire | Configuration du logiciel de vente | Configurer Symfony | Configuration Typo3 | Configurer WordPress | Configurer Yii | Configurer Zend
Dans la mesure où cela a été testé, il n'y a aucune limitation et vous pouvez utiliser n'importe quelle application qui crée un port ouvert. Ces ports seront proxy inverses par le serveur Web et vous permettront même d'utiliser un HTTPS valide pour eux. Grâce à la fonction de démarrage automatique intégrée de Devilbox, vous pouvez vous assurer que votre application démarre automatiquement dès que vous exécutez docker-compose up
.
Documentation:
Configurer le proxy inverse NodeJs | Configuration de la documentation du proxy inverse Sphinx
La Devilbox est livrée avec un intranet préconfiguré sur http://localhost
et https://localhost
. Cela peut être explicitement désactivé ou protégé par mot de passe. L'intranet vous montrera non seulement la configuration choisie, mais validera également l'état de la configuration actuelle, par exemple si des enregistrements DNS existent (sur l'hôte et le conteneur), si des répertoires sont correctement configurés. De plus, il fournit des outils externes pour vous permettre d'interagir avec les bases de données et les e-mails.
Présentation de l'hôte virtuel (valide les répertoires et DNS)
Commandement et contrôle
Aperçu des e-mails
Aperçu des bases de données (MySQL, PgSQL, Redis, Memcache, ...)
Pages d'informations (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
Et bien d'autres encore...
Les batteries suivantes sont disponibles par défaut dans l'intranet Devilbox :
Administrateur | phpMonAdmin | phpPgAdmin | phpRedMin | Administrateur PHP Memcached | Interface graphique OpCache | Visionneuse de courrier |
Documentation : Intranet Devilbox
Quelques exemples de ce à quoi ressemble l'intranet intégré.
La Devilbox possède de nombreuses fonctionnalités allant d'un simple environnement de développement mono-utilisateur qui fonctionne immédiatement à une infrastructure de développement partagée pour un réseau d'entreprise.
Afin de connaître toutes ces fonctionnalités, assurez-vous d'avoir parcouru la documentation afin de savoir ce qui peut être fait et comment cela pourrait simplifier votre vie de tous les jours. Si jamais vous rencontrez des problèmes imprévus, n'hésitez pas à rejoindre le chat Discord ou à visiter les forums et à obtenir rapidement l'assistance de la communauté.
Documents | Discorde | Forum | Flammes |
---|---|---|---|
devilbox.readthedocs.io | discorde/boîte du diable | devilbox.discourse.group | github.com/devilbox/flames |
La Devilbox est encore un jeune projet avec une longue feuille de route à venir. Les fonctionnalités sont décidées par vous - la communauté , donc tout type de contribution est la bienvenue.
Star ce projet
Ouvrir des problèmes pour les bugs et les demandes de fonctionnalités
Clonez ce projet et soumettez des correctifs ou des fonctionnalités
J'essaie de suivre littéralement plus de 100 projets. Si mon travail vous facilite la vie, pensez à envoyer du café ou de la bière.
Parrainage GitHub
Patréon
Contributions : PyPI : cytopia · Terraform : cytopia · Ansible : cytopia
Les logos et bannières peuvent être trouvés sur devilbox/artwork . N'hésitez pas à les utiliser ou à les modifier selon les termes de leur licence.
Licence MIT
Copyright (c) 2016 Cytopie