Schnellstart | Beispiele | Funktionen | Der Devilbox-Stack | Gemeinschaft | Mitwirken | Logos | Lizenz
Die Devilbox ist ein vielseitiger und hochgradig anpassbarer Zero-Conf-PHP-Docker-Stack, der LEMP und MEAN sowie Websockets, Node, Python und Golang über die automatisierte Reverse-Proxy-Integration unterstützt.
Das Hauptziel besteht darin, eine reproduzierbare Entwicklungsumgebung bereitzustellen, die auf allen wichtigen Plattformen läuft und in der Lage ist, jede benötigte Version zu wechseln und zu kombinieren. Es unterstützt eine unbegrenzte Anzahl von Projekten, für die automatisch Vhosts, SSL-Zertifikate und DNS-Einträge erstellt werden. Auch das Abfangen von E-Mails und beliebte Entwicklungstools stehen Ihnen zur Verfügung. Eine Konfiguration ist nicht erforderlich, da alles bereits voreingestellt ist.
Alle erstellten Projekte (Frontend oder Backend) können miteinander kommunizieren, um die Emulation einer vollständigen Microservice-Architektur oder einer API-Landschaft zu unterstützen.
Verfügbare Architekturen: amd64
, arm64
Verfügbare PHP-Versionen: 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
und Docker Compose
:Docker Engine 17.06.0+
Docker Compose 1.16.0+
In 2 Minuten einsatzbereit.
Laden Sie die Devilbox herunter
Git-Klon https://github.com/cytopia/devilbox
Geben Sie das Devilbox-Git-Verzeichnis ein
CD Devilbox
Kopieren Sie die Standardumgebungsdatei
cp env-example .env
Wichtig: Stellen Sie sicher, dass die Ports 80
und443
Ihres Hostsystems nicht überwacht werden. Diese Ports werden vom Devilbox-Webserver benötigt.
Starten Sie httpd
, php
und mysql
-Container
# Dieser Schritt kann je nach Bedarf einige Minuten dauern. # Docker-Images müssen zunächst abgerufen werden. # Im Devilbox-Git-Verzeichnis docker-compose httpd php mysql
Besuchen Sie http://localhost in Ihrem Browser
Laden Sie die Devilbox herunter
Git-Klon https://github.com/cytopia/devilbox
Geben Sie das Devilbox-Git-Verzeichnis ein
CD Devilbox
Kopieren Sie die Standardumgebungsdatei
cp env-example .env
Wichtig: Stellen Sie sicher, dass die Ports 80
und443
Ihres Hostsystems nicht überwacht werden. Diese Ports werden vom Devilbox-Webserver benötigt.
Starten Sie httpd
, php
und mysql
-Container
# Dieser Schritt kann je nach Bedarf einige Minuten dauern. # Docker-Images müssen zunächst abgerufen werden. # Im Devilbox-Git-Verzeichnis docker-compose httpd php mysql
Besuchen Sie http://localhost in Ihrem Browser
WSL2
verwenden, lesen Sie stattdessen das Linux-Handbuch. Klonen Sie https://github.com/cytopia/devilbox
nach C:devilbox
mit Git für Windows
Kopieren Sie C:devilboxenv-example
nach C:devilbox.env
Wichtig: Stellen Sie sicher, dass die Ports 80
und443
Ihres Hostsystems nicht überwacht werden. Diese Ports werden vom Devilbox-Webserver benötigt.
Öffnen Sie ein Terminal unter Windows und starten Sie httpd
, php
und mysql
-Container:
Starten Sie httpd
, php
und mysql
-Container
# Dieser Schritt kann je nach Bedarf einige Minuten dauern# Docker-Images müssen zunächst abgerufen werden.# Im Devilbox-Git-Verzeichnisdocker-compose httpd php mysql
Besuchen Sie http://localhost in Ihrem Browser
Mit der Devilbox können Sie Ihre Projekte sowohl auf dem Hostsystem als auch im Arbeitscontainer bearbeiten. Ihre Projektdateien sind an beiden Standorten verfügbar. Der Arbeitsablauf ist normalerweise:
Verwenden Sie Ihre bevorzugte IDE (z. B. PhpStorm) auf Ihrem Hostsystem, um Dateien hinzuzufügen und zu ändern
Arbeiten Sie im Container, um gängige CLI-Tools wie node
, composer
, npm
, phpcs
, webpack
und viele mehr auszuführen.
Um den Arbeitscontainer aufzurufen, führen Sie einfach ./shell.sh
aus
Auf Linux, MacOS und Windows mit WSL2
# Im Devilbox-Git-Verzeichnis./shell.sh
Unter Windows ohne WSL2
# Im Devilbox-Git-Verzeichnis./shell.bat
Erstellen Sie Ihr erstes Projekt:
Starten Sie den benötigten Container:
docker-compose up httpd php mysql
Geben Sie den Arbeitscontainer ein:
./shell.sh
Navigieren Sie zu /shared/httpd
:
cd /shared/httpd
Erstellen Sie Ihr Projektverzeichnis
mkdir Dummy-Projekt
Besuchen Sie http://localhost/vhosts.php
Sie werden feststellen, dass Sie ein htdocs/
-Verzeichnis erstellen müssen
Erstellen Sie das Verzeichnis htdocs/
# Navigieren Sie zu Ihrem Projektverzeichniscd /shared/httpd/dummy-project# Erstellen Sie htdocs dirmkdir htdocs
Besuchen Sie http://localhost/vhosts.php
Sie werden sehen, dass jetzt alles eingerichtet ist und Ihr Projekt erstellt und verfügbar ist
Erstellen Sie eine index.php
-Datei
# Navigieren Sie zu Ihrem Projekt-htdocs-Verzeichniscd /shared/httpd/dummy-project/htdocs# Erstellen Sie eine einfache index.php-Dateiecho '<?php echo "it Works";' > index.php
Sehen Sie sich Ihr Projekt im Browser an: http://dummy-project.dvl.to
Alle Beispiele finden Sie in der Dokumentation:
Die Devilbox versucht, sofort konfigurationsfrei zu sein und hat alle langweiligen Aufgaben automatisiert. Darüber hinaus bietet es allgemeine Funktionen, die für die tägliche Arbeit erforderlich sind.
AutomatisierungAutomated Project creation Automated SSL Automated DNS Host permission sync | ModiStatic files PHP files Reverse Proxy Websockets | BackendsPHP-FPM NodeJS Python Golang ... | ProfilierungBlackfire Xdebug XHProf |
ProjekteUnlimited Projects Inter-Project Communication Custom Project domains Valid browser HTTPS | IntranetVirtual Hosts C&C Email Reader OpCache Gui | BatterienAdminer phpMyAdmin phpPgAdmin phpRedMind | DienstleistungenSQL NoSQL Cache ... |
Die Devilbox möchte ein Schweizer Taschenmesser für die lokale Entwicklung sein, indem sie Ihnen alle Dienstleistungen bietet, die Sie jemals benötigen würden. Um einen Eindruck von der Architektur dahinter zu bekommen und auch zu sehen, was verfügbar ist, werfen Sie einen Blick auf die Komponenten und die Verwendung.
Kleinster StapelDies ist der kleinstmögliche und voll funktionsfähige Stack, den Sie ausführen können | Voller StapelUm besser zu verstehen, was tatsächlich möglich ist, schauen Sie sich das vollständige Beispiel an |
Sie können die Devilbox über docker-compose
auf drei verschiedene Arten starten und bedienen:
Selektiver Start
On Demand (Container während der Ausführung hinzufügen/entfernen)
Vollständiger Start
Wenn Sie vor dem Start der Devilbox bereits wissen, welche Art von Container Sie benötigen, können Sie diese einfach explizit angeben.
# Starten Sie im Devilbox-Git-Verzeichnis httpd php mysql und redisdocker-compose up httpd php mysql redis
Das Intranet zeigt Ihnen, welchen Container Sie gerade ausführen:
Wenn die Devilbox bereits gestartet ist, können Sie im Handumdrehen weitere Container anhängen.
# Hängen Sie im Devilbox-Git-Verzeichnis Mongo und Memcacheddocker an und erstellen Sie Mongo Memcd
Sie können auch bestimmte Container herunterfahren, die Sie nicht benötigen
# Im Devilbox-Git-Verzeichnis Shutdown Redisdocker-Compose Stop Redis
Wenn Sie einfach alles starten möchten, führen Sie docker-compose up
ohne Argumente aus
# Starten Sie im Devilbox-Git-Verzeichnis alldocker-compose
Das Intranet zeigt Ihnen, welchen Container Sie gerade ausführen:
Wenn Sie eine visuelle Anleitung bevorzugen, schauen Sie sich die beiden Einführungsvideos auf Youtube an:
Dokumentation: Installieren Sie die Devilbox | Starten Sie die Devilbox | .env-Datei
Die folgende Tabelle listet alle integrierten und vorkonfigurierten Docker-Container auf, die von Devilbox ausgeliefert werden. Lediglich der Webserver und der PHP-Container sind zwingend erforderlich, alle anderen sind optional und müssen nicht gestartet werden.
Jeder von ihnen ist auch in mehreren verschiedenen Versionen erhältlich, um genau Ihre gewünschte Umgebung widerzuspiegeln.
Beschleunigung | Web | App | SQL | NoSQL | Warteschlange / Suche | ELCH | Dienstprogramme |
---|---|---|---|---|---|---|---|
HAProxy | Apache | PHP | MariaDB | Im Speicher gespeichert | RabbitMQ | ElasticSearch | Binden |
Lack | Nginx | Python (Flasche) | MySQL | MongoDB | Solr | Logstash | Schwarzfeuer |
PerconaDB | Redis | Kibana | MailHog | ||||
PostgreSQL | Ngrok |
Dokumentation: Verfügbarer Container
Von jedem Aufsatzbehälter gibt es viele verschiedene Ausführungen. Um die gewünschte Version für einen Container auszuwählen, bearbeiten Sie einfach die .env
Datei und kommentieren Sie die gewünschte Version aus. Jede Kombination ist möglich.
Apache | Nginx | PHP | MySQL | MariaDB | Percona | PgSQL | Redis | Im Speicher gespeichert | MongoDB |
---|---|---|---|---|---|---|---|---|---|
2.2 | stabil | 5.2 [1] | 5.5 | 5.5 | 5.5 | 9.0 | 2.8 | 1.4 | 2.8 |
2.4 | Hauptlinie | 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 | letzte | 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 | letzte | 5,0 | |||||
7.4 | 10.8 | 12 | letzte | ||||||
8,0 | 10.9 | ... | |||||||
8.1 | 10.10 | 15 | |||||||
8.2 | letzte |
Dokumentation: Containerversionen ändern
Zusätzlich zum Standard-Stack gibt es eine Vielzahl weiterer Dienste, die einfach aktiviert und gestartet werden können.
Python (Flasche) | Schwarzfeuer | ELCH | MailHog | Ngrok | RabbitMQ | Solr | HAProxy | Lack |
---|---|---|---|---|---|---|---|---|
2.7 | 1.8 | 5.xy | v1.0.0 | 2.x | 3.6 | 5 | 1.x | 4 |
... | ... | 6.xy | letzte | 3.7 | 6 | 5 | ||
3.7 | 1.18.0 | 7.xy | letzte | 7 | 6 | |||
3.8 | letzte | letzte | letzte |
Dokumentation: Benutzerdefinierten Container aktivieren
Da es sich bei der Devilbox um einen Entwicklungsstack handelt, wird darauf geachtet, dass viele PHP-Module sofort verfügbar sind, um mit vielen verschiedenen Frameworks arbeiten zu können.
Kern aktiviert (kann nicht deaktiviert werden):
Aktiviert (kann deaktiviert werden):
Verfügbar, aber deaktiviert (kann aktiviert werden): d
Module | 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 | |||||||||||||
bcmath | |||||||||||||
Schwarzfeuer | D | D | D | D | D | D | D | ||||||
bz2 | |||||||||||||
Kalender | |||||||||||||
ctype | |||||||||||||
Locken | |||||||||||||
Datum | |||||||||||||
dba | |||||||||||||
dom | |||||||||||||
verzaubern | |||||||||||||
ereg | |||||||||||||
exif | |||||||||||||
FFI | |||||||||||||
Dateiinfo | |||||||||||||
Filter | |||||||||||||
ftp | |||||||||||||
gd | |||||||||||||
gettext | |||||||||||||
gmp | |||||||||||||
Hash | |||||||||||||
iconv | |||||||||||||
igbinär | |||||||||||||
Bild | |||||||||||||
imap | |||||||||||||
Interbase | |||||||||||||
intl | |||||||||||||
Ionenwürfel | D | D | D | D | D | D | D | ||||||
json | |||||||||||||
ldap | |||||||||||||
libxml | |||||||||||||
lz4 | |||||||||||||
lzf | |||||||||||||
mbstring | |||||||||||||
mcrypt | |||||||||||||
Memcache | |||||||||||||
zwischengespeichert | |||||||||||||
mhash | |||||||||||||
Mongo | |||||||||||||
mongodb | |||||||||||||
msgpack | |||||||||||||
MySQL | |||||||||||||
mysqli | |||||||||||||
mysqlnd | |||||||||||||
OAuth | |||||||||||||
oci8 | D | D | D | D | D | D | D | D | D | D | D | D | |
OPcache | |||||||||||||
openSL | |||||||||||||
pcntl | |||||||||||||
pcre | |||||||||||||
gU | |||||||||||||
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 | |||||||||||||
Phalkon | 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 | ||
zufällig | |||||||||||||
rdkafka | D | D | D | D | D | D | D | D | D | D | D | D | |
Lesezeile | |||||||||||||
neu kodieren | |||||||||||||
redis | |||||||||||||
Spiegelung | |||||||||||||
Sitzung | |||||||||||||
shmop | |||||||||||||
SimpleXML | |||||||||||||
SNMP | |||||||||||||
Seife | |||||||||||||
Steckdosen | |||||||||||||
Natrium | |||||||||||||
solr | |||||||||||||
SPL | |||||||||||||
sqlite | |||||||||||||
sqlite3 | |||||||||||||
sqlsrv | D | D | D | D | D | D | D | D | |||||
ssh2 | |||||||||||||
swoole | D | D | D | D | D | D | D | D | D | D | D | ||
sysvmsg | |||||||||||||
sysvsem | |||||||||||||
sysvshm | |||||||||||||
ordentlich | |||||||||||||
Tokenizer | |||||||||||||
Upload-Fortschritt | |||||||||||||
uuid | |||||||||||||
vips | |||||||||||||
wddx | |||||||||||||
Xdebug | |||||||||||||
xhprof | D | D | D | D | D | D | D | D | |||||
XLSwriter | |||||||||||||
xml | |||||||||||||
xmlreader | |||||||||||||
xmlrpc | |||||||||||||
XMLwriter | |||||||||||||
xsl | |||||||||||||
Yaml | |||||||||||||
Reißverschluss | |||||||||||||
zlib | |||||||||||||
zstd |
Kern aktiviert (kann nicht deaktiviert werden):
Aktiviert (kann deaktiviert werden):
Verfügbar, aber deaktiviert (kann aktiviert werden): d
Dokumentation: PHP-Module aktivieren/deaktivieren
Bekannte und beliebte Tools stehen Ihnen zur Verfügung:
Werkzeug | 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
eckig-cli | |||||||||||||
asgardcms | |||||||||||||
awesome-ci | |||||||||||||
Kodezeption | |||||||||||||
Komponist | |||||||||||||
Kernpaket | |||||||||||||
Bereitsteller | |||||||||||||
eslint | |||||||||||||
Idiot | |||||||||||||
Git-Flow | |||||||||||||
grunt-cli | |||||||||||||
Schluck | |||||||||||||
jq | |||||||||||||
jsonlint | |||||||||||||
Laravel-Installer | |||||||||||||
laravel-lumen | |||||||||||||
Linkcheck | |||||||||||||
mdl | |||||||||||||
mdlint | |||||||||||||
mupdf-tools | |||||||||||||
Netz-Tools | |||||||||||||
Knoten | |||||||||||||
npm | |||||||||||||
nvm | |||||||||||||
phalcon-devtools | |||||||||||||
PHP-CS-Fixer | |||||||||||||
phpcbf | |||||||||||||
phpcs | |||||||||||||
phpmd | |||||||||||||
phpunit | |||||||||||||
Pip | |||||||||||||
Uhr2 | |||||||||||||
pwncat | |||||||||||||
rsync | |||||||||||||
Sass | |||||||||||||
Shellcheck | |||||||||||||
ssh | |||||||||||||
stylelint | |||||||||||||
svn | |||||||||||||
symfony-cli | |||||||||||||
Aufgabendatei | |||||||||||||
tig | |||||||||||||
vim | |||||||||||||
vue-cli | |||||||||||||
webpack-cli | |||||||||||||
wkhtmltopdf | |||||||||||||
wp-cli | |||||||||||||
wscat | |||||||||||||
Yamlint | |||||||||||||
Garn | |||||||||||||
yq | |||||||||||||
zsh |
Soweit getestet, gibt es keine Einschränkungen und Sie können jedes Framework oder CMS genauso verwenden, wie Sie es in Ihrer Live-Umgebung tun würden. Nachfolgend finden Sie einige Beispiele ausgiebig getesteter Frameworks und CMS:
Dokumentation:
CakePHP einrichten | CodeIgniter einrichten | Contao einrichten | CraftCMS einrichten | Drupal einrichten | Joomla einrichten | Laravel einrichten | Magento 2 einrichten | PhalconPHP einrichten | PhotonCMS einrichten | PrestaShop einrichten | ProcessWire einrichten | Shopware einrichten | Symfony einrichten | Typo3 einrichten | WordPress einrichten | Setup Yii | Richten Sie Zend ein
Soweit getestet, gibt es keine Einschränkungen und Sie können jede Anwendung verwenden, die einen offenen Port erstellt. Diese Ports werden vom Webserver als Reverse-Proxy verwendet und ermöglichen Ihnen sogar die Verwendung von gültigem HTTPS für sie. Durch die integrierte Autostart-Funktion der Devilbox können Sie sicherstellen, dass Ihre Anwendung automatisch startet, sobald Sie docker-compose up
ausführen.
Dokumentation:
Reverse-Proxy NodeJs einrichten | Richten Sie die Sphinx-Dokumentation für den Reverse-Proxy ein
Die Devilbox verfügt über ein vorkonfiguriertes Intranet auf http://localhost
und https://localhost
. Dies kann explizit deaktiviert oder durch ein Passwort geschützt werden. Das Intranet zeigt Ihnen nicht nur die gewählte Konfiguration an, sondern validiert auch den Status der aktuellen Konfiguration, z. B. ob DNS-Einträge vorhanden sind (auf Host und Container) und ob Verzeichnisse ordnungsgemäß eingerichtet sind. Darüber hinaus bietet es externe Tools, mit denen Sie mit Datenbanken und E-Mails interagieren können.
Übersicht über den virtuellen Host (überprüft Verzeichnisse und DNS)
Befehl und Kontrolle
E-Mail-Übersicht
Datenbankübersicht (MySQL, PgSQL, Redis, Memcache, ...)
Infoseiten (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
Und viele mehr...
Die folgenden Batterien sind standardmäßig im Devilbox-Intranet verfügbar:
Administrator | phpMyAdmin | phpPgAdmin | phpRedMin | PHP Memcached Admin | OpCache-GUI | Mail-Viewer |
Dokumentation: Devilbox Intranet
Ein paar Beispiele, wie das integrierte Intranet aussieht.
Die Devilbox verfügt über zahlreiche Funktionen, die von einer einfachen Einzelbenutzer-Entwicklungsumgebung, die sofort einsatzbereit ist, bis hin zu einer gemeinsamen Entwicklungsinfrastruktur für ein Unternehmensnetzwerk reichen.
Um sich über all diese Funktionen im Klaren zu sein, sollten Sie die Dokumentation durchgelesen haben, damit Sie wissen, was getan werden kann und wie dies Ihren Alltag vereinfachen könnte. Wenn Sie jemals auf unvorhergesehene Probleme stoßen, nehmen Sie gerne am Discord-Chat teil oder besuchen Sie die Foren , um schnell Community-Unterstützung zu erhalten.
Dokumente | Zwietracht | Forum | Flammen |
---|---|---|---|
devilbox.readthedocs.io | Discord/Devilbox | devilbox.discourse.group | github.com/devilbox/flames |
Die Devilbox ist noch ein junges Projekt mit einer langen Roadmap. Über die Funktionen entscheiden Sie – die Community – daher ist jede Art von Beitrag willkommen.
Markieren Sie dieses Projekt
Öffnen Sie Probleme für Fehler und Funktionsanfragen
Klonen Sie dieses Projekt und reichen Sie Korrekturen oder Funktionen ein
Ich versuche, mit buchstäblich über 100 Projekten Schritt zu halten. Wenn meine Arbeit Ihnen das Leben erleichtert, denken Sie über die Zusendung von Kaffee oder Bier nach.
GitHub-Sponsoring
Patreon
Beiträge: PyPI: Cytopia · Terraform: Cytopia · Ansible: Cytopia
Logos und Banner finden Sie unter devilbox/artwork . Fühlen Sie sich frei, sie gemäß den Bedingungen ihrer Lizenz zu verwenden oder zu ändern.
MIT-Lizenz
Copyright (c) 2016 Cytopia