You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2022/02/15 14:44:31 UTC

[myfaces-homepage] branch master updated: Tobago vm (#40)

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-homepage.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e1041f  Tobago vm (#40)
4e1041f is described below

commit 4e1041f899b03bea878abe7ae64d66c43f75a010
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Tue Feb 15 15:44:03 2022 +0100

    Tobago vm (#40)
    
    doc: Enhancements for tobago-vm demo
    
    * moving tobago-vm config from Tobago Project to the Homepage.
    * use www-data as user for Tomcat
    * update java distr.
    * update tomcat
    * user curl instead of ansible
    * run only the current snapshots
    * doc: domain tobago-vm -> tobaog-demo
    
    issue: TOBAGO-2112
    
    Co-authored-by: Udo Schnurpfeil <ud...@irian.eu>
---
 menu.md                                            |   2 +-
 tobago.md                                          |   4 +-
 tobago/demo.html                                   |   4 +-
 tobago/download.html                               |   4 +-
 tobago/faq.html                                    |   4 +-
 tobago/getting-started.html                        |   4 +-
 tobago/tobago-vm.sh                                |  14 ++
 tobago/tobago-vm/README.md                         |  51 +++++
 tobago/tobago-vm/apache-proxy/000-default.conf     | 141 ++++++++++++
 tobago/tobago-vm/apache-proxy/001-ssl.conf         | 147 +++++++++++++
 tobago/tobago-vm/apache-proxy/Dockerfile           |  43 ++++
 tobago/tobago-vm/apache-proxy/bootstrap.min.css    |   7 +
 .../tobago-vm/apache-proxy/bootstrap.min.css.map   |   1 +
 tobago/tobago-vm/apache-proxy/index.html           | 243 +++++++++++++++++++++
 tobago/tobago-vm/docker-compose.yml                | 191 ++++++++++++++++
 tobago/tobago-vm/tomcat/Dockerfile                 |  32 +++
 tobago/tobago-vm/tomcat/download-deploy-and-run.sh |  36 +++
 tobago/tobago-vm/tomcat/server.xml                 | 168 ++++++++++++++
 18 files changed, 1085 insertions(+), 11 deletions(-)

diff --git a/menu.md b/menu.md
index 8f161bc..9e57cd9 100644
--- a/menu.md
+++ b/menu.md
@@ -18,7 +18,7 @@
 - Tobago
   - [Getting Started](/tobago.md)
   - [Issue Tracker](https://issues.apache.org/jira/projects/TOBAGO/issues/)
-  - [Demo](http://tobago-vm.apache.org/)
+  - [Demo](http://tobago-demo.apache.org/)
   
 - [Legacy Wiki](https://cwiki.apache.org/confluence/display/MYFACES2/Home)
 - [Inactive Projects](/inactiveProjects.md)
diff --git a/tobago.md b/tobago.md
index f9bb37f..5bf8565 100644
--- a/tobago.md
+++ b/tobago.md
@@ -24,11 +24,11 @@ it different from other frameworks:
   
 ### Getting Started
          
-[Getting started page](http://tobago-vm.apache.org/getting-started.html) 
+[Getting started page](http://tobago-demo.apache.org/getting-started.html) 
 
 ### Downloads
 
-[Download page](http://tobago-vm.apache.org/download.html)
+[Download page](http://tobago-demo.apache.org/download.html)
   
 ## News
 
diff --git a/tobago/demo.html b/tobago/demo.html
index 3381f20..a9ce506 100644
--- a/tobago/demo.html
+++ b/tobago/demo.html
@@ -2,10 +2,10 @@
 <html lang="en-US">
 <head>
   <meta charset="UTF-8">
-  <meta http-equiv="refresh" content="5; url=https://tobago-vm.apache.org/">
+  <meta http-equiv="refresh" content="5; url=https://tobago-demo.apache.org/">
   <title>301 - Moved Permanently</title>
 </head>
 <body>
-If you are not redirected automatically, follow this <a href="https://tobago-vm.apache.org/">link</a>.
+If you are not redirected automatically, follow this <a href="https://tobago-demo.apache.org/">link</a>.
 </body>
 </html>
diff --git a/tobago/download.html b/tobago/download.html
index bbee58d..eca0e36 100644
--- a/tobago/download.html
+++ b/tobago/download.html
@@ -2,10 +2,10 @@
 <html lang="en-US">
 <head>
   <meta charset="UTF-8">
-  <meta http-equiv="refresh" content="5; url=https://tobago-vm.apache.org/download.html">
+  <meta http-equiv="refresh" content="5; url=https://tobago-demo.apache.org/download.html">
   <title>301 - Moved Permanently</title>
 </head>
 <body>
-If you are not redirected automatically, follow this <a href="https://tobago-vm.apache.org/download.html">link</a>.
+If you are not redirected automatically, follow this <a href="https://tobago-demo.apache.org/download.html">link</a>.
 </body>
 </html>
diff --git a/tobago/faq.html b/tobago/faq.html
index 245bd35..9d345fd 100644
--- a/tobago/faq.html
+++ b/tobago/faq.html
@@ -2,10 +2,10 @@
 <html lang="en-US">
 <head>
   <meta charset="UTF-8">
-  <meta http-equiv="refresh" content="5; url=https://tobago-vm.apache.org/faq.html">
+  <meta http-equiv="refresh" content="5; url=https://tobago-demo.apache.org/faq.html">
   <title>301 - Moved Permanently</title>
 </head>
 <body>
-If you are not redirected automatically, follow this <a href="https://tobago-vm.apache.org/faq.html">link</a>.
+If you are not redirected automatically, follow this <a href="https://tobago-demo.apache.org/faq.html">link</a>.
 </body>
 </html>
diff --git a/tobago/getting-started.html b/tobago/getting-started.html
index 13cd1a6..aa858eb 100644
--- a/tobago/getting-started.html
+++ b/tobago/getting-started.html
@@ -2,10 +2,10 @@
 <html lang="en-US">
 <head>
   <meta charset="UTF-8">
-  <meta http-equiv="refresh" content="5; url=https://tobago-vm.apache.org/getting-started.html">
+  <meta http-equiv="refresh" content="5; url=https://tobago-demo.apache.org/getting-started.html">
   <title>301 - Moved Permanently</title>
 </head>
 <body>
-If you are not redirected automatically, follow this <a href="https://tobago-vm.apache.org/getting-started.html">link</a>.
+If you are not redirected automatically, follow this <a href="https://tobago-demo.apache.org/getting-started.html">link</a>.
 </body>
 </html>
diff --git a/tobago/tobago-vm.sh b/tobago/tobago-vm.sh
new file mode 100755
index 0000000..ac616db
--- /dev/null
+++ b/tobago/tobago-vm.sh
@@ -0,0 +1,14 @@
+#! /bin/bash
+
+set -e
+
+#BRANCH=master
+BRANCH=tobago-vm
+
+curl https://codeload.github.com/apache/myfaces-homepage/tar.gz/refs/heads/${BRANCH} | tar xz --strip=2 myfaces-homepage-tobago-vm/tobago/${BRANCH}
+
+cd tobago-vm
+
+#docker compose down
+#docker system prune
+#docker compose up -d
diff --git a/tobago/tobago-vm/README.md b/tobago/tobago-vm/README.md
new file mode 100644
index 0000000..e93bf48
--- /dev/null
+++ b/tobago/tobago-vm/README.md
@@ -0,0 +1,51 @@
+# Run the different Tobago versions on tobago-demo.apache.org 
+
+The demo on tobago-demo works with docker. 
+Each user with an account on the vm and 
+member of the docker group can manage the containers.
+
+How to become root access is described on the
+[Apache site](https://reference.apache.org/committer/opie).
+
+There is a copy of the source code repo of Tobago in the directory 
+```/opt/docker/tobago/``` which contains the docker-compose configuration 
+in ```tobago-example/tobago-example-demo/src/main/tobago-vm/docker/```.
+
+## Initial installation
+
+Copy these file to the server and login there:
+
+```
+ssh tobago-demo.apache.org
+
+cd
+git clone https://github.com/apache/myfaces-tobago
+cd ~/myfaces-tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+
+docker-compose up -d
+```
+
+## Simple Update (only restart needed containers)
+
+only minor changes like version, or staging for votes: 
+
+```
+cd ~/myfaces-tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+git pull --rebase
+docker-compose build
+docker-compose up -d
+```
+
+## Full Update
+
+Update, rebuild, run: 
+
+```
+cd ~/myfaces-tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+git pull --rebase
+docker-compose down
+docker pull tomcat:8.5-jdk8-adoptopenjdk-hotspot
+docker pull debian:buster-slim
+docker-compose build
+docker-compose up -d
+```
diff --git a/tobago/tobago-vm/apache-proxy/000-default.conf b/tobago/tobago-vm/apache-proxy/000-default.conf
new file mode 100644
index 0000000..4ee982e
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/000-default.conf
@@ -0,0 +1,141 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ServerTokens ProductOnly
+ServerSignature Off
+
+ServerName tobago-demo.apache.org
+
+<VirtualHost *:80>
+
+  ServerName tobago-demo.apache.org
+  ServerAdmin dev@myfaces.apache.org
+
+  ErrorLog ${APACHE_LOG_DIR}/error.log
+  CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+# Permanent external links:
+  Redirect temp /intro.html             /demo-4-release/content/10-intro/intro.xhtml
+  Redirect temp /getting-started.html   /demo-4-release/content/10-intro/10-getting-started/getting-started.xhtml
+  Redirect temp /whats-new.html         /demo-4-release/content/10-intro/30-whats-new/whats-new.xhtml
+  Redirect temp /migration.html         /demo-4-release/content/10-intro/50-migration/migration.xhtml
+  Redirect temp /compatibility.html     /demo-4-release/content/10-intro/60-compatibility/compatibility.xhtml
+  Redirect temp /faq.html               /demo-4-release/content/10-intro/70-faq/faq.xhtml
+  Redirect temp /api.html               /demo-4-release/content/10-intro/80-api/api.xhtml
+  Redirect temp /download.html          /demo-4-release/content/10-intro/85-download/download.xhtml
+  Redirect temp /release-checklist.html /demo-4-release/content/10-intro/90-release-checklist/release-checklist.xhtml
+
+# 5
+
+  <Location /demo-5-release/>
+    ProxyPass "http://demo-5-release:8080/demo-5-release/"
+    ProxyPassReverse "http://demo-5-release:8080/demo-5-release/"
+  </Location>
+
+  <Location /demo-5-staging/>
+    ProxyPass "http://demo-5-staging:8080/demo-5-staging/"
+    ProxyPassReverse "http://demo-5-staging:8080/demo-5-staging/"
+  </Location>
+
+  <Location /demo-5-snapshot/>
+    ProxyPass "http://demo-5-snapshot:8080/demo-5-snapshot/"
+    ProxyPassReverse "http://demo-5-snapshot:8080/demo-5-snapshot/"
+  </Location>
+
+# 4
+
+  <Location /demo-4-release/>
+    ProxyPass "http://demo-4-release:8080/demo-4-release/"
+    ProxyPassReverse "http://demo-4-release:8080/demo-4-release/"
+  </Location>
+
+  <Location /demo-4-staging/>
+    ProxyPass "http://demo-4-staging:8080/demo-4-staging/"
+    ProxyPassReverse "http://demo-4-staging:8080/demo-4-staging/"
+  </Location>
+
+  <Location /demo-4-snapshot/>
+    ProxyPass "http://demo-4-snapshot:8080/demo-4-snapshot/"
+    ProxyPassReverse "http://demo-4-snapshot:8080/demo-4-snapshot/"
+  </Location>
+
+# 3
+
+  <Location /demo-3-release/>
+    ProxyPass "http://demo-3-release:8080/demo-3-release/"
+    ProxyPassReverse "http://demo-3-release:8080/demo-3-release/"
+  </Location>
+
+  <Location /demo-3-staging/>
+    ProxyPass "http://demo-3-staging:8080/demo-3-staging/"
+    ProxyPassReverse "http://demo-3-staging:8080/demo-3-staging/"
+  </Location>
+
+  <Location /demo-3-snapshot/>
+    ProxyPass "http://demo-3-snapshot:8080/demo-3-snapshot/"
+    ProxyPassReverse "http://demo-3-snapshot:8080/demo-3-snapshot/"
+  </Location>
+
+# 2
+
+  <Location /demo-2-release/>
+    ProxyPass "http://demo-2-release:8080/demo-2-release/"
+    ProxyPassReverse "http://demo-2-release:8080/demo-2-release/"
+  </Location>
+
+  <Location /demo-2-staging/>
+    ProxyPass "http://demo-2-staging:8080/demo-2-staging/"
+    ProxyPassReverse "http://demo-2-staging:8080/demo-2-staging/"
+  </Location>
+
+  <Location /demo-2-snapshot/>
+    ProxyPass "http://demo-2-snapshot:8080/demo-2-snapshot/"
+    ProxyPassReverse "http://demo-2-snapshot:8080/demo-2-snapshot/"
+  </Location>
+
+# 1.5
+
+  <Location /demo-1-5-release/>
+    ProxyPass "http://demo-1-5-release:8080/demo-1-5-release/"
+    ProxyPassReverse "http://demo-1-5-release:8080/demo-1-5-release/"
+  </Location>
+
+  <Location /demo-1-5-staging/>
+    ProxyPass "http://demo-1-5-staging:8080/demo-1-5-staging/"
+    ProxyPassReverse "http://demo-1-5-staging:8080/demo-1-5-staging/"
+  </Location>
+
+  <Location /demo-1-5-snapshot/>
+    ProxyPass "http://demo-1-5-snapshot:8080/demo-1-5-snapshot/"
+    ProxyPassReverse "http://demo-1-5-snapshot:8080/demo-1-5-snapshot/"
+  </Location>
+
+# 1.0
+
+  <Location /demo-1-0-release/>
+    ProxyPass "http://demo-1-0-release:8080/demo-1-0-release/"
+    ProxyPassReverse "http://demo-1-0-release:8080/demo-1-0-release/"
+  </Location>
+  <Location /demo-1-0-staging/>
+    ProxyPass "http://demo-1-0-staging:8080/demo-1-0-staging/"
+    ProxyPassReverse "http://demo-1-0-staging:8080/demo-1-0-staging/"
+  </Location>
+
+  <Location /demo-1-0-snapshot/>
+    ProxyPass "http://demo-1-0-snapshot:8080/demo-1-0-snapshot/"
+    ProxyPassReverse "http://demo-1-0-snapshot:8080/demo-1-0-snapshot/"
+  </Location>
+
+</VirtualHost>
diff --git a/tobago/tobago-vm/apache-proxy/001-ssl.conf b/tobago/tobago-vm/apache-proxy/001-ssl.conf
new file mode 100644
index 0000000..1b4bb13
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/001-ssl.conf
@@ -0,0 +1,147 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+MDCertificateAgreement accepted
+MDomain tobago-demo.apache.org
+
+<VirtualHost *:443>
+
+  ServerName tobago-demo.apache.org
+  ServerAdmin dev@myfaces.apache.org
+
+  ErrorLog ${APACHE_LOG_DIR}/error.log
+  CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+  SSLEngine on
+  # no certificates specification
+  SSLProtocol +TLSv1.2 +TLSv1.3
+  SSLHonorCipherOrder on
+  SSLCipherSuite 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'
+
+  Protocols h2 http/1.1 acme-tls/1
+
+# Permanent external links:
+  Redirect temp /intro.html             /demo-4-release/content/10-intro/intro.xhtml
+  Redirect temp /getting-started.html   /demo-4-release/content/10-intro/10-getting-started/getting-started.xhtml
+  Redirect temp /whats-new.html         /demo-4-release/content/10-intro/30-whats-new/whats-new.xhtml
+  Redirect temp /migration.html         /demo-4-release/content/10-intro/50-migration/migration.xhtml
+  Redirect temp /compatibility.html     /demo-4-release/content/10-intro/60-compatibility/compatibility.xhtml
+  Redirect temp /faq.html               /demo-4-release/content/10-intro/70-faq/faq.xhtml
+  Redirect temp /api.html               /demo-4-release/content/10-intro/80-api/api.xhtml
+  Redirect temp /download.html          /demo-4-release/content/10-intro/85-download/download.xhtml
+  Redirect temp /release-checklist.html /demo-4-release/content/10-intro/90-release-checklist/release-checklist.xhtml
+
+# 5
+
+  <Location /demo-5-release/>
+    ProxyPass "http://demo-5-release:8080/demo-5-release/"
+    ProxyPassReverse "http://demo-5-release:8080/demo-5-release/"
+  </Location>
+
+  <Location /demo-5-staging/>
+    ProxyPass "http://demo-5-staging:8080/demo-5-staging/"
+    ProxyPassReverse "http://demo-5-staging:8080/demo-5-staging/"
+  </Location>
+
+  <Location /demo-5-snapshot/>
+    ProxyPass "http://demo-5-snapshot:8080/demo-5-snapshot/"
+    ProxyPassReverse "http://demo-5-snapshot:8080/demo-5-snapshot/"
+  </Location>
+
+# 4
+
+  <Location /demo-4-release/>
+    ProxyPass "http://demo-4-release:8080/demo-4-release/"
+    ProxyPassReverse "http://demo-4-release:8080/demo-4-release/"
+  </Location>
+
+  <Location /demo-4-staging/>
+    ProxyPass "http://demo-4-staging:8080/demo-4-staging/"
+    ProxyPassReverse "http://demo-4-staging:8080/demo-4-staging/"
+  </Location>
+
+  <Location /demo-4-snapshot/>
+    ProxyPass "http://demo-4-snapshot:8080/demo-4-snapshot/"
+    ProxyPassReverse "http://demo-4-snapshot:8080/demo-4-snapshot/"
+  </Location>
+
+# 3
+
+  <Location /demo-3-release/>
+    ProxyPass "http://demo-3-release:8080/demo-3-release/"
+    ProxyPassReverse "http://demo-3-release:8080/demo-3-release/"
+  </Location>
+
+  <Location /demo-3-staging/>
+    ProxyPass "http://demo-3-staging:8080/demo-3-staging/"
+    ProxyPassReverse "http://demo-3-staging:8080/demo-3-staging/"
+  </Location>
+
+  <Location /demo-3-snapshot/>
+    ProxyPass "http://demo-3-snapshot:8080/demo-3-snapshot/"
+    ProxyPassReverse "http://demo-3-snapshot:8080/demo-3-snapshot/"
+  </Location>
+
+# 2
+
+  <Location /demo-2-release/>
+    ProxyPass "http://demo-2-release:8080/demo-2-release/"
+    ProxyPassReverse "http://demo-2-release:8080/demo-2-release/"
+  </Location>
+
+  <Location /demo-2-staging/>
+    ProxyPass "http://demo-2-staging:8080/demo-2-staging/"
+    ProxyPassReverse "http://demo-2-staging:8080/demo-2-staging/"
+  </Location>
+
+  <Location /demo-2-snapshot/>
+    ProxyPass "http://demo-2-snapshot:8080/demo-2-snapshot/"
+    ProxyPassReverse "http://demo-2-snapshot:8080/demo-2-snapshot/"
+  </Location>
+
+# 1.5
+
+  <Location /demo-1-5-release/>
+    ProxyPass "http://demo-1-5-release:8080/demo-1-5-release/"
+    ProxyPassReverse "http://demo-1-5-release:8080/demo-1-5-release/"
+  </Location>
+
+  <Location /demo-1-5-staging/>
+    ProxyPass "http://demo-1-5-staging:8080/demo-1-5-staging/"
+    ProxyPassReverse "http://demo-1-5-staging:8080/demo-1-5-staging/"
+  </Location>
+
+  <Location /demo-1-5-snapshot/>
+    ProxyPass "http://demo-1-5-snapshot:8080/demo-1-5-snapshot/"
+    ProxyPassReverse "http://demo-1-5-snapshot:8080/demo-1-5-snapshot/"
+  </Location>
+
+# 1.0
+
+  <Location /demo-1-0-release/>
+    ProxyPass "http://demo-1-0-release:8080/demo-1-0-release/"
+    ProxyPassReverse "http://demo-1-0-release:8080/demo-1-0-release/"
+  </Location>
+  <Location /demo-1-0-staging/>
+    ProxyPass "http://demo-1-0-staging:8080/demo-1-0-staging/"
+    ProxyPassReverse "http://demo-1-0-staging:8080/demo-1-0-staging/"
+  </Location>
+
+  <Location /demo-1-0-snapshot/>
+    ProxyPass "http://demo-1-0-snapshot:8080/demo-1-0-snapshot/"
+    ProxyPassReverse "http://demo-1-0-snapshot:8080/demo-1-0-snapshot/"
+  </Location>
+
+</VirtualHost>
diff --git a/tobago/tobago-vm/apache-proxy/Dockerfile b/tobago/tobago-vm/apache-proxy/Dockerfile
new file mode 100644
index 0000000..5336410
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/Dockerfile
@@ -0,0 +1,43 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM debian:buster-slim
+
+RUN echo "deb http://deb.debian.org/debian buster-backports main" >/etc/apt/sources.list.d/buster-backports.list
+
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y less vim \
+ && apt-get install -y -t buster-backports apache2 \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN a2enmod proxy proxy_http ssl md
+
+COPY 000-default.conf 001-ssl.conf /etc/apache2/sites-enabled/
+COPY *.html /var/www/html/
+COPY *.css *.css.map /var/www/html/
+
+ENV APACHE_RUN_USER www-data
+ENV APACHE_RUN_GROUP www-data
+ENV APACHE_RUN_DIR /var/run/apache2
+ENV APACHE_LOG_DIR /var/log/apache2
+ENV APACHE_PID_FILE $APACHE_RUN_DIR/apache2.pid
+
+RUN mkdir -p ${APACHE_RUN_DIR} ${APACHE_LOG_DIR}
+
+EXPOSE 80
+
+CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
diff --git a/tobago/tobago-vm/apache-proxy/bootstrap.min.css b/tobago/tobago-vm/apache-proxy/bootstrap.min.css
new file mode 100644
index 0000000..b161ce1
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/bootstrap.min.css
@@ -0,0 +1,7 @@
+@charset "UTF-8";/*!
+ * Bootstrap v5.0.1 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neu [...]
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago/tobago-vm/apache-proxy/bootstrap.min.css.map b/tobago/tobago-vm/apache-proxy/bootstrap.min.css.map
new file mode 100644
index 0000000..7b08486
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/bootstrap.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.sc [...]
\ No newline at end of file
diff --git a/tobago/tobago-vm/apache-proxy/index.html b/tobago/tobago-vm/apache-proxy/index.html
new file mode 100644
index 0000000..c874678
--- /dev/null
+++ b/tobago/tobago-vm/apache-proxy/index.html
@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+  <title>Tobago Demo</title>
+  <link href="bootstrap.min.css" rel="stylesheet">
+  <style>
+    div.disabled {
+      opacity: 0.3;
+    }
+
+    .na {
+      text-align: center;
+      vertical-align: middle;
+    }
+  </style>
+  <script>
+
+    document.addEventListener("DOMContentLoaded", function (event) {
+
+      //
+      // EDIT HERE (START)
+      //
+
+      var versions = [
+        {
+          major: "5",
+          release: "",
+          staging: "",
+          snapshot: "5.1.0-SNAPSHOT",
+          link: "5",
+          archived: false,
+          current: true
+        },
+        {
+          major: "4",
+          release: "",
+          staging: "",
+          snapshot: "4.5.5-SNAPSHOT",
+          link: "4",
+          archived: false,
+          current: false
+        },
+/*        {
+          major: "3",
+          release: "",
+          staging: "",
+          snapshot: "",
+          link: "3",
+          archived: true
+        },*/
+        {
+          major: "2",
+          release: "",
+          staging: "",
+          snapshot: "2.4.5-SNAPSHOT",
+          link: "2",
+          archived: false,
+          current: false
+        },
+/*        {
+          major: "1.5",
+          release: "",
+          staging: "",
+          snapshot: "",
+          link: "1-5",
+          archived: true
+
+        },
+        {
+          major: "1.0",
+          release: "",
+          staging: "",
+          snapshot: "",
+          link: "1-0",
+          archived: true
+        }*/
+      ];
+
+      //
+      // EDIT HERE (END)
+      //
+
+      var template = document.getElementById("template");
+
+      for (var v = 0; v < versions.length; v++) {
+        var version = versions[v];
+        var clone = template.cloneNode(true);
+        clone.removeAttribute("id");
+
+        clone.classList.remove("d-none");
+        template.parentNode.insertBefore(clone, template);
+
+        clone.querySelector(".x-title").append(version.major);
+//        clone.querySelector(".x-release-version").append(version.release);
+//        clone.querySelector(".x-staging-version").prepend(version.staging + " ");
+        clone.querySelector(".x-snapshot-version").append(version.snapshot);
+
+/*
+        if (version.release) {
+          clone.querySelector(".x-release-off").classList.remove("d-md-flex");
+        } else {
+          clone.querySelector(".x-release-on").classList.add("d-none");
+        }
+
+        if (version.staging) {
+          clone.querySelector(".x-staging-off").classList.remove("d-md-flex");
+        } else {
+          clone.querySelector(".x-staging-on").classList.add("d-none");
+        }
+*/
+
+        if (version.snapshot) {
+//          clone.querySelector(".x-snapshot-off").classList.remove("d-md-flex");
+        } else {
+          clone.querySelector(".x-snapshot-on").classList.add("d-none");
+        }
+
+        if (version.current) {
+          clone.querySelector(".x-snapshot-link").classList.add("btn-success");
+        } else {
+          clone.querySelector(".x-snapshot-link").classList.add("btn-warning");
+        }
+
+
+//        clone.querySelector(".x-release-link").setAttribute("href", "/demo-" + version.link + "-release/");
+//        clone.querySelector(".x-staging-link").setAttribute("href", "/demo-" + version.link + "-staging/");
+        clone.querySelector(".x-snapshot-link").setAttribute("href", "/demo-" + version.link + "-snapshot/");
+
+        if (version.archived) {
+          let button = clone.querySelector(".btn-success");
+          if (button) {
+            const buttonClassList = button.classList;
+            buttonClassList.remove("btn-success");
+            buttonClassList.add("btn-secondary");
+            clone.querySelector(".x-release-version").append(" (archived)");
+          }
+        }
+
+      }
+
+    });
+  </script>
+</head>
+<body class="bd-home">
+
+<!--
+<header class="navbar navbar-dark flex-column flex-md-row bd-navbar bg-dark">
+  <a class="navbar-brand" href="https://myfaces.apache.org/tobago/">Tobago</a>
+</header>
+-->
+<main class="bd-masthead" id="content" role="main">
+
+  <div class="container p-5">
+
+    <div class="row">
+
+      <div class="m-0 border border-white d-md-flex bg-light col-12">
+        <h1>Demo Applications of Tobago</h1>
+      </div>
+
+      <noscript class="jumbotron masthead-followup row m-0 border border-white bg-warning">
+      <h3>Please activate JavaScript, to use this page!</h3>
+    </noscript>
+
+    <!--
+        <div class="jumbotron masthead-followup row m-0 border border-white d-md-flex d-none">
+          <h1>Demo Applications of Tobago</h1>
+        </div>
+
+        <div class="jumbotron masthead-followup row m-0 border border-white d-md-none">
+          <h2>Tobago Demo</h2>
+        </div>
+        <div class="masthead-followup row m-0 border border-white d-md-flex d-none">
+          <div class="col-12 col-md-4 p-3 p-md-5 bg-success border border-white">
+            <h3>Release</h3>
+          </div>
+          <div class="col-12 col-md-4 p-3 p-md-5 bg-warning border border-white">
+            <h3>Staging</h3>
+          </div>
+          <div class="col-12 col-md-4 p-3 p-md-5 bg-danger border border-white">
+            <h3>Snapshot</h3>
+          </div>
+        </div>
+    -->
+    <!-- template -->
+
+    <!--
+        <div id="template"
+             class="masthead-followup row m-0 border border-white d-none">
+
+          <div class="x-release-on col-12 col-md-4 p-3 p-md-5 bg-light border border-white">
+            <h3 class="x-title">Tobago </h3>
+            <h5 class="x-release-version"></h5>
+            <p>Last released version.</p>
+            <a class="x-release-link btn btn-success" href="/">Demo</a>
+          </div>
+          <div class="x-release-off col-12 col-md-4 p-3 p-md-5 bg-light border border-white disabled d-md-flex d-none">
+            <h3 class="na">Not released yet.</h3>
+          </div>
+    -->
+
+      <!--
+            <div class="x-staging-on col-12 col-md-4 p-3 p-md-5 bg-light border border-white">
+              <h3 class="x-title">Tobago </h3>
+              <h5 class="x-staging-version">(not released yet)</h5>
+              <p>Voting in progress.</p>
+              <a class="x-staging-link btn btn-warning" href="/">Demo</a>
+            </div>
+            <div class="x-staging-off col-12 col-md-4 p-3 p-md-5 bg-light border border-white disabled d-md-flex d-none">
+              <h3 class="na">Currently no voting active.</h3>
+            </div>
+            -->
+
+      <div id="template" class="x-snapshot-on col-12 col-md-6 col-lg-4 p-3 p-md-5 bg-light border border-white d-none">
+        <h3 class="x-title">Tobago </h3>
+        <h5 class="x-snapshot-version"></h5>
+        <p>Current development version. Work in progress.</p>
+        <a class="x-snapshot-link btn btn-success" href="/">Demo</a>
+      </div>
+<!--
+      <div class="x-snapshot-off col-12 col-md-4 p-3 p-md-5 bg-light border border-white disabled d-md-flex d-none">
+        <h3 class="na">No active development.</h3>
+      </div>
+    </div>
+-->
+
+  </div>
+  </div>
+</main>
+
+<div class="container">
+<footer class="bd-footer text-muted">
+  <div class="container-fluid p-3 p-md-5">
+    <p>© 2005-2022 Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">
+      Apache License, Version 2.0</a>.</p>
+  </div>
+</footer>
+</div>
+
+</body>
+</html>
diff --git a/tobago/tobago-vm/docker-compose.yml b/tobago/tobago-vm/docker-compose.yml
new file mode 100644
index 0000000..6773bba
--- /dev/null
+++ b/tobago/tobago-vm/docker-compose.yml
@@ -0,0 +1,191 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+version: '2'
+services:
+  apache:
+    build: apache-proxy
+    ports:
+      - "80:80"
+      - "443:443"
+    logging:
+      options:
+        max-size: "1m"
+        max-file: "5"
+    links:
+#      - demo-5-release
+#      - demo-5-staging
+      - demo-5-snapshot
+#      - demo-4-release
+#      - demo-4-staging
+      - demo-4-snapshot
+#      - demo-3-release
+#      - demo-2-release
+#      - demo-2-staging
+      - demo-2-snapshot
+#      - demo-1-5-release
+#      - demo-1-5-staging
+#      - demo-1-5-snapshot
+#      - demo-1-0-release
+#      - demo-1-0-staging
+#      - demo-1-0-snapshot
+    depends_on:
+#      - demo-5-release
+#      - demo-5-staging
+      - demo-5-snapshot
+#      - demo-4-release
+#      - demo-4-staging
+      - demo-4-snapshot
+#      - demo-3-release
+#      - demo-2-release
+#      - demo-2-staging
+      - demo-2-snapshot
+#      - demo-1-5-release
+#      - demo-1-0-release
+#  demo-5-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=5.0.0
+#      - CONTEXT_PATH=demo-5-release
+#    ports:
+#      - "8500:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+#  demo-5-staging:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=5.0.0
+#      - STAGING_NUMBER=1196
+#      - CONTEXT_PATH=demo-5-staging
+#    ports:
+#      - "8501:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+  demo-5-snapshot:
+    build: tomcat
+    environment:
+      - TOBAGO_VERSION=5.1.0-SNAPSHOT
+      - CONTEXT_PATH=demo-5-snapshot
+    ports:
+      - "8502:8080"
+    logging:
+      options:
+        max-size: "1m"
+        max-file: "5"
+#  demo-4-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=4.5.4
+#      - CONTEXT_PATH=demo-4-release
+#    ports:
+#      - "8400:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+#  demo-4-staging:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=4.5.4
+#      - STAGING_NUMBER=1191
+#      - CONTEXT_PATH=demo-4-staging
+#    ports:
+#      - "8401:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+  demo-4-snapshot:
+    build: tomcat
+    environment:
+      - TOBAGO_VERSION=4.5.5-SNAPSHOT
+      - CONTEXT_PATH=demo-4-snapshot
+    ports:
+      - "8402:8080"
+    logging:
+      options:
+        max-size: "1m"
+        max-file: "5"
+#  demo-3-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=3.1.1
+#      - CONTEXT_PATH=demo-3-release
+#    ports:
+#      - "8300:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+#  demo-2-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=2.4.4
+#      - CONTEXT_PATH=demo-2-release
+#    ports:
+#      - "8200:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+#  demo-2-staging:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=2.4.4
+#      - STAGING_NUMBER=1179
+#      - CONTEXT_PATH=demo-2-staging
+#    ports:
+#      - "8201:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+  demo-2-snapshot:
+    build: tomcat
+    environment:
+      - TOBAGO_VERSION=2.4.5-SNAPSHOT
+      - CONTEXT_PATH=demo-2-snapshot
+    ports:
+      - "8202:8080"
+    logging:
+      options:
+        max-size: "1m"
+        max-file: "5"
+#  demo-1-5-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=1.5.13
+#      - CONTEXT_PATH=demo-1-5-release
+#    ports:
+#      - "8150:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
+#  demo-1-0-release:
+#    build: tomcat
+#    environment:
+#      - TOBAGO_VERSION=1.0.42
+#      - CONTEXT_PATH=demo-1-0-release
+#    ports:
+#      - "8100:8080"
+#    logging:
+#      options:
+#        max-size: "1m"
+#        max-file: "5"
diff --git a/tobago/tobago-vm/tomcat/Dockerfile b/tobago/tobago-vm/tomcat/Dockerfile
new file mode 100644
index 0000000..5990eea
--- /dev/null
+++ b/tobago/tobago-vm/tomcat/Dockerfile
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM tomcat:8.5-jdk8-temurin
+MAINTAINER dev@myfaces.apache.org
+
+RUN rm -r /usr/local/tomcat/webapps.dist
+
+COPY server.xml /usr/local/tomcat/conf
+COPY download-deploy-and-run.sh /usr/local/tomcat/bin
+RUN chmod +x /usr/local/tomcat/bin/download-deploy-and-run.sh
+
+#ENV TOBAGO_VERSION undefined
+#ENV CONTEXT_PATH ROOT
+
+RUN chown -R www-data:www-data /usr/local/tomcat
+
+USER www-data
+
+CMD ["download-deploy-and-run.sh"]
diff --git a/tobago/tobago-vm/tomcat/download-deploy-and-run.sh b/tobago/tobago-vm/tomcat/download-deploy-and-run.sh
new file mode 100644
index 0000000..5958611
--- /dev/null
+++ b/tobago/tobago-vm/tomcat/download-deploy-and-run.sh
@@ -0,0 +1,36 @@
+#! /bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ ${TOBAGO_VERSION} == *-SNAPSHOT ]]; then
+   REPO=snapshots
+elif [[ ${STAGING_NUMBER} ]]; then
+#todo: not tested yet
+  REPO=orgapachemyfaces-${STAGING_NUMBER}
+else
+  REPO=releases
+fi
+
+TARGET=/usr/local/tomcat/webapps/${CONTEXT_PATH}
+ARTIFACT=/usr/local/tomcat/tobago-example-demo-${TOBAGO_VERSION}.war
+
+set -x
+curl -o ${ARTIFACT} "https://repository.apache.org/service/local/artifact/maven/content?r=${REPO}&g=org.apache.myfaces.tobago&a=tobago-example-demo&p=war&v=${TOBAGO_VERSION}"
+
+mkdir ${TARGET}
+pushd ${TARGET} && jar xf ${ARTIFACT}
+
+catalina.sh run
diff --git a/tobago/tobago-vm/tomcat/server.xml b/tobago/tobago-vm/tomcat/server.xml
new file mode 100644
index 0000000..7968383
--- /dev/null
+++ b/tobago/tobago-vm/tomcat/server.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <!--
+      Licensed to the Apache Software Foundation (ASF) under one or more
+      contributor license agreements.  See the NOTICE file distributed with
+      this work for additional information regarding copyright ownership.
+      The ASF licenses this file to You under the Apache License, Version 2.0
+      (the "License"); you may not use this file except in compliance with
+      the License.  You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+      Unless required by applicable law or agreed to in writing, software
+      distributed under the License is distributed on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+      See the License for the specific language governing permissions and
+      limitations under the License.
+    -->
+    <!-- Note:  A "Server" is not itself a "Container", so you may not
+         define subcomponents such as "Valves" at this level.
+         Documentation at /docs/config/server.html
+     -->
+<Server port="8005" shutdown="SHUTDOWN">
+  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
+  <!-- Security listener. Documentation at /docs/config/listeners.html
+  <Listener className="org.apache.catalina.security.SecurityListener" />
+  -->
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+  <!-- Global JNDI resources
+       Documentation at /docs/jndi-resources-howto.html
+  -->
+  <GlobalNamingResources>
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users
+    -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+              description="User database that can be updated and saved"
+              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+              pathname="conf/tomcat-users.xml" />
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" Note:  A "Service" is not itself a "Container",
+       so you may not define subcomponents such as "Valves" at this level.
+       Documentation at /docs/config/service.html
+   -->
+  <Service name="Catalina">
+
+    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
+    <!--
+    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+        maxThreads="150" minSpareThreads="4"/>
+    -->
+
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned. Documentation at :
+         Java HTTP Connector: /docs/config/http.html
+         Java AJP  Connector: /docs/config/ajp.html
+         APR (HTTP/AJP) Connector: /docs/apr.html
+         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
+    -->
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+    <!-- A "Connector" using the shared thread pool-->
+    <!--
+    <Connector executor="tomcatThreadPool"
+               port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+    -->
+    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
+         This connector uses the NIO implementation. The default
+         SSLImplementation will depend on the presence of the APR/native
+         library and the useOpenSSL attribute of the
+         AprLifecycleListener.
+         Either JSSE or OpenSSL style configuration may be used regardless of
+         the SSLImplementation selected. JSSE style configuration is used below.
+    -->
+    <!--
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
+               maxThreads="150" SSLEnabled="true">
+        <SSLHostConfig>
+            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
+                         type="RSA" />
+        </SSLHostConfig>
+    </Connector>
+    -->
+    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
+         This connector uses the APR/native implementation which always uses
+         OpenSSL for TLS.
+         Either JSSE or OpenSSL style configuration may be used. OpenSSL style
+         configuration is used below.
+    -->
+    <!--
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
+               maxThreads="150" SSLEnabled="true" >
+        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
+        <SSLHostConfig>
+            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
+                         certificateFile="conf/localhost-rsa-cert.pem"
+                         certificateChainFile="conf/localhost-rsa-chain.pem"
+                         type="RSA" />
+        </SSLHostConfig>
+    </Connector>
+    -->
+
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+<!--    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
+
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host).
+         Documentation at /docs/config/engine.html -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+    -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!--For clustering, please take a look at documentation at:
+          /docs/cluster-howto.html  (simple how to)
+          /docs/config/cluster.html (reference documentation) -->
+      <!--
+      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+      -->
+
+      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
+           via a brute-force attack -->
+<!--      <Realm className="org.apache.catalina.realm.LockOutRealm">-->
+        <!-- This Realm uses the UserDatabase configured in the global JNDI
+             resources under the key "UserDatabase".  Any edits
+             that are performed against this UserDatabase are immediately
+             available for use by the Realm.  -->
+<!--        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"-->
+<!--               resourceName="UserDatabase"/>-->
+<!--      </Realm>-->
+
+      <Host name="localhost" appBase="webapps" autoDeploy="true">
+<!--      <Host name="localhost"  appBase="webapps"-->
+<!--            unpackWARs="true" autoDeploy="true">-->
+
+        <!-- SingleSignOn valve, share authentication between web applications
+             Documentation at: /docs/config/valve.html -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+        -->
+
+        <!-- Access log processes all example.
+             Documentation at: /docs/config/valve.html
+             Note: The pattern used is equivalent to using pattern="common" -->
+        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+               prefix="localhost_access_log" suffix=".txt"
+               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
+
+      </Host>
+    </Engine>
+  </Service>
+</Server>