git subrepo clone https://github.com/TikiWiki/docker-tikiwiki.git tikiwiki/docker-tikiwiki
subrepo:
subdir: "tikiwiki/docker-tikiwiki"
merged: "f5d17ba"
upstream:
origin: "https://github.com/TikiWiki/docker-tikiwiki.git"
branch: "master"
commit: "f5d17ba"
git-subrepo:
version: "0.4.0"
origin: "???"
commit: "???"
diff --git a/tikiwiki/docker-tikiwiki/README.markdown b/tikiwiki/docker-tikiwiki/README.markdown
new file mode 100644
index 0000000..0d4d061
--- /dev/null
+++ b/tikiwiki/docker-tikiwiki/README.markdown
@@ -0,0 +1,203 @@
+# TikiWiki Docker Image
+
+TikiWiki is full featured content management system written in PHP. You can
+find more useful information at http://tiki.org
+
+## Pulling
+
+```
+docker pull tikiwiki/tikiwiki:19.x
+```
+
+## Running
+
+### Variables
+
+Some env variables are provided to setup the database, but you can also mount
+your configurations files inside container. The env vars and the default values
+are listed below and the names are self explanatory.
+
+```
+TIKI_DB_VERSION=19
+TIKI_DB_HOST='db'
+TIKI_DB_USER
+TIKI_DB_PASS
+TIKI_DB_NAME=tikiwiki
+```
+
+### Single container
+
+Example to get a running container below.
+
+```
+docker run --rm --name tiki --link mariadb:db \
+ -e TIKI_DB_USER=tiki \
+ -e TIKI_DB_PASS=wiki \
+ -p 80:80 \
+ -d tikiwiki/tikiwiki
+```
+
+### docker-compose
+
+The following creates and start two containers:
+
+1. TikiWiki with por 80 published on host
+2. MariaDB instance with the schema `tikiwiki`
+
+```yml
+version: '2'
+services:
+ tiki:
+ image: tikiwiki/tikiwiki:19.x
+ ports:
+ - "80:80"
+ depends_on:
+ - db
+ environment:
+ - TIKI_DB_USER=tiki
+ - TIKI_DB_PASS=wiki
+ - TIKI_DB_NAME=tikiwiki
+ db:
+ image: mariadb
+ environment:
+ - MYSQL_USER=tiki
+ - MYSQL_PASSWORD=wiki
+ - MYSQL_DATABASE=tikiwiki
+ - MYSQL_ROOT_PASSWORD=tkwkiiii
+ - TERM=dumb
+```
+
+### scalable mode with docker-compose
+
+The following recipe makes possible to grow the amount of TikiWiki
+containers, so in this way, it is possible to use more resources from
+host to handle incoming traffic.
+
+Concerning about this mode:
+
+1. It it not compatible to web installer, so installing database using
+command line is needed.
+2. It is needed to have a reverse proxy load balancing traffic to TikiWiki
+containers.
+
+#### docker-compose.yml
+
+This setup uses `eeacms/haproxy` container as reverse proxy and load balancer and
+declare a set of volumes. When new **tiki** containers are created, they will share
+the same set of volumes.
+
+```yml
+version: '3.7'
+
+services:
+ haproxy:
+ image: eeacms/haproxy
+ depends_on:
+ - tiki
+ ports:
+ - "80:5000"
+ environment:
+ BACKENDS: "tiki"
+ DNS_ENABLED: "true"
+ LOG_LEVEL: "info"
+ tiki:
+ image: tikiwiki/tikiwiki:19.x
+ depends_on:
+ - db
+ deploy:
+ replicas: 2
+ environment:
+ - TIKI_DB_USER=tiki
+ - TIKI_DB_PASS=wiki
+ - TIKI_DB_NAME=tikiwiki
+ volumes:
+ - tiki_files:/var/www/html/files/
+ - tiki_img_trackers:/var/www/html/img/trackers/
+ - tiki_img_wiki_up:/var/www/html/img/wiki_up/
+ - tiki_img_wiki:/var/www/html/img/wiki/
+ - tiki_modules_cache:/var/www/html/modules/cache/
+ - tiki_storage:/var/www/html/storage/
+ - tiki_temp:/var/www/html/temp/
+ - tiki_sessions:/var/www/sessions/
+ db:
+ image: mariadb
+ environment:
+ - MYSQL_USER=tiki
+ - MYSQL_PASSWORD=wiki
+ - MYSQL_DATABASE=tikiwiki
+ - MYSQL_ROOT_PASSWORD=tkwkiiii
+ - TERM=dumb
+volumes:
+ tiki_files:
+ tiki_img_trackers:
+ tiki_img_wiki_up:
+ tiki_img_wiki:
+ tiki_modules_cache:
+ tiki_storage:
+ tiki_temp:
+ tiki_sessions:
+```
+
+#### Starting containers
+
+First it is needed to copy the YML above in a folder with
+a descriptive name, like `example.com`.
+
+Then, inside the folder `example.com`, the following command
+starts all container from docker-compose.yml.
+
+```sh
+docker-compose up -d
+```
+
+After wait all containers to start and the console prompt appears
+again, the following command shows the containers running for
+docker-compose.yml on folder `example.com`.
+
+```
+docker-compose ps
+```
+
+The output should be like:
+
+```
+ Name Command State Ports
+------------------------------------------------------------------------------------
+examplecom_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
+examplecom_haproxy_1 /docker-entrypoint.sh hapr ... Up 0.0.0.0:80->5000/tcp
+examplecom_tiki_1 /entrypoint.sh apache2-for ... Up 443/tcp, 80/tcp
+```
+
+There is 1 container running for each service (**db**, **haproxy**, **tiki**)
+in **example.com** folder.
+
+
+#### Installing database
+
+There is a command line installer available in tiki folder that should be used
+to install the database. **WE CAN NOT USE THE WEB INSTALLER!**. The following
+command installs Tiki database
+
+```sh
+docker-compose exec tiki php console.php database:install
+```
+
+#### Scaling containers
+
+If more Tiki container is wanted, the following command launch new containers.
+
+```sh
+docker-compose scale tiki=3
+```
+
+Now, the following containers will be listed on `docker-compose ps`:
+
+```sh
+ Name Command State Ports
+------------------------------------------------------------------------------------
+examplecom_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
+examplecom_haproxy_1 /docker-entrypoint.sh hapr ... Up 0.0.0.0:80->5000/tcp
+examplecom_tiki_1 /entrypoint.sh apache2-for ... Up 443/tcp, 80/tcp
+examplecom_tiki_2 /entrypoint.sh apache2-for ... Up 443/tcp, 80/tcp
+examplecom_tiki_3 /entrypoint.sh apache2-for ... Up 443/tcp, 80/tcp
+```