Compare commits

..

31 Commits
v9.6 ... v9.7

Author SHA1 Message Date
719d1f7e7a Merge pull request #2502 from bestlong/gmp-ext
horizon gmp ext
2020-02-12 19:47:09 +08:00
53d13f23f7 horizon gmp ext 2020-02-12 18:23:22 +08:00
2f2539a51f Merge pull request #2472 from collierscott/add-gitprompt
Add bash-git-prompt for more informative prompts for git repos
2020-02-12 09:17:13 +08:00
8d99f69ab2 Merge pull request #2479 from webfatorial/mysql-version-build
Use MYSQL_VERSION env var to build mysql image
2020-02-12 09:15:45 +08:00
f8b7404263 php ext bz2 (#2500)
* php ext bz2
* fix typo
* fix php-fpm bz2 ext
* fix horizon bz2 ext
2020-02-11 23:56:58 +08:00
b2ae5f6d44 Arrange (#2499)
* unify php verson variable
* CASSANDRA move together
* unify all php base container
2020-02-11 18:41:19 +08:00
29def5f0b4 add some missing social media meta tags to the website 2020-02-07 23:10:44 +01:00
66134095b1 update stale bot configuration to close staled issues in 21 days 2020-02-07 22:13:23 +01:00
c8c63e6a78 Merge pull request #2493 from bestlong/pgsql-version-specify
postgresql version can specify
2020-02-07 08:10:53 +08:00
63b3d2ff14 postgresql version can specify 2020-02-06 23:58:07 +08:00
00676f0c8e Merge pull request #2492 from bestlong/fix-php-worker-74
php 7.4 php-worker zip ext.
2020-02-05 16:38:18 +08:00
ac417f2e6b Merge pull request #2490 from vlauciani/master
YAML extension for laravel-horizon
2020-02-05 14:59:26 +08:00
b26bcdb42a php 7.4 php-worker zip ext. 2020-02-05 14:54:57 +08:00
fb57c52ca6 Merge pull request #2474 from brnathanlima/update-elasticsearch-logstash-and-kibana-to-use-the-same-version
Improvements on ELK Stack images
2020-02-05 12:44:25 +07:00
0a253a3d7e Alpine commands used 2020-02-04 20:33:41 +01:00
72d11e4485 fix indentations 2020-02-04 17:00:01 +01:00
82a4b1db60 Add code to install YAML extension 2020-02-04 16:57:14 +01:00
c9e71c695e Add variable to install YAML extension 2020-02-04 16:55:50 +01:00
5b33a2b319 Add variable to install YAML extension 2020-02-04 16:53:14 +01:00
c670d5f98b Merge pull request #2335 from goodjack/patch-1
Fix localhost address
2020-02-03 16:17:36 +08:00
10c9decf78 Merge pull request #2348 from asannikov/varnish
Varnish
2020-02-03 16:14:44 +08:00
09fe2588e7 Merge branch 'master' into varnish 2020-02-03 16:14:17 +08:00
34daaba270 update github issues and PR templates, add config for github stale bot
in addition to some small updates in the readme, /.github and /docs..
2020-02-01 20:31:18 +01:00
8b4391e63c Use MYSQL_VERSION env var to build mysql image 2020-01-25 11:23:48 -03:00
5aafed586b upgraded elasticsearch, logstash and kibana images and provided an environment variable to specify a version for the entire ELK stack. 2020-01-22 15:37:04 -03:00
7fec2186ef Add bash-git-prompt in order to have a more descriptive prompt when working with repositories.
Also, update documentation for bash-git-prompt usage. Make sure initial value for usage is false.
2020-01-20 12:25:44 -06:00
b28f449556 Add bash-git-prompt in order to have a more descriptive prompt when working with repositories.
Also, update documentation for bash-git-prompt usage
2020-01-20 12:24:18 -06:00
a760da3488 Update index.md 2019-11-02 20:42:33 +08:00
2af7bfa60f Varnish vs Nginx configuration added 2019-10-31 16:02:33 +03:00
babfef7ef6 Merged with master 2019-10-31 12:08:33 +03:00
70e63c59d0 Fix localhost address 2019-10-20 17:16:25 +08:00
36 changed files with 940 additions and 225 deletions

View File

@ -1,46 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mahmoud@zalt.me. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@ -1,3 +0,0 @@
### First off, thanks for taking the time to contribute!
For the contribution guide [click here](http://laradock.io/contributing/).

5
.github/FUNDING.yml vendored
View File

@ -1,6 +1,5 @@
# DO NOT CHANGE THIS FILE PLEASE. # DO NOT CHANGE THIS FILE PLEASE.
github: Mahmoudz
open_collective: laradock open_collective: laradock
ko_fi: laradock custom: ['paypal.me/mzmmzz']
issuehunt: laradock
custom: ['beerpay.io/laradock/laradock', 'paypal.me/mzmmzz']

View File

@ -1,23 +0,0 @@
### Info:
- Docker version (`$ docker --version`):
- Laradock commit (`$ git rev-parse HEAD`):
- System info (Mac, PC, Linux):
- System info disto/version:
### Issue:
<!--- What seems to be wrong? -->
_____
### Expected behavior:
<!--- What should happen instead? -->
_____
### Reproduce:
<!--- How can we reproduce the error? -->
_____
### Relevant Code:
```
// place a code sample here
```

50
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,50 @@
---
name: "Bug report"
about: "Report a general issue, encountered while using Laradock."
labels: "Type: Bug"
---
### Description:
<!-- A clear and concise description of what the bug is. -->
### Expected Behavior:
<!-- A clear and concise description of what you expected to happen. -->
### Context information:
**Output of `git rev-parse HEAD`**
```
{paste here}
```
**Output of `docker version`**
```
{paste here}
```
**Output of `docker-compose version`**
```
{paste here}
```
**System info: Mac, Windows or Linux. Include which disto/version**
```
{paste here}
```
### Steps to reproduce the issue:
<!--- How can we reproduce the issue? -->
1.
2.
3.
### Stacktrace & Additional info:
```
{paste here}
```

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Support question
url: https://gitter.im/LaraDock/laradock
about: 'This repository is only for reporting bugs. If you need help, get in touch with us via Gitter.'

View File

@ -0,0 +1,17 @@
---
name: "Feature request"
about: "Suggest an idea for this project."
labels: "Type: Feature Request"
---
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->

View File

@ -1,7 +1,18 @@
<!--- Thank you for contributing to Laradock --> ## Description
<!--- Describe your changes in detail -->
<!--- If it fixes an open issue, please link to the issue here. -->
##### I completed the 3 steps below: ## Motivation and Context
<!--- What problem does it solve, or what feature does it add? -->
- [ ] I've read the [Contribution Guide](http://laradock.io/contributing). ## Types of Changes
- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so). <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] I enjoyed my time contributing and making developer's life easier :) - [] Bug fix (non-breaking change which fixes an issue).
- [] New feature (non-breaking change which adds functionality).
- [] Breaking change (fix or feature that would cause existing functionality to not work as expected).
## Definition of Done Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
- [] I've read the [Contribution Guide](http://laradock.io/contributing).
- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
- [] I enjoyed my time contributing and making developer's life easier :)

3
.github/SUPPORT.md vendored Normal file
View File

@ -0,0 +1,3 @@
# Support Questions
For help, please visit our official chatting room on [Gitter](https://gitter.im/Laradock/laradock).

21
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,21 @@
# Configuration for Github probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 21
# Issues with these labels will never be considered stale
exemptLabels:
- 'Type: Feature Request'
# Label to use when marking an issue as stale
staleLabel: Stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Hi 👋 this issue has been automatically marked as `stale` 📌 because it has not had recent activity 😴.
It will be closed if no further activity occurs. Thank you for your contributions ❤️.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
Hi again 👋 we would like to inform you that this issue has been automatically `closed` 🔒 because it had not recent activity during the `stale` period.
We really really appreciate your contributions, and looking forward for more in the future 🎈.
# Limit to only `issues` or `pulls`
only: issues

3
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,3 @@
# Laradock Code of Conduct
We follow the [Contributor Covenant](https://www.contributor-covenant.org/version/1/4/code-of-conduct) Code of Conduct.

3
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,3 @@
# Thank you for your consideration
Checkout out our [contribution guide](http://laradock.io/contributing).

View File

@ -693,6 +693,7 @@ You may wanna change the default security configuration, so go to `http://localh
<br> <br>
<a name="Use-Redis"></a> <a name="Use-Redis"></a>
## Use Redis ## Use Redis
1 - First make sure you run the Redis Container (`redis`) with the `docker-compose up` command. 1 - First make sure you run the Redis Container (`redis`) with the `docker-compose up` command.
@ -780,12 +781,81 @@ Read the [Laravel official documentation](https://laravel.com/docs/5.7/redis#con
``` ```
<br>
<a name="Use-Varnish"></a>
## Use Varnish
The goal was to proxy request to varnish server using nginx. So only nginx has been configured for Varnish proxy.
Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`).
The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/)
The Varnish configuration was developed and tested for Wordpress only. Probably it works with other systems.
#### Steps to configure varnish proxy server:
1. You have to set domain name for VARNISH_PROXY1_BACKEND_HOST variable.
2. If you want to use varnish for different domains, you have to add new configuration section in your env file.
```
VARNISH_PROXY1_CACHE_SIZE=128m
VARNISH_PROXY1_BACKEND_HOST=replace_with_your_domain.name
VARNISH_PROXY1_SERVER=SERVER1
```
3. Then you have to add new config section into docker-compose.yml with related variables:
```
custom_proxy_name:
container_name: custom_proxy_name
build: ./varnish
expose:
- ${VARNISH_PORT}
environment:
- VARNISH_CONFIG=${VARNISH_CONFIG}
- CACHE_SIZE=${VARNISH_PROXY2_CACHE_SIZE}
- VARNISHD_PARAMS=${VARNISHD_PARAMS}
- VARNISH_PORT=${VARNISH_PORT}
- BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST}
- BACKEND_PORT=${VARNISH_BACKEND_PORT}
- VARNISH_SERVER=${VARNISH_PROXY2_SERVER}
ports:
- "${VARNISH_PORT}:${VARNISH_PORT}"
links:
- workspace
networks:
- frontend
```
4. change your varnish config and add nginx configuration. Example Nginx configuration is here: `nginx/sites/laravel_varnish.conf.example`.
5. `varnish/default.vcl` is old varnish configuration, which was used in the previous version. Use `default_wordpress.vcl` instead.
#### How to run:
1. Rename `default_wordpress.vcl` to `default.vcl`
2. `docker-compose up -d nginx`
3. `docker-compose up -d proxy`
Keep in mind that varnish server must be built after Nginx cause varnish checks domain affordability.
#### FAQ:
1. How to purge cache? <br>
run from any cli: <br>`curl -X PURGE https://yourwebsite.com/`.
2. How to reload varnish?<br>
`docker container exec proxy varnishreload`
3. Which varnish commands are allowed?
- varnishadm
- varnishd
- varnishhist
- varnishlog
- varnishncsa
- varnishreload
- varnishstat
- varnishtest
- varnishtop
4. How to reload Nginx?<br>
`docker exec Nginx nginx -t`<br>
`docker exec Nginx nginx -s reload`
<br> <br>
<a name="Use-Mongo"></a> <a name="Use-Mongo"></a>
## Use Mongo ## Use Mongo
1 - First install `mongo` in the Workspace and the PHP-FPM Containers: 1 - First install `mongo` in the Workspace and the PHP-FPM Containers:
@ -2052,6 +2122,25 @@ AST exposes the abstract syntax tree generated by PHP 7+. This extension is requ
<br>
<a name="Install-Bash-Git-Prompt"></a>
## Install Git Bash Prompt
A bash prompt that displays information about the current git repository. In particular the branch name, difference with remote branch, number of files staged, changed, etc.
1 - Open the `.env` file
2 - Search for the `WORKSPACE_INSTALL_GIT_PROMPT` argument under the Workspace Container
3 - Set it to `true`
4 - Re-build the container `docker-compose build workspace`
**Note** You can configure bash-git-prompt by editing the `workspace/gitprompt.sh` file and re-building the workspace container.
For configuration information, visit the [bash-git-prompt repository](https://github.com/magicmonty/bash-git-prompt).
<br> <br>
<a name="phpstorm-debugging"></a> <a name="phpstorm-debugging"></a>
## PHPStorm Debugging Guide ## PHPStorm Debugging Guide

View File

@ -221,8 +221,12 @@ Or you can change them and rebuild the container.
<br> <br>
5 - Open your browser and visit your localhost address. 5 - Open your browser and visit your localhost address.
Make sure you add use the right port number as provided by your running server.
[http://localhost](http://localhost)
If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`. If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`.
[http://localhost:8080](http://localhost:8080)
Make sure you add use the right port number as provided by your running server. Ex: NGINX uses port 8080 by default while Apache2 uses 80.

View File

@ -212,7 +212,7 @@ You can choose, which tools to install in your workspace container and other con
<a name="Chat"></a> <a name="Chat"></a>
## Chat with us ## Chat with us
You are welcome to join our chat room on Gitter. Feel free to join us on Gitter.
[![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
@ -349,19 +349,11 @@ Laradock exists thanks to all the people who contribute.
Contribute and help us sustain the project. Contribute and help us sustain the project.
<b>Option 1:</b> Donate directly to [Paypal](https://paypal.me/mzmmzz). <b>Option 1:</b> Donate via [Paypal](https://paypal.me/mzmmzz).
<br>
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mzmmzz) <b>Option 2:</b> Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
<br>
<b>Option 2:</b> Support us via [BeerPay](https://beerpay.io/laradock/laradock). <b>Option 3:</b> Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute).
[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock)
<b>Option 3:</b> Become a backer on [Open Collective](https://opencollective.com/laradock/contribute).
<a href="https://opencollective.com/laradock"><img src="https://opencollective.com/laradock/backer.svg?width=890"></a>
<a name="sponsors"></a> <a name="sponsors"></a>
## Sponsors ## Sponsors
@ -423,5 +415,61 @@ Your logo will show up on the [github repository](https://github.com/laradock/la
<br> <br>
For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>. For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>.
<a name="Backers"></a>
## Backers
<a href="https://opencollective.com/laradock/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/0/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/1/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/2/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/3/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/4/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/5/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/6/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/7/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/8/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/9/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/10/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/11/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/11/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/12/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/12/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/13/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/13/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/14/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/14/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/15/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/15/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/16/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/16/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/17/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/17/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/18/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/18/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/19/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/19/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/20/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/20/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/21/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/21/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/22/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/22/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/23/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/23/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/24/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/24/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/25/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/25/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/26/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/26/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/27/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/27/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/28/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/28/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/29/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/29/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/30/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/30/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/31/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/31/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/32/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/32/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/33/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/33/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/34/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/34/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/35/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/35/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/36/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/36/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/37/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/37/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/38/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/38/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/39/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/39/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/40/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/40/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/41/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/41/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/42/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/42/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/43/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/43/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/44/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/44/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/45/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/45/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/46/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/46/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/47/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/47/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/48/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/48/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/49/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/49/avatar.svg?requireActive=false"></a>
<br> <br>

View File

@ -25,8 +25,6 @@
<article class="article"> <article class="article">
<div class="wrapper"> <div class="wrapper">
<!-- Wrapper around google ads for seedanddew -->
<div class='snd-ad'>
<!-- ------------------------------------------------------------------------- --> <!-- ------------------------------------------------------------------------- -->
<!-- Google Ads --> <!-- Google Ads -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
@ -39,7 +37,6 @@
(adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({});
</script> </script>
<!-- ------------------------------------------------------------------------- --> <!-- ------------------------------------------------------------------------- -->
</div>
<br><br><br> <br><br><br>
<img src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/laradock-logo.jpg" alt="laradock logo"> <img src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/laradock-logo.jpg" alt="laradock logo">

View File

@ -12,17 +12,23 @@
<title>{{ .Title }}{{ if not .IsHome }} - {{ .Site.Title }}{{ end }}</title> <title>{{ .Title }}{{ if not .IsHome }} - {{ .Site.Title }}{{ end }}</title>
{{ .Hugo.Generator }} {{ .Hugo.Generator }}
{{ with .Site.Params.description }} {{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
<meta name="description" content="{{ . }}">
{{ end }}
<link rel="canonical" href="{{ .Permalink }}"> <link rel="canonical" href="{{ .Permalink }}">
{{ with .Site.Params.author }} {{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<meta name="author" content="{{ . }}">
{{ end }}
<meta property="og:url" content="{{ .Permalink }}"> <meta property="og:url" content="{{ .Permalink }}">
<meta property="og:type" content="website">
{{ with .Site.Title }}<meta property="og:site_name" content="{{ . }}">{{ end }}
{{ with .Site.Params.description }}<meta property="og:description" content="{{ . }}">{{ end }}
{{ with .Site.Title }}<meta property="og:title" content="{{ . }}">{{ end }} {{ with .Site.Title }}<meta property="og:title" content="{{ . }}">{{ end }}
{{ with .Site.Params.logo }}<meta property="og:image" content="{{ . | absURL }}">{{ end }} {{ with .Site.Params.logo }}<meta property="og:image" content="{{ . | absURL }}">{{ end }}
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@Mahmoud_Zalt">
{{ with .Site.Title }}<meta name="twitter:title" content="{{ . }}">{{ end }}
{{ with .Site.Params.description }}<meta name="twitter:description" content="{{ . }}">{{ end }}
{{ with .Site.Params.logo }}<meta name="twitter:image" content="{{ . | absURL }}">{{ end }}
{{ with .Site.Title }}<meta name="apple-mobile-web-app-title" content="{{ . }}">{{ end }} {{ with .Site.Title }}<meta name="apple-mobile-web-app-title" content="{{ . }}">{{ end }}
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
@ -70,27 +76,6 @@
{{ end }} {{ end }}
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script> <script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
<script>
// ------------------------------------------------------------
// seedanddew.com integration
var SeedAndDewConfig = {};
(function() {
SeedAndDewConfig['adClass'] = "snd-ad";
/* * * DON'T EDIT BELOW THIS LINE * * */
SeedAndDewConfig['projectId'] = 'd69f3ea2-1e30-44c7-bd2a-87686c0136e6';
SeedAndDewConfig['loadStartTime'] = performance.now();
SeedAndDewConfig['apiVersion'] = '2018-05-28'
SeedAndDewConfig['sessionId'] = Math.random().toString(36).substring(2, 15);
var snd = document.createElement('script');
snd.type = 'text/javascript';
snd.async = true;
snd.src = 'https://www.seedanddew.com/static/embed.min.js';
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(snd);
})();
// ------------------------------------------------------------
</script>
{{ with .RSSLink }} {{ with .RSSLink }}
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" /> <link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" /> <link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />

View File

@ -33,6 +33,15 @@
--- ---
<a name="Chat"></a>
## Chat with us
Feel free to join us on Gitter.
[![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
---
## Awesome People ## Awesome People
Laradock exists thanks to all the people who contribute. Laradock exists thanks to all the people who contribute.
@ -162,17 +171,11 @@ Laradock exists thanks to all the people who contribute.
Contribute and help us sustain the project. Contribute and help us sustain the project.
<b>Option 1:</b> Donate directly to [Paypal](https://paypal.me/mzmmzz). <b>Option 1:</b> Donate via [Paypal](https://paypal.me/mzmmzz).
<br>
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mzmmzz) <b>Option 2:</b> Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
<br>
<b>Option 2:</b> Support us via [BeerPay](https://beerpay.io/laradock/laradock). <b>Option 3:</b> Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute).
[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock)
<b>Option 3:</b> Become a backer on [Open Collective](https://opencollective.com/laradock/contribute).
<a href="https://opencollective.com/laradock"><img src="https://opencollective.com/laradock/backer.svg?width=890"></a>
## Sponsors ## Sponsors
@ -233,6 +236,60 @@ Your logo will show up on the [github repository](https://github.com/laradock/la
<br> <br>
For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>. For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>.
## Backers
<a href="https://opencollective.com/laradock/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/0/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/1/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/2/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/3/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/4/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/5/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/6/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/7/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/8/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/9/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/10/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/11/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/11/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/12/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/12/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/13/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/13/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/14/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/14/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/15/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/15/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/16/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/16/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/17/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/17/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/18/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/18/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/19/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/19/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/20/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/20/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/21/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/21/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/22/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/22/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/23/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/23/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/24/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/24/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/25/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/25/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/26/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/26/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/27/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/27/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/28/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/28/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/29/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/29/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/30/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/30/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/31/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/31/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/32/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/32/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/33/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/33/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/34/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/34/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/35/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/35/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/36/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/36/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/37/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/37/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/38/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/38/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/39/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/39/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/40/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/40/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/41/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/41/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/42/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/42/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/43/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/43/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/44/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/44/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/45/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/45/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/46/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/46/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/47/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/47/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/48/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/48/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/laradock/backer/49/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/backer/49/avatar.svg?requireActive=false"></a>
## License ## License
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) [MIT](https://github.com/laradock/laradock/blob/master/LICENSE) © Mahmoud Zalt

View File

@ -64,12 +64,13 @@ services:
- LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
- INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2}
- INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
- INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV} - INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV}
- INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2} - INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2}
- INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
- INSTALL_XSL=${WORKSPACE_INSTALL_XSL} - INSTALL_XSL=${WORKSPACE_INSTALL_XSL}
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
@ -125,6 +126,7 @@ services:
- INSTALL_AST=${WORKSPACE_INSTALL_AST} - INSTALL_AST=${WORKSPACE_INSTALL_AST}
- INSTALL_YAML=${WORKSPACE_INSTALL_YAML} - INSTALL_YAML=${WORKSPACE_INSTALL_YAML}
- INSTALL_MAILPARSE=${WORKSPACE_INSTALL_MAILPARSE} - INSTALL_MAILPARSE=${WORKSPACE_INSTALL_MAILPARSE}
- INSTALL_GIT_PROMPT=${WORKSPACE_INSTALL_GIT_PROMPT}
- PUID=${WORKSPACE_PUID} - PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID} - PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
@ -167,6 +169,8 @@ services:
- CHANGE_SOURCE=${CHANGE_SOURCE} - CHANGE_SOURCE=${CHANGE_SOURCE}
- LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2}
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV} - INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV}
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
@ -182,7 +186,6 @@ services:
- INSTALL_GEARMAN=${PHP_FPM_INSTALL_GEARMAN} - INSTALL_GEARMAN=${PHP_FPM_INSTALL_GEARMAN}
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL} - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
@ -248,8 +251,10 @@ services:
context: ./php-worker context: ./php-worker
args: args:
- CHANGE_SOURCE=${CHANGE_SOURCE} - CHANGE_SOURCE=${CHANGE_SOURCE}
- PHP_VERSION=${PHP_VERSION} - LARADOCK_PHP_VERSION=${PHP_VERSION}
- PHALCON_VERSION=${PHALCON_VERSION} - PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2}
- INSTALL_GMP=${PHP_WORKER_INSTALL_GMP}
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
- INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON} - INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON}
@ -263,7 +268,6 @@ services:
- INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE} - INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE}
- INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT} - INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT}
- INSTALL_FFMPEG=${PHP_WORKER_INSTALL_FFMPEG} - INSTALL_FFMPEG=${PHP_WORKER_INSTALL_FFMPEG}
- INSTALL_GMP=${PHP_WORKER_INSTALL_GMP}
- INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS} - INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS}
- PUID=${PHP_WORKER_PUID} - PUID=${PHP_WORKER_PUID}
- PGID=${PHP_WORKER_PGID} - PGID=${PHP_WORKER_PGID}
@ -282,11 +286,14 @@ services:
context: ./laravel-horizon context: ./laravel-horizon
args: args:
- CHANGE_SOURCE=${CHANGE_SOURCE} - CHANGE_SOURCE=${CHANGE_SOURCE}
- PHP_VERSION=${PHP_VERSION} - LARADOCK_PHP_VERSION=${PHP_VERSION}
- INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2}
- INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS}
- INSTALL_YAML=${LARAVEL_HORIZON_INSTALL_YAML}
- INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA} - INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA}
- INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS}
- INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO}
@ -322,6 +329,7 @@ services:
ports: ports:
- "${NGINX_HOST_HTTP_PORT}:80" - "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443" - "${NGINX_HOST_HTTPS_PORT}:443"
- "${VARNISH_BACKEND_PORT}:81"
depends_on: depends_on:
- php-fpm - php-fpm
networks: networks:
@ -467,7 +475,10 @@ services:
### PostgreSQL ########################################### ### PostgreSQL ###########################################
postgres: postgres:
build: ./postgres build:
context: ./postgres
args:
- POSTGRES_VERSION=${POSTGRES_VERSION}
volumes: volumes:
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
- ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
@ -773,7 +784,10 @@ services:
### ElasticSearch ######################################## ### ElasticSearch ########################################
elasticsearch: elasticsearch:
build: ./elasticsearch build:
context: ./elasticsearch
args:
- ELK_VERSION=${ELK_VERSION}
volumes: volumes:
- elasticsearch:/usr/share/elasticsearch/data - elasticsearch:/usr/share/elasticsearch/data
environment: environment:
@ -797,7 +811,10 @@ services:
### Logstash ############################################## ### Logstash ##############################################
logstash: logstash:
build: ./logstash build:
context: ./logstash
args:
- ELK_VERSION=${ELK_VERSION}
volumes: volumes:
- './logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml' - './logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml'
- './logstash/pipeline:/usr/share/logstash/pipeline' - './logstash/pipeline:/usr/share/logstash/pipeline'
@ -815,7 +832,10 @@ services:
### Kibana ############################################## ### Kibana ##############################################
kibana: kibana:
build: ./kibana build:
context: ./kibana
args:
- ELK_VERSION=${ELK_VERSION}
ports: ports:
- "${KIBANA_HTTP_PORT}:5601" - "${KIBANA_HTTP_PORT}:5601"
depends_on: depends_on:
@ -869,6 +889,7 @@ services:
### Varnish ########################################## ### Varnish ##########################################
proxy: proxy:
container_name: proxy
build: ./varnish build: ./varnish
expose: expose:
- ${VARNISH_PORT} - ${VARNISH_PORT}
@ -880,12 +901,15 @@ services:
- BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST} - BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST}
- BACKEND_PORT=${VARNISH_BACKEND_PORT} - BACKEND_PORT=${VARNISH_BACKEND_PORT}
- VARNISH_SERVER=${VARNISH_PROXY1_SERVER} - VARNISH_SERVER=${VARNISH_PROXY1_SERVER}
ports:
- "${VARNISH_PORT}:${VARNISH_PORT}"
links: links:
- workspace - workspace
networks: networks:
- frontend - frontend
proxy2: proxy2:
container_name: proxy2
build: ./varnish build: ./varnish
expose: expose:
- ${VARNISH_PORT} - ${VARNISH_PORT}
@ -897,6 +921,8 @@ services:
- BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST} - BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST}
- BACKEND_PORT=${VARNISH_BACKEND_PORT} - BACKEND_PORT=${VARNISH_BACKEND_PORT}
- VARNISH_SERVER=${VARNISH_PROXY2_SERVER} - VARNISH_SERVER=${VARNISH_PROXY2_SERVER}
ports:
- "${VARNISH_PORT}:${VARNISH_PORT}"
links: links:
- workspace - workspace
networks: networks:

