
Быстрый старт | Примеры | Особенности | Стек Devilbox | Сообщество | Содействие | Логотипы | Лицензия

Devilbox — это универсальный и легко настраиваемый стек PHP Docker с нулевой конфигурацией, поддерживающий LEMP и MEAN, а также Websockets, Node, Python и Golang посредством автоматической интеграции обратного прокси.
Основная цель — предоставить воспроизводимую среду разработки, которая работает на всех основных платформах и способна переключаться и комбинировать любую необходимую вам версию. Он поддерживает неограниченное количество проектов, для которых виртуальные хосты, сертификаты SSL и записи DNS создаются автоматически. Перехват электронной почты и популярные инструменты разработки также будут к вашим услугам. Настройка не требуется, так как все уже настроено.
Все созданные проекты (интерфейсные или серверные) смогут взаимодействовать друг с другом для поддержки эмуляции полной микросервисной архитектуры или среды API.
Доступные архитектуры: amd64 , arm64
Доступные версии 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 и Docker Compose :Докер-движок 17.06.0+
Docker Compose 1.16.0+
Будьте готовы к работе за 2 минуты.
Загрузите Дьяволбокс
git-клон https://github.com/cytopia/devilbox
Войдите в каталог git Devilbox.
компакт-диск дьяволбокс
Скопируйте файл среды по умолчанию
cp env-пример .env
Важно: Убедитесь, что порты 80и443вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Запустите контейнер httpd , php и mysql
# Этот шаг может занять несколько минут, если необходимо # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
Загрузите Дьяволбокс
git-клон https://github.com/cytopia/devilbox
Войдите в каталог git Devilbox.
компакт-диск дьяволбокс
Скопируйте файл среды по умолчанию
cp env-пример .env
Важно: Убедитесь, что порты 80и443вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Запустите контейнер httpd , php и mysql
# Этот шаг может занять несколько минут, если необходимо # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
WSL2 , обратитесь к руководству по Linux. Клонируйте https://github.com/cytopia/devilbox в C:devilbox с помощью Git для Windows.
Скопируйте C:devilboxenv-example в C:devilbox.env
Важно: Убедитесь, что порты 80и443вашей хост-системы не прослушиваются. Эти порты необходимы веб-серверу Devilbox.
Откройте терминал в Windows и запустите контейнер httpd , php и mysql :
Запустите контейнер httpd , php и mysql
# При необходимости этот шаг может занять несколько минут # Первоначально необходимо загрузить образы Docker. # Внутри Devilbox gitdirectorydocker-compose up httpd php mysql
Посетите http://localhost в своем браузере.
Devilbox позволяет вам работать над проектами как в хост-системе, так и внутри рабочего контейнера. Файлы вашего проекта будут доступны в обоих местах. Рабочий процесс обычно следующий:
Используйте предпочитаемую вами IDE (например, PhpStorm) в вашей хост-системе для добавления и изменения файлов.
Работайте внутри контейнера, чтобы запускать общие инструменты командной строки, такие как node , composer , npm , phpcs , webpack и многие другие.
Чтобы войти в рабочий контейнер, просто запустите ./shell.sh
В Linux, MacOS и Windows с WSL2
# Внутри каталога git Devilbox./shell.sh
В Windows без WSL2
# Внутри каталога git Devilbox./shell.bat
Создайте свой первый проект:
Запустите нужный вам контейнер:
docker-compose up httpd php mysql
Введите рабочий контейнер:
./shell.sh
Перейдите в /shared/httpd :
компакт-диск /shared/httpd
Создайте каталог своего проекта
mkdir dummy-проект
Посетите http://localhost/vhosts.php.
Вы заметите, что вам нужно создать каталог htdocs/
Создать каталог htdocs/
# Перейдите в каталог вашего проектаcd /shared/httpd/dummy-project# Создайте htdocs dirmkdir htdocs
Посетите http://localhost/vhosts.php.
Вы увидите, что теперь все настроено, ваш проект создан и доступен.
Создайте файл index.php
# Перейдите в каталог htdocs вашего проектаcd /shared/httpd/dummy-project/htdocs# Создайте простой файл index.php fileecho '<?php echo "itworks";' > индекс.php
Просмотрите свой проект в браузере: http://dummy-project.dvl.to
Найдите все примеры в документации:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Devilbox пытается быть готовым к использованию стеком с нулевой конфигурацией и автоматизирует все скучные задачи. Кроме того, он предоставляет общие функции, необходимые для повседневной работы.
АвтоматизацияAutomated Project creationAutomated SSLAutomated DNSHost permission sync | РежимыStatic filesPHP filesReverse ProxyWebsockets | Серверные частиPHP-FPMNodeJSPythonGolang... | ПрофилированиеBlackfireXdebugXHProf |
ПроектыUnlimited ProjectsInter-Project CommunicationCustom Project domainsValid browser HTTPS | ИнтранетVirtual HostsC&CEmail ReaderOpCache Gui | БатареиAdminerphpMyAdminphpPgAdminphpRedMind | УслугиSQLNoSQLCache... |
Devilbox стремится стать швейцарским армейским ножом для местного развития, предоставляя вам все услуги, которые вам когда-либо могут понадобиться. Чтобы получить представление об архитектуре, лежащей в его основе, а также увидеть, что доступно, взгляните на его компоненты и использование.
Самый маленький стекЭто минимально возможный и полнофункциональный стек, который вы можете запустить. | Полный стекЧтобы лучше понять, что на самом деле возможно, взгляните на полный пример. |
Вы можете запускать и использовать Devilbox тремя разными способами через docker-compose :
Выборочный запуск
По требованию (добавление/удаление контейнера во время работы)
Полный запуск
Если вы уже знаете, какой контейнер вам нужен перед запуском Devilbox, вы можете просто указать его явно.
# Внутри каталога git Devilbox запустите httpd php mysql и redisdocker-compose up httpd php mysql redis
Интранет покажет вам, какой контейнер у вас запущен в данный момент:

