<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi in ThingWorx Developers</title>
    <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534531#M25590</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael, &lt;/P&gt;&lt;P&gt;are you using a Pi 3 B? &lt;/P&gt;&lt;P&gt;What minimum size does the SD card need to have?&lt;/P&gt;&lt;P&gt;Regards, Rainer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 01 Mar 2017 22:28:30 GMT</pubDate>
    <dc:creator>rweber</dc:creator>
    <dc:date>2017-03-01T22:28:30Z</dc:date>
    <item>
      <title>DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534530#M25589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000; font-size: 12pt;"&gt;&lt;STRONG&gt;Big fat red warning!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;This is intended for educational purposes only!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;This post is about installing ThingWorx on a highly unsupported environment. It's neither recommended nor encouraged to set up a system like this any other than strictly educational purposes or for creating a mobile mockup that can easily be taken on the road. Any system experiencing errors, performance issues or other kind of weird errors based on this installation guide is not supported at all by PTC / ThingWorx and has neither been blessed by R&amp;amp;D nor QA.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;Installing ThingWorx on a Raspberry Pi&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This blog post holds information on installing ThingWorx in a &lt;STRONG&gt;highly unsupported&lt;/STRONG&gt; environment (Raspberry Pi, Tomcat 8.5.3, 32-Bit). If you have not read the warning above, now is the time to read it!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Though the environment is not supported, ThingWorx can be used utilizing a Raspberry Pi as a server to receive either information from the Raspberry Pi itself or from other connected Things and Sensors. This can be used for small demonstration applications where memory and CPU are not of utmost importance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Configuring the Raspberry Pi as a WIFI hotspot / access point will even allow to connect to the server directly without utilizing e.g. the PTC- or a customer-network infrastructure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Warning&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This project is not a typical setup for ThingWorx and is neither intended for any real environments nor for any actual usage. It's purely designed as a demonstration environment to explore the ThingWorx user interface and connect a minimal amount of devices / sensors. The typical use case would be to set up an Edge MicroServer (EMS) or a Java Edge SDK on the Raspberry Pi and send data to a ThingWorx instance hosted on a proper server with more capable hardware and resources.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And because this scenario is highly unsupported anyway, we're not even looking into securing the system (e.g. through firewalls).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Common Sense Warning&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is assumed that all commands are executed correctly and without an error message.&lt;/P&gt;&lt;P&gt;Should any errors show up during the installation / configuration, don't just continue with the rest of the commands - it won't work.&lt;/P&gt;&lt;P&gt;Troubleshoot and fix the immediate issue before continuing with the rest of guide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Performance Warning&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Due to the lean resource design of the Raspberry Pi, this guide purely focuses on deploying the &lt;STRONG&gt;Neo4J&lt;/STRONG&gt; version of ThingWorx (only).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;You've been warned four times now (just saying...)&lt;/EM&gt; &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_macro_name="toc" class="jive_macro_toc jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/tiny_mce3/plugins/jiveemoticons/images/spacer.gif" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;About&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the first part of a &lt;STRONG&gt;ThingBerry&lt;/STRONG&gt; related blog post series.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000; font-size: 13.3333px;"&gt;&lt;STRONG&gt;&lt;IMG __jive_id="4492" alt="thingberry_small.png" class="image-1 jive-image" src="https://www.ptcusercommunity.com/legacyfs/online/thingworx/4492_thingberry_small.png" /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ThingBerry is &lt;STRONG&gt;Thing&lt;/STRONG&gt;Worx installed on a Rasp&lt;STRONG&gt;Berry&lt;/STRONG&gt; Pi, which can be used for portable demonstrations without the need of utilizing e.g. customer networks. Instead the ThingBerry provides its own custom WIFI hotspot and allows Things to connect and send / receive demo data on a small scale.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this particual blog post we'll discuss on how to setup the Raspberry Pi and how to install ThingWorx on it.&lt;/P&gt;&lt;P&gt;Other parts will cover topics like setting up the ThingBerry as a WIFI hotspot, federation or using TLS to secure the connections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;Installing the Raspberry Pi&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This installation is going to use a command line version of &lt;STRONG&gt;Raspbian Jesse Light.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Download and install it from &lt;A href="https://www.raspberrypi.org/downloads/raspbian/"&gt;https://www.raspberrypi.org/downloads/raspbian/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;The installation guide over there is quite straight forward...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The command line version will have less strain on resources but will provide no graphical user interface.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #c0c0c0;"&gt;This blog post is based on the 2017-01-11 release - things might be different with newer versions.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When working with the ThingBerry it's recommended to connect via &lt;STRONG&gt;SSH&lt;/STRONG&gt; (e.g. using PuTTY).&lt;/P&gt;&lt;P&gt;That eliminates the need of setting up a dedicated monitor / mouse / keyboard etc. and also allows to copy &amp;amp; paste the command lines from this blog post directly into the command line interface (so it's my typo, not yours).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The default username is &lt;STRONG&gt;pi&lt;/STRONG&gt; with password &lt;STRONG&gt;raspberry&lt;/STRONG&gt; - the default startup is with a querty keyboard!&lt;/P&gt;&lt;P&gt;So check your spelling before firing the password...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As we're using the ThingBerry as a WIFI hotspot later on, it's recommended to plug it in via an ethernet cable for the installation / configuration part - or for accessing it through your local network infrastructure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;Setting up the Raspberry Pi&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Initial configuration&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After booting up, adjust the general configuration via the Raspberry Pi Software Configuration Tool&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883714871567197 jive_text_macro" jivemacro_uid="_14883714871567197"&gt;&lt;P&gt;sudo raspi-config&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;If you're not sure where to find the - character on an English keyboard, just use the one on the number pad.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following action need to be performed:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Expand Filesystem (to take full usage of the SD card)&lt;/LI&gt;&lt;LI&gt;Boot Options &amp;gt; Wait for network at boot (to have the network ready directly after startup)&lt;/LI&gt;&lt;LI&gt;Internationalisation Options &amp;gt; Change Timezone (to reflect your timezone)&lt;/LI&gt;&lt;LI&gt;Internationalisation Options &amp;gt; Change Keyboard Layout (to reflect your keyboard = less typos = great!)&lt;/LI&gt;&lt;LI&gt;Internationalisation Options &amp;gt; Change Wi-Fi Country (to enable channels specific to your location)&lt;/LI&gt;&lt;LI&gt;Advanced Options &amp;gt; Hostname (set a specific hostname to talk to this Raspberry Pi, e.g. thingberry)&lt;/LI&gt;&lt;LI&gt;Advanced Options &amp;gt; SSH (to enable remote access)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If sensors should be connected to this device directly, the following needs to be enabled as well:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Advanced Options &amp;gt; SPI&lt;/LI&gt;&lt;LI&gt;Advanced Options &amp;gt; I2C&lt;/LI&gt;&lt;LI&gt;Advanced Options &amp;gt; 1-Wire&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Finish&lt;/STRONG&gt; the configuration and &lt;STRONG&gt;reboot&lt;/STRONG&gt; the Thingberry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Updating and installing required software&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The keyboard layout has changed, so you can now use the regular keys to type the password.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From this point forward, you can also &lt;STRONG&gt;connect via SSH&lt;/STRONG&gt; using the hostname and the default SSH port 22.&lt;/P&gt;&lt;P&gt;To exit from any current sessions, use the command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_1488371559874518 jive_macro_code jive_text_macro" jivemacro_uid="_1488371559874518"&gt;&lt;P&gt;exit&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In case the password needs to be changed, this can be done via&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883715653972356" jivemacro_uid="_14883715653972356"&gt;&lt;P&gt;passwd&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The installation needs now to be &lt;STRONG&gt;updated&lt;/STRONG&gt; and &lt;STRONG&gt;authbind and Java&lt;/STRONG&gt; need to be installed.&lt;/P&gt;&lt;P&gt;Java is required for the Tomcat installation and authbind will allow to actually startup services that are using a port that usually requires root access (like port 80).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883715811206688 jive_text_macro" jivemacro_uid="_14883715811206688"&gt;&lt;P&gt;sudo apt-get update&lt;/P&gt;&lt;P&gt;sudo apt-get upgrade&lt;/P&gt;&lt;P&gt;sudo apt-get install authbind&lt;/P&gt;&lt;P&gt;sudo apt-get install oracle-java8-jdk&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This might take a while - feel free to grab a tea or a beer...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the installation &lt;STRONG&gt;verify&lt;/STRONG&gt; that Java is installed via&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883715973526953 jive_macro_code jive_text_macro" jivemacro_uid="_14883715973526953"&gt;&lt;P&gt;java -version&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With this, the initial configuration of the ThingBerry is done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;Tomcat&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Download Tomcat&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To install Tomcat, first a new user needs to be created. We will add the user named tomcat to the system:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883716247318021 jive_text_macro" jivemacro_uid="_14883716247318021"&gt;&lt;P&gt;sudo adduser --system --shell /bin/bash --gecos 'Tomcat Java Servlet and JSP engine' --group --disabled-password --home /home/tomcat tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Next step is to create a temporary directory and download the latest version from apache.org&lt;/P&gt;&lt;P&gt;In a web-browser on your desktop / laptop open &lt;A href="http://www.eu.apache.org/dist/tomcat/tomcat-8/"&gt;http://www.eu.apache.org/dist/tomcat/tomcat-8/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Browse through the latest version branches, in my case it's 8.5.11 - go to &lt;STRONG&gt;bin&lt;/STRONG&gt; and find the &lt;STRONG&gt;tar.gz&lt;/STRONG&gt; file.&lt;/P&gt;&lt;P&gt;On the ThingBerry, download the file via wget, extract the file and delete it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883716681157134 jive_text_macro" jivemacro_uid="_14883716681157134"&gt;&lt;P&gt;mkdir -p ~/tmp&lt;/P&gt;&lt;P&gt;cd ~/tmp&lt;/P&gt;&lt;P&gt;wget &lt;A href="http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz"&gt;http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;tar xvzf ./apache-tomcat-8.5.11.tar.gz&lt;/P&gt;&lt;P&gt;rm ./apache-tomcat-8.5.11.tar.gz&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Configure Tomcat&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first configuration step is to &lt;STRONG&gt;move Tomcat&lt;/STRONG&gt; into the /usr/share folder&lt;/P&gt;&lt;P&gt;Then we can create a &lt;STRONG&gt;link&lt;/STRONG&gt; to address it via /usr/share/tomcat&lt;/P&gt;&lt;P&gt;This link allows to dynamically update or swap the Tomcat version later without any impact on any of the configuration / hard wired directory pointers that we're setting up later on.&lt;/P&gt;&lt;P&gt;Nice one, isn't it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;Please note, there are two directories here: &lt;STRONG&gt;tomcat8&lt;/STRONG&gt; where we will copy the files to and &lt;STRONG&gt;tomcat&lt;/STRONG&gt; which is used for the link&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883718253903598 jive_text_macro" jivemacro_uid="_14883718253903598"&gt;&lt;P&gt;cd ~&lt;/P&gt;&lt;P&gt;sudo mkdir -p /usr/share/tomcat8&lt;/P&gt;&lt;P&gt;sudo mv ~/tmp/apache-tomcat-8.5.11 /usr/share/tomcat8&lt;/P&gt;&lt;P&gt;sudo rmdir ~/tmp&lt;/P&gt;&lt;P&gt;sudo rm -f /usr/share/tomcat&lt;/P&gt;&lt;P&gt;sudo ln -s /usr/share/tomcat8/apache-tomcat-8.5.11 /usr/share/tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now that we have the new location, we can set the required &lt;STRONG&gt;environment variables&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I prefer the &lt;STRONG&gt;nano&lt;/STRONG&gt; editor, but choose whatever you're comfortable with...&lt;/P&gt;&lt;P&gt;Create a new file via&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883718442814780 jive_macro_code jive_text_macro" jivemacro_uid="_14883718442814780"&gt;&lt;P&gt;sudo nano /etc/environment&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Paste the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883718496932636 jive_text_macro" jivemacro_uid="_14883718496932636"&gt;&lt;P&gt;export JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt&lt;/P&gt;&lt;P&gt;export CATALINA_HOME=/usr/share/tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;Copy it from here, in PuTTY just right-click the mouse to paste.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;CTRL+X to exit and save the changes via "Y" and confirming the filename.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To enable the environment variable, &lt;STRONG&gt;reboot&lt;/STRONG&gt; the ThingBerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883718849686875 jive_text_macro" jivemacro_uid="_14883718849686875"&gt;&lt;P&gt;sudo reboot&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Configure Tomcat in detail&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tomcat needs to be prepared make it smoother integrating the ThingWorx.war file.&lt;/P&gt;&lt;P&gt;First step of doing this, is to edit the context and include the manager's pathname.&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883719617573098 jive_macro_code jive_text_macro" jivemacro_uid="_14883719617573098"&gt;&lt;P&gt;cd $CATALINA_HOME&lt;/P&gt;&lt;P&gt;sudo nano conf/context.xml&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Uncomment the line with&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883719690586763 jive_text_macro" jivemacro_uid="_14883719690586763"&gt;&lt;P&gt;&amp;lt;Manager pathname="" /&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;close to the end of the file by removing the commenting brackets in the line above and below it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The section as it is &lt;STRONG&gt;now&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883719825546943" jivemacro_uid="_14883719825546943"&gt;&lt;P&gt;&amp;lt;Context&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Uncomment this to disable session persistence across Tomcat restarts -$&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Manager pathname="" /&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/Context&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The section as it &lt;STRONG&gt;should be:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883719907688648 jive_macro_code jive_text_macro" jivemacro_uid="_14883719907688648"&gt;&lt;P&gt;&amp;lt;Context&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Uncomment this to disable session persistence across Tomcat restarts -$&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Manager pathname="" /&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/Context&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Next step is to set the &lt;STRONG&gt;Tomcat environment variables.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883720127054318 jive_text_macro" jivemacro_uid="_14883720127054318"&gt;&lt;P&gt;sudo nano $CATALINA_HOME/bin/setenv.sh&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Paste the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883720219623192 jive_macro_code jive_text_macro" jivemacro_uid="_14883720219623192"&gt;&lt;P&gt;# Java Options&lt;/P&gt;&lt;P&gt;export JAVA_OPTS="-server -d32 -Djava.security.egd=file:/dev/urandom -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseConcMarkSweepGC"&lt;/P&gt;&lt;P&gt;export CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=&amp;lt;server_name&amp;gt; -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"&lt;/P&gt;&lt;P&gt;export JRE_HOME=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ensure to edit &amp;lt;server_name&amp;gt; to match your actual hostname (e.g. thingberry)!&lt;/P&gt;&lt;P&gt;This is quite important... if that change is not made, the rest won't work!&lt;/P&gt;&lt;P&gt;Make it so.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We need to use the 32-Bit version of Java as the Raspberry Pi is based on an ARM system which does not support 64-Bit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To be able to monitor Tomcat from remote, a &lt;STRONG&gt;JMX Listener&lt;/STRONG&gt; would be helpful.&lt;/P&gt;&lt;P&gt;To learn more about JMX, check out &lt;A href="https://en.wikipedia.org/wiki/Java_Management_Extensions"&gt;https://en.wikipedia.org/wiki/Java_Management_Extensions&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883720551584232" jivemacro_uid="_14883720551584232"&gt;&lt;P&gt;sudo nano conf/server.xml&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the server.xml there's a section with already configured Listeners. Add the following after the last configured listener:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_1488372065177279 jive_text_macro" jivemacro_uid="_1488372065177279"&gt;&lt;P&gt;&amp;lt;!-- custom JMX Listener - add after existing Listners --&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="22222" rmiServerPortPlatform="22223" /&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For JMX to work, the catalina-jmx-remote.jar is required.&lt;/P&gt;&lt;P&gt;Remember when browsing through the apache.org directories to get the latest Tomcat version?&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;If not, it's still written somewhere above&lt;/SPAN&gt; &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Go back to the &lt;STRONG&gt;bin&lt;/STRONG&gt; folder and go to extras and locate the &lt;STRONG&gt;catalina-jmx-remote.jar&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;This file can be wget'ed into Tomcat's lib folder:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883720983215259" jivemacro_uid="_14883720983215259"&gt;&lt;P&gt;cd $CATALINA_HOME/lib&lt;/P&gt;&lt;P&gt;sudo wget &lt;A href="http://www.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/extras/catalina-jmx-remote.jar"&gt;http://www.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/extras/catalina-jmx-remote.jar&lt;/A&gt;&lt;/P&gt;&lt;P&gt;cd $CATALINA_HOME&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally &lt;STRONG&gt;ownership and permissions&lt;/STRONG&gt; need to be adjusted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883721106905228 jive_text_macro" jivemacro_uid="_14883721106905228"&gt;&lt;P&gt;sudo chmod +x /usr/share/tomcat/bin/*.sh&lt;/P&gt;&lt;P&gt;sudo chmod 775 bin/ lib/ webapps/&lt;/P&gt;&lt;P&gt;sudo chmod 750 logs/ temp/ work/&lt;/P&gt;&lt;P&gt;sudo chmod 640 conf/*&lt;/P&gt;&lt;P&gt;sudo chown -R tomcat:tomcat /usr/share/tomcat8&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Securing ports and run Tomcat on port 80 with authbind&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Secure the &lt;STRONG&gt;shutdown port password&lt;/STRONG&gt; and configure &lt;STRONG&gt;port 80&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883721376469479 jive_text_macro" jivemacro_uid="_14883721376469479"&gt;&lt;P&gt;sudo nano conf/server.xml&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Find&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883721420782466 jive_text_macro" jivemacro_uid="_14883721420782466"&gt;&lt;P&gt;&amp;lt;Server port="8005" shutdown="SHUTDOWN"&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and update the password with something more secure, like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883721464671998 jive_text_macro" jivemacro_uid="_14883721464671998"&gt;&lt;P&gt;&amp;lt;Server port="8005" shutdown="TH!nGW0rX"&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;If you're following this guide literally and actually use TH!nGW0rX as a password, it might not be too secure - so choose wisely&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Comment out the Connector on port 8080&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883721783417242 jive_text_macro" jivemacro_uid="_14883721783417242"&gt;&lt;P&gt;&amp;lt;!--&lt;/P&gt;&lt;P&gt;&amp;lt;Connector port="8080" protocol="HTTP/1.1"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connectionTimeout="20000"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirectPort="8443" /&amp;gt;&lt;/P&gt;&lt;P&gt;--&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add the &amp;lt;!-- and --&amp;gt; line for commenting it out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Create a new connector on port 80&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the port 8080 configuration block, insert a new block with the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883721969252276" jivemacro_uid="_14883721969252276"&gt;&lt;P&gt;&amp;lt;Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxThreads="150"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connectionTimeout="20000"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirectPort="8443" /&amp;gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This allows listening to port 80 and forwarding any requests to the internal Tomcat port 8443&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Identify the &lt;STRONG&gt;tomcat user userid&lt;/STRONG&gt; with&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883722111206429 jive_text_macro" jivemacro_uid="_14883722111206429"&gt;&lt;P&gt;id -u tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's say the result is 109, therefore the following command needs to be:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_1488372221739146 jive_text_macro" jivemacro_uid="_1488372221739146"&gt;&lt;P&gt;sudo nano /etc/authbind/byuid/109&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Opening the nano editor and creating the 109 file (adjust for your usernumber) will allow to configure the port usage that this user can run programs with without having root access. To allow the Tomcat user start services with ports &amp;lt; 1024 insert the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883722357637118 jive_macro_code jive_text_macro" jivemacro_uid="_14883722357637118"&gt;&lt;P&gt;0.0.0.0/0:1,1023&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally &lt;STRONG&gt;ownership and permissions&lt;/STRONG&gt; need to be adjusted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883722480566475 jive_text_macro" jivemacro_uid="_14883722480566475"&gt;&lt;P&gt;sudo chmod 700 /etc/authbind/byuid/109&lt;/P&gt;&lt;P&gt;sudo chown tomcat:tomcat /etc/authbind/byuid/109&lt;/P&gt;&lt;P&gt;sudo nano $CATALINA_HOME/bin/startup.sh&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The last command will open the &lt;STRONG&gt;Tomcat startup&lt;/STRONG&gt; file.&lt;/P&gt;&lt;P&gt;To actually run the service within the scope of authbind, the actual execution needs to be adjusted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the end of the file, adjust the following line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883722607026873 jive_text_macro" jivemacro_uid="_14883722607026873"&gt;&lt;P&gt;exec "$PRGDIR"/"$EXECUTABLE" start "$@"&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883722651347331" jivemacro_uid="_14883722651347331"&gt;&lt;P&gt;exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The same needs to be done for the &lt;STRONG&gt;Tomcat shutdown&lt;/STRONG&gt; file:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883722819434076 jive_macro_code jive_text_macro" jivemacro_uid="_14883722819434076"&gt;&lt;P&gt;sudo nano $CATALINA_HOME/bin/shutdown.sh&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the end of the file, adjust the following line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_148837228763054" jivemacro_uid="_148837228763054"&gt;&lt;P&gt;exec "$PRGDIR"/"$EXECUTABLE" stop "$@"&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883722922805227 jive_text_macro" jivemacro_uid="_14883722922805227"&gt;&lt;P&gt;exec authbind --deep "$PRGDIR"/"$EXECUTABLE" stop "$@"&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Enable log rotation&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Log rotation is important to keep log sizes under control and minimize the impact on file size and I/O as well as CPU usage during writing the Tomcat logs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883723087375939" jivemacro_uid="_14883723087375939"&gt;&lt;P&gt;sudo nano /etc/logrotate.d/tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Paste the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883723145723070 jive_text_macro" jivemacro_uid="_14883723145723070"&gt;&lt;P&gt;/usr/share/tomcat/logs/catalina.out {&lt;/P&gt;&lt;P&gt;copytruncate&lt;/P&gt;&lt;P&gt;daily&lt;/P&gt;&lt;P&gt;rotate 7&lt;/P&gt;&lt;P&gt;compress&lt;/P&gt;&lt;P&gt;missingok&lt;/P&gt;&lt;P&gt;size 9M&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With this logs will be rotated on a daily bases or once they reach 9 MB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Autostart Tomcat on boot&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The last step for Tomcat is to &lt;STRONG&gt;automatically start in on boot.&lt;/STRONG&gt; This is configured via the init.d files&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883723423996248" jivemacro_uid="_14883723423996248"&gt;&lt;P&gt;sudo nano /etc/init.d/tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this file we specify a start, stop and restart option. Paste the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883723553835291" jivemacro_uid="_14883723553835291"&gt;&lt;P&gt;#!/bin/bash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;### BEGIN INIT INFO&lt;/P&gt;&lt;P&gt;# Provides:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tomcat&lt;/P&gt;&lt;P&gt;# Required-Start:&amp;nbsp; $network&lt;/P&gt;&lt;P&gt;# Required-Stop:&amp;nbsp; $network&lt;/P&gt;&lt;P&gt;# Default-Start:&amp;nbsp; 2 3 4 5&lt;/P&gt;&lt;P&gt;# Default-Stop:&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 1 6&lt;/P&gt;&lt;P&gt;# Short-Description: Start/Stop Tomcat server&lt;/P&gt;&lt;P&gt;### END INIT INFO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PATH=/sbin:/bin:/usr/sbin:/usr/bin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/su - tomcat -c /usr/share/tomcat/bin/startup.sh&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stop() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/su - tomcat -c /usr/share/tomcat/bin/shutdown.sh&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case $1 in&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; start|stop) $1;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; restart) stop; start;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *) echo "Run as $0 &amp;lt;start|stop|restart&amp;gt;"; exit 1;;&lt;/P&gt;&lt;P&gt;esac&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To get this configuration in place, the permissions need to be adjusted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883723693839167" jivemacro_uid="_14883723693839167"&gt;&lt;P&gt;sudo chmod 755 /etc/init.d/tomcat&lt;/P&gt;&lt;P&gt;sudo update-rc.d tomcat defaults&lt;/P&gt;&lt;P&gt;sudo reboot&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The final reboot will ensure a fresh start of the ThingBerry, with hopefully Tomcat already up and running.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If Tomcat is indeed up and running can be verified with&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883723804618752 jive_macro_code jive_text_macro" jivemacro_uid="_14883723804618752"&gt;&lt;P&gt;ps -ef | grep tomcat&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;which should return information about any running processes / services containing the string "tomcat".&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;The second process you're seeing is the actual grep, that's also coloring the "tomcat" string.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;ThingWorx&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Preparing Tomcat and the environment&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now that Tomcat is up and running, we're going to &lt;STRONG&gt;stop&lt;/STRONG&gt; it. Not just for fun, but to configure ThingWorx properly and start up Tomcat only if the ThingWorx installation is prepared and fully configured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_1488372421098203 jive_text_macro" jivemacro_uid="_1488372421098203"&gt;&lt;P&gt;sudo service tomcat stop&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ensure with the ps command above, that Tomcat is indeed no longer running. If it still is, not all the above steps have been deployed correctly and Tomcat can't be stopped due to a configuration issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We need to provide &lt;STRONG&gt;new directories&lt;/STRONG&gt; to actually store ThingWorx related information.&lt;/P&gt;&lt;P&gt;Those can be created with the following commands:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883724370582937 jive_macro_code jive_text_macro" jivemacro_uid="_14883724370582937"&gt;&lt;P&gt;sudo mkdir /thingworx&lt;/P&gt;&lt;P&gt;sudo mkdir /thingworx/platform /thingworx/storage /thingworx/backupstorage&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a previous step, we already defined the &lt;STRONG&gt;Tomcat environment variables&lt;/STRONG&gt;, now we need to update them to include the path to the ThingWorx Platform Settings:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883724517605980 jive_macro_code jive_text_macro" jivemacro_uid="_14883724517605980"&gt;&lt;P&gt;sudo nano $CATALINA_HOME/bin/setenv.sh&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the end of the file, insert the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883724604717173" jivemacro_uid="_14883724604717173"&gt;&lt;P&gt;#THINGWORX OPTIONS&lt;/P&gt;&lt;P&gt;export THINGWORX_PLATFORM_SETTINGS=/thingworx/platform&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the just defined directory we're now creating the platform-settings.json and configure the directories we created earlier. Those will hold the &lt;STRONG&gt;Storage and BackupStorage&lt;/STRONG&gt; for ThingWorx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14883724799076396 jive_text_macro" jivemacro_uid="_14883724799076396"&gt;&lt;P&gt;sudo nano /thingworx/platform/platform-settings.json&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Paste the following content:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883724873207007" jivemacro_uid="_14883724873207007"&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "PlatformSettingsConfig": {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "BasicSettings": {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "BackupStorage": "/thingworx/backupstorage",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Storage": "/thingworx/storage"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To give the tomcat user access to this file, &lt;STRONG&gt;ownership and permissions&lt;/STRONG&gt; need to be adjusted:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14883725036732346" jivemacro_uid="_14883725036732346"&gt;&lt;P&gt;sudo chmod -R 755 /thingworx&lt;/P&gt;&lt;P&gt;sudo chown -R tomcat:tomcat /thingworx&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;H2&gt;Deploying Thingworx.war&lt;/H2&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now things get tricky.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As mentioned in the intital "Performance Warning" ensure to deploy the Neo4J version of ThingWorx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are quite some ways to get the Thingworx.war file into the correct directory.&lt;/P&gt;&lt;P&gt;Here I'm showing how to wget it from a private http server in the local network.&lt;/P&gt;&lt;P&gt;Of course this would also work, copying from a USB stick etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;Never, ever put this file on a public web / ftp server etc.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For simplicity, we're just assuming that the Thingworx.war file is available on a http server within your local network environment.&lt;/P&gt;&lt;P&gt;Ensure the path and server is correct, don't just copy &amp;amp; paste!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_14883725321724813 jive_macro_code jive_text_macro" jivemacro_uid="_14883725321724813"&gt;&lt;P&gt;cd $CATALINA_HOME/webapps&lt;/P&gt;&lt;P&gt;sudo wget &lt;A href="http://%3cserver%3e/Thingworx.war"&gt;http://&amp;lt;server&amp;gt;/Thingworx.war&lt;/A&gt;&lt;/P&gt;&lt;P&gt;sudo chmod 775 Thingworx.war&lt;/P&gt;&lt;P&gt;sudo chown tomcat:tomcat Thingworx.war&lt;/P&gt;&lt;P&gt;sudo reboot&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With this, ThingWorx is deployed on the ThingBerry!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out &lt;A href="http://%3cthingberry%3e/Thingworx"&gt;http://&amp;lt;thingberry&amp;gt;/Thingworx&lt;/A&gt; to connect to it from your desktop machine.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #999999;"&gt;The default login is username &lt;STRONG&gt;Administrator&lt;/STRONG&gt; and password &lt;/SPAN&gt;&lt;SPAN style="color: #999999;"&gt;&lt;STRONG&gt;admin&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have fun!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;H1&gt;What's next&lt;/H1&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ThingWorx is now installed and you should be good to go.&lt;/P&gt;&lt;P&gt;Just keep in mind, it might be kind of slow and is just for demo purposes, as the Raspberry Pi just doesn't provide the power to allow a full blown performance as on other (64-Bit) systems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In upcoming Blog posts we're going to look into actually configuring the ThingBerry as a WIFI hotspot and securing the data transfer with a (self-signed) chain of certificates.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Mar 2017 12:55:37 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534530#M25589</guid>
      <dc:creator>mneumann</dc:creator>
      <dc:date>2017-03-01T12:55:37Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534531#M25590</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael, &lt;/P&gt;&lt;P&gt;are you using a Pi 3 B? &lt;/P&gt;&lt;P&gt;What minimum size does the SD card need to have?&lt;/P&gt;&lt;P&gt;Regards, Rainer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Mar 2017 22:28:30 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534531#M25590</guid>
      <dc:creator>rweber</dc:creator>
      <dc:date>2017-03-01T22:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534532#M25591</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rainer,&lt;/P&gt;&lt;P&gt;yes - I'm running on a Raspberry Pi 3 (Model B).&lt;/P&gt;&lt;P&gt;I've also tried this on a older version with 512 MB RAM - it works, but I wouldn't recommend it.&lt;/P&gt;&lt;P&gt;Though I'm personally running on a 16 GB SD, 8 GB should be the minimum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Mar 2017 08:18:19 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534532#M25591</guid>
      <dc:creator>mneumann</dc:creator>
      <dc:date>2017-03-02T08:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534533#M25592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Great job! Looking forward to see a Raspberry cluster running Zookeeper and Postgres (both ported to RPi) &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Apr 2017 09:57:01 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534533#M25592</guid>
      <dc:creator>ckulak</dc:creator>
      <dc:date>2017-04-04T09:57:01Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534534#M25593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Constantine &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I've some other topics plans for the next blog entries, but I've added clustering to the list... now you've got me interested.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Apr 2017 07:16:14 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534534#M25593</guid>
      <dc:creator>mneumann</dc:creator>
      <dc:date>2017-04-06T07:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534535#M25594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Michael.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm Fluke in Thailand.&lt;/P&gt;&lt;P&gt;I follow your instruction. But, it's not work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I using RPI2 , SD 16GB , Thingworx 7.2 .war&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I try another resource, using Tomcat 7 , Tomcat 8.&lt;/P&gt;&lt;P&gt;The tomcat is running. But, Thingworx can't run.&lt;/P&gt;&lt;P&gt;In the webapps folder, It's has Thingworx folder. But, It's not run.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have new resource?&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Sep 2017 06:47:12 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534535#M25594</guid>
      <dc:creator>ssriuaipornchai</dc:creator>
      <dc:date>2017-09-20T06:47:12Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534537#M25596</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I point I had was&amp;nbsp;&amp;nbsp; that I needed to use higher version of tomcat 8.5&lt;/P&gt;&lt;P&gt;So when I tried to use wget the version 8.5.11 -it was not available &lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;wget &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.thingworx.com/external-link.jspa?url=http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz" rel="nofollow" target="_blank"&gt;http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;but &lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;wget &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.thingworx.com/external-link.jspa?url=http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz" rel="nofollow" target="_blank"&gt;http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;So we have to pay attention what is the current valid number for the download&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Sep 2017 16:41:15 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534537#M25596</guid>
      <dc:creator>RolandRaytchev</dc:creator>
      <dc:date>2017-09-29T16:41:15Z</dc:date>
    </item>
    <item>
      <title>Re: DO NOT READ THIS: Installing ThingWorx on a Raspberry Pi</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534538#M25597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;Before executing the Tomcat wget commands (including the catalina-jmx-remote.jar) I would check &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.thingworx.com/external-link.jspa?url=http://www.eu.apache.org/dist/tomcat/tomcat-8/" rel="nofollow" target="_blank"&gt;http://www.eu.apache.org/dist/tomcat/tomcat-8/&lt;/A&gt;&lt;SPAN&gt; for the latest version and copy &amp;amp; paste the latest release paths.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The version I used was the latest one at the time - so I guess the Tomcat team was quite busy with releasing all the new versions up to now &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro" src="https://www.ptcusercommunity.com/7.0.4.3b79b96/images/emoticons/happy.png"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Oct 2017 13:46:50 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/DO-NOT-READ-THIS-Installing-ThingWorx-on-a-Raspberry-Pi/m-p/534538#M25597</guid>
      <dc:creator>mneumann</dc:creator>
      <dc:date>2017-10-05T13:46:50Z</dc:date>
    </item>
  </channel>
</rss>