View File

@ -1,3 +1,4 @@
FROM docker.elastic.co/elasticsearch/elasticsearch:7.1.1 ARG ELK_VERSION=7.5.1
FROM docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION}
EXPOSE 9200 9300 EXPOSE 9200 9300

View File

@ -100,12 +100,13 @@ WORKSPACE_INSTALL_NPM_ANGULAR_CLI=false
WORKSPACE_INSTALL_PHPREDIS=true WORKSPACE_INSTALL_PHPREDIS=true
WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_SUBVERSION=false
WORKSPACE_INSTALL_BZ2=false
WORKSPACE_INSTALL_GMP=false
WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_PCOV=false WORKSPACE_INSTALL_PCOV=false
WORKSPACE_INSTALL_PHPDBG=false WORKSPACE_INSTALL_PHPDBG=false
WORKSPACE_INSTALL_SSH2=false WORKSPACE_INSTALL_SSH2=false
WORKSPACE_INSTALL_LDAP=false WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_GMP=false
WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_XSL=false WORKSPACE_INSTALL_XSL=false
WORKSPACE_INSTALL_SMB=false WORKSPACE_INSTALL_SMB=false
@ -158,6 +159,7 @@ WORKSPACE_INSTALL_FFMPEG=false
WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_GNU_PARALLEL=false
WORKSPACE_INSTALL_AST=true WORKSPACE_INSTALL_AST=true
WORKSPACE_AST_VERSION=1.0.3 WORKSPACE_AST_VERSION=1.0.3
WORKSPACE_INSTALL_GIT_PROMPT=false
### PHP_FPM ############################################### ### PHP_FPM ###############################################
@ -169,6 +171,8 @@ PHP_FPM_INSTALL_OPCACHE=true
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
PHP_FPM_INSTALL_PHPREDIS=true PHP_FPM_INSTALL_PHPREDIS=true
PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_BZ2=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_XDEBUG=false
PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_PCOV=false
PHP_FPM_INSTALL_XHPROF=false PHP_FPM_INSTALL_XHPROF=false
@ -183,7 +187,6 @@ PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SSH2=false PHP_FPM_INSTALL_SSH2=false
PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_XSL=false PHP_FPM_INSTALL_XSL=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_EXIF=false
PHP_FPM_INSTALL_AEROSPIKE=false PHP_FPM_INSTALL_AEROSPIKE=false
PHP_FPM_INSTALL_OCI8=false PHP_FPM_INSTALL_OCI8=false
@ -219,6 +222,8 @@ PHP_FPM_PGID=1000
### PHP_WORKER ############################################ ### PHP_WORKER ############################################
PHP_WORKER_INSTALL_BZ2=false
PHP_WORKER_INSTALL_GMP=false
PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_PGSQL=false
PHP_WORKER_INSTALL_BCMATH=false PHP_WORKER_INSTALL_BCMATH=false
PHP_WORKER_INSTALL_PHALCON=false PHP_WORKER_INSTALL_PHALCON=false
@ -230,7 +235,6 @@ PHP_WORKER_INSTALL_GHOSTSCRIPT=false
PHP_WORKER_INSTALL_SWOOLE=false PHP_WORKER_INSTALL_SWOOLE=false
PHP_WORKER_INSTALL_TAINT=false PHP_WORKER_INSTALL_TAINT=false
PHP_WORKER_INSTALL_FFMPEG=false PHP_WORKER_INSTALL_FFMPEG=false
PHP_WORKER_INSTALL_GMP=false
PHP_WORKER_INSTALL_CASSANDRA=false PHP_WORKER_INSTALL_CASSANDRA=false
PHP_WORKER_INSTALL_GEARMAN=false PHP_WORKER_INSTALL_GEARMAN=false
PHP_WORKER_INSTALL_REDIS=false PHP_WORKER_INSTALL_REDIS=false
@ -250,7 +254,10 @@ NGINX_SSL_PATH=./nginx/ssl/
### LARAVEL_HORIZON ################################################ ### LARAVEL_HORIZON ################################################
LARAVEL_HORIZON_INSTALL_BZ2=false
LARAVEL_HORIZON_INSTALL_GMP=false
LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_SOCKETS=false
LARAVEL_HORIZON_INSTALL_YAML=false
LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_PHPREDIS=true
LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_MONGO=false
LARAVEL_HORIZON_INSTALL_FFMPEG=false LARAVEL_HORIZON_INSTALL_FFMPEG=false
@ -315,6 +322,7 @@ MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
### POSTGRES ############################################## ### POSTGRES ##############################################
POSTGRES_VERSION=alpine
POSTGRES_DB=default POSTGRES_DB=default
POSTGRES_USER=default POSTGRES_USER=default
POSTGRES_PASSWORD=secret POSTGRES_PASSWORD=secret
@ -386,8 +394,8 @@ MAILDEV_SMTP_PORT=25
### VARNISH ############################################### ### VARNISH ###############################################
VARNISH_CONFIG=/etc/varnish/default.vcl VARNISH_CONFIG=/etc/varnish/default.vcl
VARNISH_PORT=8080 VARNISH_PORT=6081
VARNISH_BACKEND_PORT=8888 VARNISH_BACKEND_PORT=81
VARNISHD_PARAMS="-p default_ttl=3600 -p default_grace=3600" VARNISHD_PARAMS="-p default_ttl=3600 -p default_grace=3600"
### Varnish ############################################### ### Varnish ###############################################
@ -849,3 +857,6 @@ GEARMAN_MYSQL_PASSWORD_FILE=
GEARMAN_MYSQL_DB=Gearmand GEARMAN_MYSQL_DB=Gearmand
# Table to use by Gearman (Default: gearman_queue) # Table to use by Gearman (Default: gearman_queue)
GEARMAN_MYSQL_TABLE=gearman_queue GEARMAN_MYSQL_TABLE=gearman_queue
### ELK Stack ##################################################
ELK_VERSION=7.5.1