Если Devilbox уже запущен, вы можете подключить дополнительные контейнеры на лету.
# Внутри каталога git Devilbox прикрепите mongo и memcacheddocker-compose up mongo memcd
Вы также можете закрыть определенные контейнеры, которые вам не нужны.
# Внутри каталога Devilbox git выключение redisdocker-compose stop redis
Если вы просто хотите все запустить, запустите docker-compose up без каких-либо аргументов.
# Внутри каталога git Devilbox запустите их alldocker-compose up
Интранет покажет вам, какой контейнер у вас запущен в данный момент:

Если вы предпочитаете визуальное руководство, посмотрите два вводных видеоролика на Youtube: 

Документация: Установка Devilbox | Запустите Devilbox | .env-файл
В следующей таблице перечислены все интегрированные и предварительно настроенные контейнеры Docker, поставляемые Devilbox. Обязательными являются только веб-сервер и контейнер PHP, все остальные необязательны и их не нужно запускать.
Каждый из них также доступен в нескольких различных версиях, чтобы точно отразить желаемую среду.
| Ускорение | Интернет | Приложение | SQL | NoSQL | Очередь/Поиск | ЛОСЬ | Утилиты |
|---|---|---|---|---|---|---|---|
| HAProxy | Апач | PHP | МарияДБ | Мемкеш | КроликMQ | ЭластичныйПоиск | Связывать |
| Лак | Нгинкс | Питон (Колба) | MySQL | МонгоБД | Солр | Логсташ | Блэкфайр |
| ПерконаДБ | Редис | Кибана | MailHog | ||||
| PostgreSQL | Нгрок |
Документация: Доступный контейнер
Каждый прикрепляемый контейнер поставляется в различных версиях. Чтобы выбрать нужную версию контейнера, просто отредактируйте файл .env и раскомментируйте выбранную версию. Возможна любая комбинация.
| Апач | Нгинкс | PHP | MySQL | МарияДБ | Перкона | PgSQL | Редис | Мемкеш | МонгоБД |
|---|---|---|---|---|---|---|---|---|---|
| 2.2 | стабильный | 5.2 [1] | 5,5 | 5,5 | 5,5 | 9,0 | 2,8 | 1,4 | 2,8 |
| 2.4 | магистраль | 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 | последний | 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 | последний | 5.0 | |||||
| 7.4 | 10,8 | 12 | последний | ||||||
| 8.0 | 10,9 | ... | |||||||
| 8.1 | 10.10 | 15 | |||||||
| 8.2 | последний |
Документация: Изменение версий контейнера
Помимо стека по умолчанию, существует множество других служб, которые можно легко включить и запустить.
| Питон (Колба) | Блэкфайр | ЛОСЬ | MailHog | Нгрок | КроликMQ | Солр | HAProxy | Лак |
|---|---|---|---|---|---|---|---|---|
| 2,7 | 1,8 | 5.xy | v1.0.0 | 2.х | 3.6 | 5 | 1.х | 4 |
| ... | ... | 6.xy | последний | 3,7 | 6 | 5 | ||
| 3,7 | 1.18.0 | 7.xy | последний | 7 | 6 | |||
| 3,8 | последний | последний | последний |
Документация: Включение пользовательского контейнера
Devilbox — это стек разработки, поэтому гарантировано, что множество модулей PHP доступны «из коробки» для работы с множеством различных платформ.
Ядро включено (нельзя отключить):
Включено (можно отключить):
Доступно, но отключено (можно включить): d
| Модули | 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 | |||||||||||||
| БТР | |||||||||||||
| апку | |||||||||||||
| bcmath | |||||||||||||
| черный огонь | д | д | д | д | д | д | д | ||||||
| бз2 | |||||||||||||
| календарь | |||||||||||||
| ctype | |||||||||||||
| завиток | |||||||||||||
| дата | |||||||||||||
| дба | |||||||||||||
| дом | |||||||||||||
| очаровывать | |||||||||||||
| эрег | |||||||||||||
| exif | |||||||||||||
| ИФИ | |||||||||||||
| информация о файле | |||||||||||||
| фильтр | |||||||||||||
| FTP | |||||||||||||
| Боже | |||||||||||||
| получить текст | |||||||||||||
| GMP | |||||||||||||
| хэш | |||||||||||||
| значок v | |||||||||||||
| игбинарный | |||||||||||||
| воображение | |||||||||||||
| изображение | |||||||||||||
| межбазовый | |||||||||||||
| международный | |||||||||||||
| ионкуб | д | д | д | д | д | д | д | ||||||
| JSON | |||||||||||||
| ldap | |||||||||||||
| библиотека libxml | |||||||||||||
| лз4 | |||||||||||||
| лзф | |||||||||||||
| mbstring | |||||||||||||
| mcrypt | |||||||||||||
| кэш памяти | |||||||||||||
| кэширование памяти | |||||||||||||
| Мхэш | |||||||||||||
| монго | |||||||||||||
| монгодб | |||||||||||||
| пакет сообщений | |||||||||||||
| MySQL | |||||||||||||
| MySQLi | |||||||||||||
| mysqlnd | |||||||||||||
| OAuth | |||||||||||||
| oci8 | д | д | д | д | д | д | д | д | д | д | д | д | |
| ОПкэш | |||||||||||||
| OpenSSL | |||||||||||||
| pcntl | |||||||||||||
| pcre | |||||||||||||
| ПДО | |||||||||||||
| pdo_dblib | |||||||||||||
| PDO_Firebird | |||||||||||||
| pdo_mysql | |||||||||||||
| PDO_OCI | д | д | д | д | д | д | д | д | |||||
| pdo_pgsql | |||||||||||||
| pdo_sqlite | |||||||||||||
| pdo_sqlsrv | д | д | д | д | д | д | д | д | |||||
| pgsql | |||||||||||||
| сокол | д | д | д | д | д | д | д | д | д | д | д | ||
| Фар | |||||||||||||
| позикс | |||||||||||||
| пспелл | |||||||||||||
| пср | д | д | д | д | д | д | д | д | д | д | д | ||
| случайный | |||||||||||||
| Рдкафка | д | д | д | д | д | д | д | д | д | д | д | д | |
| линия чтения | |||||||||||||
| перекодировать | |||||||||||||
| Redis | |||||||||||||
| Отражение | |||||||||||||
| сессия | |||||||||||||
| Шмоп | |||||||||||||
| ПростоXML | |||||||||||||
| SNMP | |||||||||||||
| мыло | |||||||||||||
| розетки | |||||||||||||
| натрий | |||||||||||||
| сольр | |||||||||||||
| СПЛ | |||||||||||||
| Склайт | |||||||||||||
| sqlite3 | |||||||||||||
| sqlsrv | д | д | д | д | д | д | д | д | |||||
| ssh2 | |||||||||||||
| опухать | д | д | д | д | д | д | д | д | д | д | д | ||
| sysvmsg | |||||||||||||
| сисвсем | |||||||||||||
| сисвшм | |||||||||||||
| аккуратный | |||||||||||||
| токенизатор | |||||||||||||
| прогресс загрузки | |||||||||||||
| uuid | |||||||||||||
| VIP-персоны | |||||||||||||
| вддкс | |||||||||||||
| Xdebug | |||||||||||||
| xhprof | д | д | д | д | д | д | д | д | |||||
| xlswriter | |||||||||||||
| xml | |||||||||||||
| xmlreader | |||||||||||||
| xmlrpc | |||||||||||||
| xmlwriter | |||||||||||||
| xsl | |||||||||||||
| ямл | |||||||||||||
| молния | |||||||||||||
| zlib | |||||||||||||
| ЗСТД |
Ядро включено (нельзя отключить):
Включено (можно отключить):
Доступно, но отключено (можно включить): d
Документация: включение/отключение модулей PHP.
К вашим услугам будут известные и популярные инструменты:














| Инструмент | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| угловой-кли | |||||||||||||
| Асгардсмс | |||||||||||||
| потрясающе-ци | |||||||||||||
| кодецепция | |||||||||||||
| композитор | |||||||||||||
| базовый пакет | |||||||||||||
| развертыватель | |||||||||||||
| эслинт | |||||||||||||
| мерзавец | |||||||||||||
| git-поток | |||||||||||||
| grunt-cli | |||||||||||||
| глоток | |||||||||||||
| jq | |||||||||||||
| jsonlint | |||||||||||||
| laravel-установщик | |||||||||||||
| laravel-люмен | |||||||||||||
| проверка ссылок | |||||||||||||
| леев | |||||||||||||
| мдлинт | |||||||||||||
| Mupdf-инструменты | |||||||||||||
| сетевые инструменты | |||||||||||||
| узел | |||||||||||||
| НПМ | |||||||||||||
| НВМ | |||||||||||||
| Phalcon-devtools | |||||||||||||
| php-cs-фиксатор | |||||||||||||
| phpcbf | |||||||||||||
| PHPS | |||||||||||||
| phpmd | |||||||||||||
| phpunit | |||||||||||||
| пункт | |||||||||||||
| pm2 | |||||||||||||
| pwncat | |||||||||||||
| rsync | |||||||||||||
| нахальный | |||||||||||||
| шеллчек | |||||||||||||
| сш | |||||||||||||
| стильлинт | |||||||||||||
| СВН | |||||||||||||
| Symfony-CLI | |||||||||||||
| файл задачи | |||||||||||||
| тиг | |||||||||||||
| вим | |||||||||||||
| vue-cli | |||||||||||||
| вебпак-кли | |||||||||||||
| wkhtmltopdf | |||||||||||||
| WP-кли | |||||||||||||
| wscat | |||||||||||||
| ямлинт | |||||||||||||
| пряжа | |||||||||||||
| yq | |||||||||||||
| зш |
Насколько протестировано, ограничений нет, и вы можете использовать любую платформу или CMS так же, как в своей реальной среде. Ниже приведены несколько примеров тщательно протестированных фреймворков и CMS:


















