devilbox/doc/README.md
2017-05-21 13:10:37 +02:00

88 lines
2.5 KiB
Markdown

# Devilbox Documentation
[Home](https://github.com/cytopia/devilbox) |
Overview |
[Configuration](Configuration.md) |
[Usage](Usage.md) |
[Updating](Updating.md) |
[Info](Info.md) |
[PHP Projects](PHP_Projects.md) |
[Emails](Emails.md) |
[Logs](Logs.md) |
[Intranet](Intranet.md) |
[FAQ](FAQ.md)
----
## Overview
![Devilbox](img/devilbox-dash.png)
This is a brief overview to get you started as quick as possible. For in-depth documentation use the navigation above.
### Install, Configure and Start
```shell
# Get the soures
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox
# Create and customize the config file
$ cp env-example .env
$ vim .env
# Start your container
$ docker-compose up
```
### Create projects
Inside the `.env` file you will find two important variables:
1. `HOST_PATH_HTTPD_DATADIR`
2. `TLD_SUFFIX`
The first one defines the root path for all your projects and the second one defines your desired domain suffix (default: `loc`). Inside the `HOST_PATH_HTTPD_DATADIR` folder you will have to create the following generic directory structure: `<project-dir>/htdocs`. Files from the `htdocs` folder are then served via `http://<project-dir>.<TLD_SUFFIX>`.
**TL;DR (easy)**
- Assuming `TLD_SUFFIX` equals `loc`
- Assuming `HOST_PATH_HTTPD_DATADIR` equals `/shared/httpd/`
- Assuming desired project name equals `my-new-project`
- `mkdir -p /shared/httpd/my-new-project/htdocs`
- `echo "127.0.0.1 my-new-project.loc" | sudo tee --append /etc/hosts`
- `curl http://my-new-project.loc`
-
**TL;DR (pro)**
- `export project=my-new-project`
- `. .env`
- `mkdir -p ${HOST_PATH_HTTPD_DATADIR}/${project}/htdocs`
- `echo "127.0.0.1 ${project}.${TLD_SUFFIX}" | sudo tee --append /etc/hosts`
- `curl http://${project}.${TLD_SUFFIX}`
Here is a more complete example for the directory structure:
```
project1/
htdocs/
project2/
htdocs/
some-random-name/
htdocs -> ./some-dir/ # <-- symlinks are also possible
some-dir/
my-website.com/
htdocs -> /shared/httpd/site.com/ # <-- symlinks are also possible
```
You will then have to extend `/etc/hosts` with your created foldernames plus the tld suffix:
```
127.0.0.1 project1.loc
127.0.0.1 project2.loc
127.0.0.1 some-random-name.loc
127.0.0.1 my-website.com.loc
```
Contents inside the `htdocs` folder will be server via the configured domain automatically. So in order to access project2's htdoc folder go to `http://project2.loc` (assuming `TLD_SUFFIX` was `loc`)