Code Monkey home page Code Monkey logo

devilbox's Introduction

Devilbox The devilbox

Usage | Features | Documentation | Run-time Matrix | Intranet | Screenshots | Contributing | License

Devilbox

Build Status Tag type License

The devilbox is a modern and highly customizable alternative for XAMPP with a few additional feature on top. It is based on docker-compose with presets for all kinds of versions for webservers, database servers, php and more.

Configuration is not necessary, as everything is pre-setup with mass virtual hosting and auto-dns.

Supported operating systems

Linux Windows OSX

It might run on FreeBSD, but I don't know the status of docker-compose there.


Usage

Quick start

You are up and running in three simple steps:

# Create docker-compose environment file
$ cp env-example .env

# Edit your configuration
$ vim .env

# Start all containers
$ docker-compose up

Selective start

The above will start all containers, you can however also just start the containers you actually need. This is achieved by simply specifying them in the docker-compose command. Here are a few examples to get you started.

$ docker-compose up httpd php mysql redis

Devilbox

$ docker-compose up httpd php mysql pgsql redis memcd

Devilbox

$ docker-compose up httpd php pgsql memcd

Devilbox

Run different versions

Every single attachable container comes with many different versions (see runtime-matrix below). In order to select the desired version for a container, simply edit the .env file and uncomment the version of choice.

The following example shows how to set Memcached to version 1.4.28:

$ vim .env

...
#MEMCD_SERVER=1.4.21
#MEMCD_SERVER=1.4.22
#MEMCD_SERVER=1.4.23
#MEMCD_SERVER=1.4.24
#MEMCD_SERVER=1.4.25
#MEMCD_SERVER=1.4.26
#MEMCD_SERVER=1.4.27
MEMCD_SERVER=1.4.28
#MEMCD_SERVER=1.4.29
#MEMCD_SERVER=1.4.30
#MEMCD_SERVER=1.4.31
#MEMCD_SERVER=1.4.32
#MEMCD_SERVER=1.4.33
#MEMCD_SERVER=1.4.34
#MEMCD_SERVER=1.4.35
#MEMCD_SERVER=1.4.36
#MEMCD_SERVER=latest

Enter the container

You can also work directly inside the php container if you need to run tools such as drush, drupal-console, composer, node etc. Simply use the prepared scripts in the base directory to enter (PS1 will be populated with current chosen php version):

# Enter as user devilbox (normal operation / development)
$ ./bash.sh
[email protected] in /shared/httpd $


# Enter as root user (do root stuff)
$ ./root_bash.sh
[email protected] in /shared/httpd $

Your projects can be found in /shared/httpd (This is also the place you will land once entered). DNS records are automatically available inside the php container. Also every other service will be available on 127.0.0.1 inside the php container (tricky socat port-forwarding).

Feature overview

The devilbox has everything setup for you. The only thing you will have to install is docker and docker-compose. Virtual hosts and DNS entries will be created automatically, just by adding new project folders.

  • Mass virtual host
  • Custom domains (*.loc, *.local, *.dev, ...)
  • Auto-DNS (Internal Bind server running)
  • Email catch-all (Internal postfix with catch-all)
  • Log files (available on host computer)
  • Config overwrites (my.cnf, nginx.conf, httpd.conf or php.ini)
  • Tools (git, composer, node, npm, drush, drupal-console, ...)
  • Xdebug

Batteries included:

Documentation

Video Tutorials

Devilbox setup and workflow Devilbox email catch-all

Documentation

For setup, usage and examples see detailed Documentation.

Documentaion Description
Overview General overview
Configuration How to configure the devilbox
Usage How to use the devilbox
Updating How to update
Info Technical information
PHP Projects How to manage projects
Emails How email catching works
Logs How to view log files
Intranet The built-in intranet
FAQ Frequently asked questions

Run-time Matrix

Select your prefered version. (By editing the .env file)

No need to install and configure different versions locally. Simply choose your required LAMP/LEMP stack versions during startup and it is up and running instantly.

1/3 Base stack (required)

DNS Webserver PHP
Build Status Bind Build Status Apache 2.2 Build Status PHP 5.4
Build Status Apache 2.4 Build Status PHP 5.5
Build Status Nginx stable Build Status PHP 5.6
Build Status Nginx mainline Build Status PHP 7.0
Build Status PHP 7.1
Build Status HHVM latest

Note: Entries without links or without build-status are planned, but not yet available. See ROADMAP for tasks and upcoming features.

2/3 SQL stack (optional)

MySQL PostgreSQL MS SQL
Build Status MySQL 5.5 Build Status PgSQL 9.1 MS SQL 2017
Build Status MySQL 5.6 Build Status PgSQL 9.2
Build Status MySQL 5.7 Build Status PgSQL 9.3
Build Status MySQL 8.0 Build Status PgSQL 9.4
Build Status MariaDB 5.5 Build Status PgSQL 9.5
Build Status MariaDB 10.0 Build Status PgSQL 9.6
Build Status MariaDB 10.1
Build Status MariaDB 10.2
Build Status MariaDB 10.3

Note: Entries without links or without build-status are planned, but not yet available. See ROADMAP for tasks and upcoming features.

3/3 NoSQL stack (optional)

Cassandra CouchDB Memcached MongoDB Redis
Cassandra 2.1 CouchDB 1.6 Travis CI latest build Status 2.8 Travis CI 2.8
Cassandra 2.2 CouchDB 2.0 build Status 3.0 Travis CI 3.0
Cassandra 3.0 build Status 3.2 Travis CI 3.2
build Status 3.4
build Status 3.5

Note: Entries without links or without build-status are planned, but not yet available. See ROADMAP for tasks and upcoming features.

Intranet overview

The devilbox comes with a pre-configured intranet on http://localhost. It will not only show you, your chosen configuration, but also validate the status of your configuration, such as Do DNS records exists (on host and container), are directories properly set-up. Additionally it provides external tools to let you interact with databases and emails.

  • Virtual Host overview (validates directories and DNS)
  • Database overview (MySQL, PgSQL, Redis, Memcache, ...)
  • Email overview
  • Info pages (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
  • phpMyAdmin
  • Adminer
  • OpcacheGUI

Screenshots

Homepage with host / docker information

The homepage shows you the status of your current configured setup.

  • which versions are used
  • what directories are mounted
  • where does DNS point to
  • what other settings have been set
  • did any errors occur?

Intranet Home

Virtual Host overview

This overview shows you all available virtual hosts and if they need additional configuration (on the host)

Virtual Hosts are considered valid if the following requirements are met (on the host system):

  • htdocs folder/symlink exists in your project folder
  • /etc/hosts has a valid DNS config for your host: 127.0.0.1 <project-folder>.<TLD_SUFFIX> (alternatively the bundle BIND server can be attached to your host-computer).

Intranet vHost

Database overview

Shows you all the databases that are loaded

Intranet DB

Email overview

Shows you all the emails that have been sent. No email will actually be sent outside, but they are all catched by one account and presented here.

Intranet Email

Contributing

Contributers are welcome in any way.

First of all, if you like the project, please do star it. Starring is an important measurement to see the number of active users and better allows me to organize my time and effort I can put into this project.

Secondly, please do report all bugs. This will not only help you get your problem fixed, but also help others as they might encounter the same.

And last but not least, you can also get actively involved. Do clone the project and start improving whatever you think is useful. There is quite a lot todo and planned. If you like to contribute, view CONTRIBUTING.md and ROADMAP.

Major contributors will be credited within the intranet and on the github page.

License

MIT License

devilbox's People

Contributors

cebe avatar cytopia avatar jpuck avatar lex111 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.