1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
services:
# php 5.x with apache
template-5.x:
build:
context: 5.x
dockerfile: Dockerfile
ports:
- "8080:80"
volumes:
- ./5.x:/var/www/html
# php 7.x with apache
template-7.x:
build:
context: 7.x
dockerfile: Dockerfile
ports:
- "8080:80"
volumes:
- ./7.x:/var/www/html
# php 8.x with apache
template-8.x:
build:
context: 8.x
dockerfile: Dockerfile
ports:
- "8080:80"
volumes:
- ./8.x:/var/www/html
# WordPress with webshell plugin (php 8.x) (default user: admin, password: admin)
wordpress:
image: wordpress:latest
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DEBUG: 1
# Comment the volumes section to test the webshell functionalities
volumes:
- ./wordpress:/var/www/html/
# Admin with webshell plugin (php 8.x) (default user: admin, password: 123456789012)
joomla:
image: joomla:latest
ports:
- "8082:80"
environment:
JOOMLA_DB_HOST: mariadb
JOOMLA_DB_USER: root
JOOMLA_DB_PASSWORD: root
JOOMLA_DB_NAME: joomla
JOOMLA_DEBUG: 1
volumes:
- ./joomla:/var/www/html/
# Admin with webshell plugin (php 8.x) (default user: admin, password: 123456789012)
drupal:
image: drupal:latest
ports:
- "8083:80"
environment:
MYSQL_HOST: mariadb
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: drupal
volumes:
# Workaround for drupal files local mapping
- drupal:/var/www/html/
#########################################
# Sample webshell functionalities #
# This sections is for testing purposes #
#########################################
# mysql
mariadb:
image: mariadb:latest
environment:
MARIADB_ROOT_PASSWORD: root
MARIADB_DATABASE: example
MARIADB_USER: example_user
MARIADB_PASSWORD: example_user
ports:
- "3306:3306"
volumes:
- ./mariadb-docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
# openldap (default user: admin, password: admin)
openldap:
image: osixia/openldap:1.5.0
ports:
- '389:389'
- '636:636'
environment:
LDAP_ORGANISATION: "Example Inc."
LDAP_DOMAIN: "example.org"
LDAP_ADMIN_PASSWORD: "admin"
LDAP_TLS: false
volumes:
# Workaround for drupal files local mapping
drupal:
driver: local
driver_opts:
type: none
device: ./drupal/
o: bind