Документация:
Настройка CakePHP | Настройка CodeIgniter | Настройка Контао | Настройка CraftCMS | Настройка Друпала | Настройка Joomla | Настройка Ларавел | Настройка Magento 2 | Настройка PhalconPHP | Настройка PhotonCMS | Настройка PrestaShop | Настройка ProcessWire | Настройка программного обеспечения | Настройка Symfony | Настройка Typo3 | Настройка WordPress | Настройка Yii | Настройка Зенд
Насколько протестировано, ограничений нет, и вы можете использовать любое приложение, создающее открытый порт. Эти порты будут обратно проксироваться веб-сервером и даже позволят вам использовать для них действительный HTTPS . Благодаря встроенной функции автозапуска Devilbox вы можете гарантировать, что ваше приложение автоматически запустится, как только вы запустите docker-compose up .



Документация:
Настройка обратного прокси NodeJs | Документация по настройке обратного прокси-сервера Sphinx
Devilbox поставляется с предварительно настроенной внутренней сетью http://localhost и https://localhost . Это можно явно отключить или защитить паролем. Интранет не только покажет вам выбранную конфигурацию, но также проверит состояние текущей конфигурации, например, существуют ли записи DNS (на хосте и в контейнере), правильно ли настроены каталоги. Кроме того, он предоставляет внешние инструменты, позволяющие взаимодействовать с базами данных и электронной почтой.
Обзор виртуального хоста (проверяет каталоги и DNS)
Командование и контроль
Обзор электронной почты
Обзор базы данных (MySQL, PgSQL, Redis, Memcache,...)
Информационные страницы (Httpd, MySQL, PgSQL, Redis, Memcache,...)
И многое другое...
По умолчанию во внутренней сети Devilbox доступны следующие батареи:
| Администратор | phpMyAdmin | phpPgAdmin | phpRedMin | Администратор PHP Memcached | Графический интерфейс OpCache | Просмотрщик почты |
Документация: Интранет Devilbox
Несколько примеров того, как выглядит встроенный интранет.
![]() | ![]() | ![]() |
![]() |
Devilbox имеет множество функций: от простой однопользовательской среды разработки, которая работает «из коробки», до общей инфраструктуры разработки для корпоративной сети.
Чтобы быть в курсе всех этих функций, обязательно просмотрите документацию , чтобы знать, что можно сделать и как это может упростить вашу повседневную жизнь. Если у вас когда-нибудь возникнут непредвиденные проблемы, присоединяйтесь к чату Discord или посетите форумы и быстро получите поддержку сообщества.
Документы | Раздор | Форум | Пламя |
|---|---|---|---|
| Devilbox.readthedocs.io | дискорд/дьявольский ящик | Devilbox.discourse.group | github.com/devilbox/flames |
Devilbox — все еще молодой проект, у которого впереди длинный план развития. Функции определяются вами — сообществом , поэтому любой вклад приветствуется.
Пометить этот проект звездой
Открывайте проблемы для ошибок и запросов функций.
Клонируйте этот проект и отправьте исправления или функции.
Я стараюсь следить за буквально более чем 100 проектами. Если моя работа облегчает вам жизнь, подумайте о том, чтобы прислать кофе или пиво.
Спонсорство GitHub
Патреон
Вклад: PyPI: цитопия · Terraform: цитопия · Ansible: цитопия
Логотипы и баннеры можно найти по адресу Devilbox/artwork . Не стесняйтесь использовать или изменять их в соответствии с условиями их лицензии.



Лицензия MIT
Copyright (c) 2016 Cytopia