View File

@ -1,3 +1,4 @@
FROM docker.elastic.co/kibana/kibana:7.1.1 ARG ELK_VERSION=7.5.1
FROM docker.elastic.co/kibana/kibana:${ELK_VERSION}
EXPOSE 5601 EXPOSE 5601

View File

@ -4,11 +4,13 @@
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
ARG PHP_VERSION=${PHP_VERSION} ARG LARADOCK_PHP_VERSION
FROM php:${PHP_VERSION}-alpine FROM php:${LARADOCK_PHP_VERSION}-alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG LARADOCK_PHP_VERSION
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env. # If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
ARG CHANGE_SOURCE=false ARG CHANGE_SOURCE=false
@ -44,6 +46,20 @@ ENV PGID ${PGID}
RUN addgroup -g ${PGID} laradock && \ RUN addgroup -g ${PGID} laradock && \
adduser -D -G laradock -u ${PUID} laradock adduser -D -G laradock -u ${PUID} laradock
#Install BZ2:
ARG INSTALL_BZ2=false
RUN if [ ${INSTALL_BZ2} = true ]; then \
apk --update add bzip2-dev; \
docker-php-ext-install bz2 \
;fi
#Install GMP package:
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
apk add --update --no-cache gmp gmp-dev; \
docker-php-ext-install gmp \
;fi
#Install BCMath package: #Install BCMath package:
ARG INSTALL_BCMATH=false ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \ RUN if [ ${INSTALL_BCMATH} = true ]; then \
@ -63,12 +79,6 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \
&& docker-php-ext-install pdo_pgsql \ && docker-php-ext-install pdo_pgsql \
;fi ;fi
# Install Cassandra drivers:
ARG INSTALL_CASSANDRA=false
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
apk --update add cassandra-cpp-driver \
;fi
# Install PhpRedis package: # Install PhpRedis package:
ARG INSTALL_PHPREDIS=false ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
@ -84,6 +94,12 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \
apk add ffmpeg \ apk add ffmpeg \
;fi ;fi
# Install Cassandra drivers:
ARG INSTALL_CASSANDRA=false
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
apk --update add cassandra-cpp-driver \
;fi
WORKDIR /usr/src WORKDIR /usr/src
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
git clone https://github.com/datastax/php-driver.git \ git clone https://github.com/datastax/php-driver.git \
@ -105,6 +121,24 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
;fi ;fi
###########################################################################
# YAML: extension
###########################################################################
ARG INSTALL_YAML=false
RUN if [ ${INSTALL_YAML} = true ]; then \
apk --update add -U --no-cache --virtual temp yaml-dev \
&& apk add --no-cache yaml \
&& docker-php-source extract \
&& pecl channel-update pecl.php.net \
&& pecl install yaml \
&& docker-php-ext-enable yaml \
&& pecl clear-cache \
&& docker-php-source delete \
&& apk del temp \
;fi
########################################################################### ###########################################################################
# PHP Memcached: # PHP Memcached:

View File

@ -1,4 +1,5 @@
FROM docker.elastic.co/logstash/logstash:6.4.2 ARG ELK_VERSION=7.5.1
FROM docker.elastic.co/logstash/logstash:${ELK_VERSION}
USER root USER root
RUN rm -f /usr/share/logstash/pipeline/logstash.conf RUN rm -f /usr/share/logstash/pipeline/logstash.conf

View File

@ -1,4 +1,4 @@
ARG MYSQL_VERSION=latest ARG MYSQL_VERSION
FROM mysql:${MYSQL_VERSION} FROM mysql:${MYSQL_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"

View File

@ -18,6 +18,8 @@ RUN apk update \
&& apk add --no-cache openssl \ && apk add --no-cache openssl \
&& apk add --no-cache bash && apk add --no-cache bash
RUN apk add --no-cache curl
RUN set -x ; \ RUN set -x ; \
addgroup -g 82 -S www-data ; \ addgroup -g 82 -S www-data ; \
adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1 adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1
@ -39,4 +41,4 @@ ADD ./startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh RUN sed -i 's/\r//g' /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"] CMD ["/bin/bash", "/opt/startup.sh"]
EXPOSE 80 443 EXPOSE 80 81 443

View File

@ -0,0 +1,110 @@
server {
listen 80;
listen [::]:80;
server_name www.laravel.test;
rewrite ^(.*) https://laravel.test$1/ permanent;
}
server {
listen 80;
listen [::]:80;
server_name laravel.test;
rewrite ^(.*) https://laravel.test$1/ permanent;
}
server {
listen 443 ssl ;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl/laravel.test.crt;
ssl_certificate_key /etc/nginx/ssl/laravel.test.key;
server_name www.laravel.test;
rewrite ^(.*) https://laravel.test$1/ permanent;
}
server {
server_name laravel.test;
# For https
listen 443 ssl ;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl/laravel.test.crt;
ssl_certificate_key /etc/nginx/ssl/laravel.test.key;
port_in_redirect off;
add_header Strict-Transport-Security "max-age=31536000";
add_header X-Content-Type-Options nosniff;
location / {
proxy_pass http://proxy:6081;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header HTTPS "on";
proxy_redirect off;
}
}
server {
server_name laravel.test;
listen 81;
listen [::]:81;
root /var/www/laravel.test/www;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_max_temp_file_size 4m;
fastcgi_pass php-upstream;
# Additional configs
fastcgi_pass_header Set-Cookie;
fastcgi_pass_header Cookie;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
try_files $uri /index.php =404;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_intercept_errors on;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
# Caching
location ~* \.(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "public";
expires 14d;
}
location ~* \.(php|html)$ {
access_log on;
log_not_found on;
add_header Pragma public;
add_header Cache-Control "public";
expires 14d;
}
location ~ /\.ht {
deny all;
}
}

View File

@ -13,7 +13,6 @@
# #
ARG LARADOCK_PHP_VERSION ARG LARADOCK_PHP_VERSION
FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION} FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
@ -71,6 +70,31 @@ RUN set -xe; \
# - INSTALL_SOAP=true # - INSTALL_SOAP=true
# #
###########################################################################
# BZ2:
###########################################################################
ARG INSTALL_BZ2=false
RUN if [ ${INSTALL_BZ2} = true ]; then \
apt-get -y install libbz2-dev; \
docker-php-ext-install bz2 \
;fi
###########################################################################
# GMP (GNU Multiple Precision):
###########################################################################
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the GMP extension
apt-get install -y libgmp-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
;fi && \
docker-php-ext-install gmp \
;fi
########################################################################### ###########################################################################
# SSH2: # SSH2:
########################################################################### ###########################################################################
@ -194,7 +218,6 @@ RUN if [ ${INSTALL_PCOV} = true ]; then \
;fi \ ;fi \
;fi ;fi
########################################################################### ###########################################################################
# Phpdbg: # Phpdbg:
########################################################################### ###########################################################################
@ -330,7 +353,7 @@ ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \ RUN if [ ${INSTALL_AMQP} = true ]; then \
# download and install manually, to make sure it's compatible with ampq installed by pecl later # download and install manually, to make sure it's compatible with ampq installed by pecl later
# install cmake first # install cmake first
apt-get update && apt-get -y install cmake && \ apt-get -y install cmake && \
curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \ curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \
mkdir -p rabbitmq-c && \ mkdir -p rabbitmq-c && \
tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \ tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \
@ -352,7 +375,6 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
ARG INSTALL_GEARMAN=false ARG INSTALL_GEARMAN=false
RUN if [ ${INSTALL_GEARMAN} = true ]; then \ RUN if [ ${INSTALL_GEARMAN} = true ]; then \
apt-get update && \
apt-get -y install libgearman-dev && \ apt-get -y install libgearman-dev && \
cd /tmp && \ cd /tmp && \
curl -L https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.5.zip -O && \ curl -L https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.5.zip -O && \
@ -390,21 +412,6 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \ docker-php-ext-install bcmath \
;fi ;fi
###########################################################################
# GMP (GNU Multiple Precision):
###########################################################################
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the GMP extension
apt-get install -y libgmp-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
;fi && \
docker-php-ext-install gmp \
;fi
########################################################################### ###########################################################################
# PHP Memcached: # PHP Memcached:
########################################################################### ###########################################################################
@ -799,7 +806,6 @@ USER root
ARG INSTALL_MYSQL_CLIENT=false ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
apt-get update -yqq && \
if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \ if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \
apt-get -y install default-mysql-client \ apt-get -y install default-mysql-client \
;else \ ;else \
@ -816,7 +822,6 @@ USER root
ARG INSTALL_PING=false ARG INSTALL_PING=false
RUN if [ ${INSTALL_PING} = true ]; then \ RUN if [ ${INSTALL_PING} = true ]; then \
apt-get update -yqq && \
apt-get -y install inetutils-ping \ apt-get -y install inetutils-ping \
;fi ;fi
@ -829,7 +834,6 @@ USER root
ARG INSTALL_SSHPASS=false ARG INSTALL_SSHPASS=false
RUN if [ ${INSTALL_SSHPASS} = true ]; then \ RUN if [ ${INSTALL_SSHPASS} = true ]; then \
apt-get update -yqq && \
apt-get -y install sshpass \ apt-get -y install sshpass \
;fi ;fi
@ -842,7 +846,6 @@ USER root
ARG INSTALL_FFMPEG=false ARG INSTALL_FFMPEG=false
RUN if [ ${INSTALL_FFMPEG} = true ]; then \ RUN if [ ${INSTALL_FFMPEG} = true ]; then \
apt-get update -yqq && \
apt-get -y install ffmpeg \ apt-get -y install ffmpeg \
;fi ;fi

View File

@ -4,11 +4,13 @@
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
ARG PHP_VERSION=${PHP_VERSION} ARG LARADOCK_PHP_VERSION
FROM php:${PHP_VERSION}-alpine FROM php:${LARADOCK_PHP_VERSION}-alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG LARADOCK_PHP_VERSION
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env. # If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
ARG CHANGE_SOURCE=false ARG CHANGE_SOURCE=false
@ -44,6 +46,20 @@ ENV PGID ${PGID}
RUN addgroup -g ${PGID} laradock && \ RUN addgroup -g ${PGID} laradock && \
adduser -D -G laradock -u ${PUID} laradock adduser -D -G laradock -u ${PUID} laradock
#Install BZ2:
ARG INSTALL_BZ2=false
RUN if [ ${INSTALL_BZ2} = true ]; then \
apk --update add bzip2-dev; \
docker-php-ext-install bz2; \
fi
#Install GMP package:
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
apk add --update --no-cache gmp gmp-dev \
&& docker-php-ext-install gmp \
;fi
#Install SOAP package: #Install SOAP package:
ARG INSTALL_SOAP=false ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \ RUN if [ ${INSTALL_SOAP} = true ]; then \
@ -65,9 +81,14 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \
# Install ZipArchive: # Install ZipArchive:
ARG INSTALL_ZIP_ARCHIVE=false ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ RUN set -eux; \
if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
apk --update add libzip-dev && \ apk --update add libzip-dev && \
docker-php-ext-configure zip --with-libzip && \ if [ ${LARADOCK_PHP_VERSION} = "7.3" ] || [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \
docker-php-ext-configure zip; \
else \
docker-php-ext-configure zip --with-libzip; \
fi && \
# Install the zip extension # Install the zip extension
docker-php-ext-install zip \ docker-php-ext-install zip \
;fi ;fi
@ -75,7 +96,7 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install MySQL Client: # Install MySQL Client:
ARG INSTALL_MYSQL_CLIENT=false ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
if [ ${PHP_VERSION} = "7.3" ]; then \ if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \
apk --update add default-mysql-client \ apk --update add default-mysql-client \
;else \ ;else \
apk --update add mysql-client \ apk --update add mysql-client \
@ -148,13 +169,6 @@ RUN if [ $INSTALL_GHOSTSCRIPT = true ]; then \
apk --update add ghostscript \ apk --update add ghostscript \
;fi ;fi
#Install GMP package:
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
apk add --update --no-cache gmp gmp-dev \
&& docker-php-ext-install gmp \
;fi
# Install Redis package: # Install Redis package:
ARG INSTALL_REDIS=false ARG INSTALL_REDIS=false
RUN if [ ${INSTALL_REDIS} = true ]; then \ RUN if [ ${INSTALL_REDIS} = true ]; then \

View File

@ -1,6 +1,5 @@
FROM postgres:alpine ARG POSTGRES_VERSION=alpine
FROM postgres:${POSTGRES_VERSION}
LABEL maintainer="Ben M <git@bmagg.com>"
CMD ["postgres"] CMD ["postgres"]

View File

@ -1,16 +1,8 @@
FROM debian:latest FROM varnish:6.3
LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
# Set Environment Variables # Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
# Install Dependencies
RUN apt-get update && apt-get install -y apt-utils && apt-get upgrade -y
RUN mkdir /home/site && mkdir /home/site/cache
RUN apt-get install -y varnish
RUN rm -rf /var/lib/apt/lists/*
# Setting Configurations # Setting Configurations
ENV VARNISH_CONFIG /etc/varnish/default.vcl ENV VARNISH_CONFIG /etc/varnish/default.vcl
ENV CACHE_SIZE 128m ENV CACHE_SIZE 128m

View File

@ -52,6 +52,7 @@ sub vcl_init {
# vdir.add_backend(servern); # vdir.add_backend(servern);
} }
# This function is used when a request is send by a HTTP client (Browser)
sub vcl_recv { sub vcl_recv {
# Called at the beginning of a request, after the complete request has been received and parsed. # Called at the beginning of a request, after the complete request has been received and parsed.
# Its purpose is to decide whether or not to serve the request, how to do it, and, if applicable, # Its purpose is to decide whether or not to serve the request, how to do it, and, if applicable,
@ -75,8 +76,12 @@ sub vcl_recv {
# Not from an allowed IP? Then die with an error. # Not from an allowed IP? Then die with an error.
return (synth(405, "This IP is not allowed to send PURGE requests.")); return (synth(405, "This IP is not allowed to send PURGE requests."));
} }
# If you got this stage (and didn't error out above), purge the cached result
return (purge); ban("req.http.host == " + req.http.host);
# Throw a synthetic page so the request won't go to the backend.
return(synth(200, "Ban added"));
# If allowed, do a cache_lookup -> vlc_hit() or vlc_miss()
#return (purge);
} }
# Only deal with "normal" types # Only deal with "normal" types

View File

@ -0,0 +1,243 @@
vcl 4.1;
# Based on: https://github.com/mattiasgeniar/varnish-6.0-configuration-templates/blob/master/default.vcl
import std;
import directors;
backend everpracticalsolutionsServer { # Define one backend
.host = "${BACKEND_HOST}"; # IP or Hostname of backend
.port = "${BACKEND_PORT}"; # Port Apache or whatever is listening
.max_connections = 300; # That's it
.probe = {
#.url = "/"; # short easy way (GET /)
# We prefer to only do a HEAD /
.request =
"HEAD /health_check.php HTTP/1.1"
"Host: ${BACKEND_HOST}"
"Connection: close"
"User-Agent: Varnish Health Probe";
.interval = 5s; # check the health of each backend every 5 seconds
.timeout = 1s; # timing out after 1 second.
.window = 5; # If 3 out of the last 5 polls succeeded the backend is considered healthy, otherwise it will be marked as sick
.threshold = 3;
}
.first_byte_timeout = 300s; # How long to wait before we receive a first byte from our backend?
.connect_timeout = 5s; # How long to wait for a backend connection?
.between_bytes_timeout = 2s; # How long to wait between bytes received from our backend?
}
# Only allow purging from specific IPs
acl purge {
"localhost";
"127.0.0.1";
"192.168.16.5";
"192.168.16.6";
"185.228.234.203";
}
# This function is used when a request is send by a HTTP client (Browser)
sub vcl_recv {
# Normalize the header, remove the port (in case you're testing this on various TCP ports)
set req.http.Host = regsub(req.http.Host, ":[0-9]+", "");
# Allow purging from ACL
if (req.method == "PURGE") {
# If not allowed then a error 405 is returned
if (!client.ip ~ purge) {
return(synth(405, "This IP is not allowed to send PURGE requests."));
}
ban("req.http.host == " + req.http.host);
# Throw a synthetic page so the request won't go to the backend.
return(synth(200, "Ban added"));
# If allowed, do a cache_lookup -> vlc_hit() or vlc_miss()
#return (purge);
}
# Post requests will not be cached
if (req.http.Authorization || req.method == "POST") {
return (pass);
}
# --- WordPress specific configuration
# Did not cache the RSS feed
if (req.url ~ "/feed") {
return (pass);
}
# Blitz hack
if (req.url ~ "/mu-.*") {
return (pass);
}
# Did not cache the admin and login pages
if (req.url ~ "/wp-(login|admin)") {
return (pass);
}
# Remove the "has_js" cookie
set req.http.Cookie = regsuball(req.http.Cookie, "has_js=[^;]+(; )?", "");
# Remove any Google Analytics based cookies
set req.http.Cookie = regsuball(req.http.Cookie, "__utm.=[^;]+(; )?", "");
# Remove the Quant Capital cookies (added by some plugin, all __qca)
set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", "");
# Remove the wp-settings-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "");
# Remove the wp-settings-time-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "");
# Remove the wp test cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "");
# Are there cookies left with only spaces or that are empty?
if (req.http.cookie ~ "^ *$") {
unset req.http.cookie;
}
# Cache the following files extensions
if (req.url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico)") {
unset req.http.cookie;
}
# Normalize Accept-Encoding header and compression
# https://www.varnish-cache.org/docs/3.0/tutorial/vary.html
if (req.http.Accept-Encoding) {
# Do no compress compressed files...
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
unset req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
unset req.http.Accept-Encoding;
}
}
# Check the cookies for wordpress-specific items
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") {
return (pass);
}
if (!req.http.cookie) {
unset req.http.cookie;
}
# --- End of WordPress specific configuration
# Do not cache HTTP authentication and HTTP Cookie
if (req.http.Authorization || req.http.Cookie) {
# Not cacheable by default
return (pass);
}
# Cache all others requests
return (hash);
}
sub vcl_pipe {
return (pipe);
}
sub vcl_pass {
return (fetch);
}
# The data on which the hashing will take place
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
# If the client supports compression, keep that in a different cache
if (req.http.Accept-Encoding) {
hash_data(req.http.Accept-Encoding);
}
return (lookup);
}
# This function is used when a request is sent by our backend (Nginx server)
sub vcl_backend_response {
# Remove some headers we never want to see
unset beresp.http.Server;
unset beresp.http.X-Powered-By;
# For static content strip all backend cookies
if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico") {
unset beresp.http.cookie;
}
# Only allow cookies to be set if we're in admin area
if (beresp.http.Set-Cookie && bereq.url !~ "^/wp-(login|admin)") {
unset beresp.http.Set-Cookie;
}
# don't cache response to posted requests or those with basic auth
if ( bereq.method == "POST" || bereq.http.Authorization ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# don't cache search results
if ( bereq.url ~ "\?s=" ){
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# only cache status ok
if ( beresp.status != 200 ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# A TTL of 24h
set beresp.ttl = 24h;
# Define the default grace period to serve cached content
set beresp.grace = 30s;
return (deliver);
}
# The routine when we deliver the HTTP request to the user
# Last chance to modify headers that are sent to the client
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "cached";
} else {
set resp.http.x-Cache = "uncached";
}
# Remove some headers: PHP version
unset resp.http.X-Powered-By;
# Remove some headers: Apache version & OS
unset resp.http.Server;
# Remove some heanders: Varnish
unset resp.http.Via;
unset resp.http.X-Varnish;
return (deliver);
}
sub vcl_init {
return (ok);
}
sub vcl_fini {
return (ok);
}

View File

@ -7,6 +7,14 @@ do
sed -i "s|\${${name}}|${value}|g" /etc/varnish/default.vcl sed -i "s|\${${name}}|${value}|g" /etc/varnish/default.vcl
done done
echo "exec varnishd \
-a :$VARNISH_PORT \
-T localhost:6082 \
-F \
-f $VARNISH_CONFIG \
-s malloc,$CACHE_SIZE \
$VARNISHD_PARAMS"
exec bash -c \ exec bash -c \
"exec varnishd \ "exec varnishd \
-a :$VARNISH_PORT \ -a :$VARNISH_PORT \

View File

@ -13,7 +13,6 @@
# #
ARG LARADOCK_PHP_VERSION ARG LARADOCK_PHP_VERSION
FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION} FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>" LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
@ -234,20 +233,16 @@ RUN if [ ${INSTALL_WP_CLI} = true ]; then \
;fi ;fi
########################################################################### ###########################################################################
# SSH2: # BZ2:
########################################################################### ###########################################################################
USER root ARG INSTALL_BZ2=false
RUN if [ ${INSTALL_BZ2} = true ]; then \
ARG INSTALL_SSH2=false apt-get -y install php${LARADOCK_PHP_VERSION}-bz2 \
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the PHP SSH2 extension
apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \
;fi ;fi
########################################################################### ###########################################################################
# GMP: # GMP (GNU Multiple Precision):
########################################################################### ###########################################################################
USER root USER root
@ -260,6 +255,19 @@ RUN if [ ${INSTALL_GMP} = true ]; then \
apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \ apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \
;fi ;fi
###########################################################################
# SSH2:
###########################################################################
USER root
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the PHP SSH2 extension
apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \
;fi
########################################################################### ###########################################################################
# SOAP: # SOAP:
########################################################################### ###########################################################################
@ -1253,6 +1261,19 @@ RUN if [ ${INSTALL_GNU_PARALLEL} = true ]; then \
apt-get -y install parallel \ apt-get -y install parallel \
;fi ;fi
###########################################################################
# Bash Git Prompt
###########################################################################
ARG INSTALL_GIT_PROMPT=false
COPY git-prompt.sh /tmp/git-prompt
RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \
git clone https://github.com/magicmonty/bash-git-prompt.git /root/.bash-git-prompt --depth=1 && \
cat /tmp/git-prompt >> /root/.bashrc && \
rm /tmp/git-prompt \
;fi
########################################################################### ###########################################################################
# Check PHP version: # Check PHP version:

24
workspace/git-prompt.sh Normal file
View File

@ -0,0 +1,24 @@
# Settings info at https://github.com/magicmonty/bash-git-prompt
if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
# Set config variables first
GIT_PROMPT_ONLY_IN_REPO=1
GIT_PROMPT_FETCH_REMOTE_STATUS=0 # uncomment to avoid fetching remote status
GIT_PROMPT_IGNORE_SUBMODULES=1 # uncomment to avoid searching for changed files in submodules
# GIT_PROMPT_WITH_VIRTUAL_ENV=0 # uncomment to avoid setting virtual environment infos for node/python/conda environments
# GIT_PROMPT_SHOW_UPSTREAM=1 # uncomment to show upstream tracking branch
# GIT_PROMPT_SHOW_UNTRACKED_FILES=normal # can be no, normal or all; determines counting of untracked files
# GIT_PROMPT_SHOW_CHANGED_FILES_COUNT=0 # uncomment to avoid printing the number of changed files
# GIT_PROMPT_STATUS_COMMAND=gitstatus_pre-1.7.10.sh # uncomment to support Git older than 1.7.10
# GIT_PROMPT_START=... # uncomment for custom prompt start sequence
# GIT_PROMPT_END=... # uncomment for custom prompt end sequence
# as last entry source the gitprompt script
# GIT_PROMPT_THEME=Custom # use custom theme specified in file GIT_PROMPT_THEME_FILE (default ~/.git-prompt-colors.sh)
# GIT_PROMPT_THEME_FILE=~/.git-prompt-colors.sh
# GIT_PROMPT_THEME=Solarized # use theme optimized for solarized color scheme
source $HOME/.bash-git-prompt/gitprompt.sh
fi