<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jhipster Archives | Clever Cloud</title>
	<atom:link href="https://stagingv6.cleverapps.io/blog/tag/jhipster/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Mon, 09 Jul 2018 17:32:00 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>jhipster Archives | Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>The specifics of PaaS deployment for JHipster</title>
		<link>https://stagingv6.cleverapps.io/blog/engineering/2018/07/09/specifics-paas-deployment-jhipster/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Mon, 09 Jul 2018 17:32:00 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[jhipster]]></category>
		<category><![CDATA[microservices]]></category>
		<category><![CDATA[netflixoss]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2018/07/09/specifics-paas-deployment-jhipster/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><p>We see a lot of people trying to deploy JHipster applications on Clever Cloud. It does not seem to be fully understood all the time. Especially with the differences between deploying on IaaS and PaaS. And since JHipsterConf is around the corner, it&#39;s the perfect time to write about it, to explain a bit what it is and how it can be deployed on PaaS platform like Clever Cloud.</p>
<span id="more-2813"></span>

<h2 id="what-is-jhipster">What is JHipster?</h2>
<p>If you are not familiar with JHipster, it&#39;s a scaffolding system to bootstrap applications using Spring Boot and AngularJS or React. You can choose to scaffold a monolithic application (Which are great and modular and everything because Spring Boot lets you build modular monolith. If you have no idea what you are doing you should start with this) or microservices architecture with an API Gateways and a registry.</p>
<p>When scaffolding microservices, you are using the Spring Boot and Netflix OSS stack. That’s something you want to know in general when looking for documentation online. Most of the things you will read here apply both to JHipster and to Spring Boot + Netflix OSS deployments.</p>
<h2 id="jhipster-or-netflixoss-versus-iaas-or-paas">JHipster or NetflixOSS versus IaaS or PaaS</h2>
<p>Is there an incompatibility between JHipster/Netflix OSS and PaaS deployment? The reason I am raising this question is that this stack was pretty much made for IaaS deployment, more particularly AWS, where fewer things are managed than on any PaaS platform.</p>
<p>And as such JHipster comes up with lots of nifty tools to compensate the absence of services usually provided by higher level solutions like CaaS or PaaS. This is especially true when you are deploying a microservices architecture. So, will this overlap when deploying on Clever Cloud? Are things even compatible? Yes, it is, and in this post, I will show you some exciting things you can do.</p>
<h3 id="reverse-proxy-and-service-registry">Reverse proxy and Service Registry</h3>
<p>One of the central question raised by our users doing microservices is how do you configure the JHipster Registry (Eureka in Netflix OSS terms). It maintains a registry of all the instances of your architecture services.</p>
<p>Going back to a classic AWS deployment, the typical behavior when you manage several instances of the same application is to deploy those apps to VMs. They all have their own set of IP/port. In their configuration, they have the different addresses of their Eureka server. They will register to that server as an instance of a particular application, identified by that IP/port couple. It is great when you manage your private network and plan to expose everything through an API gateway or your reverse proxy.</p>
<figure>
  <a href="https://cdn.clever-cloud.com/uploads/2021/08/iaas-service-registration.png" rel="noopener noreferrer" target="_blank">
    <img style="width:100%" src="https://cdn.clever-cloud.com/uploads/2021/08/iaas-service-registration.png">
  </a>
  <figcaption>IaaS - Managing VMs - Service registration</figcaption>
</figure>

<p>But as it turns out, this is already managed by PaaS providers like Clever Cloud or Heroku. So you don&#39;t have access to that IP/port for each instance. But it&#39;s OK. Eureka can be configured to support setup like these. You can use the URL given by the proxy instead.</p>
<figure>
  <a href="https://cdn.clever-cloud.com/uploads/2021/08/paas-managing-applications-service-registration.png" rel="noopener noreferrer" target="_blank">
    <img style="width:100%" src="https://cdn.clever-cloud.com/uploads/2021/08/paas-managing-applications-service-registration.png">
  </a>
  <figcaption>PaaS - Managing VMs - Service registration</figcaption>
</figure>

<p>The only issue with that is that you won’t be able to go on one specific instance since you go through the proxy. In some cases, this can become a problem. Like with the JHipster Registry.</p>
<h4 id="jhipster-registrys-statefulness-exception">JHipster Registry’s Statefulness Exception</h4>
<p>Let’s say you want to scale out your registry for failover. It seems like a legitimate thing to do. If you only have one JHipster registry instance and it’s down, you lose your service registry(Eureka) and your configuration server (Spring Cloud config, embedded in the JHipster registry, more on that later). It means your architecture is down. So you want to have several instances of the registry in case one goes down.</p>
<p>Something also worth to know is that the service registry(Eureka in Netflix OSS terms) stores things in memory. You cannot store the information in a shared database that all your instances could use. It makes the registry stateful. They all have their datastore(their RAM). So you need to have your services register themselves to each registry instance to make sure they always have the same copy of the data.</p>
<p>If you were to use the URL of your JHipster registry application given by a PaaS, so behind a reverse proxy, the service would register to a random. It depends on the PaaS load balancer. In that case, you have no guarantee that your service will have registered itself with every instance of the registry.</p>
<p>If you use an IaaS, you will have all the IP/PORT couples at your disposal to make sure each service can register to each registry.</p>
<p>If you use PaaS autoscaling, each instance is hidden behind a reverse proxy with only one URL, and you have no way to have the clients register themselves to each instance (Now you could use sticky sessions, but you would have to craft the sticky session cookie manually, and this is cumbersome). So it is much simpler to create one application with its URL instead.</p>
<p>In that case, what you need to do is deploy an application for each instance you would like. That way you get a different URL for each, and you ask all your services to register to each URL.</p>
<h3 id="configuration-management">Configuration Management</h3>
<p>Another feature that comes up with most Platform as a Service and overlap with JHipster or the Netflix OSS stack is configuration management. In JHipster case, the registry is also a Spring Cloud Config server. As such it supports different backends to store your configuration: Git, native filesystem, Databases or Vault. By default JHipster uses git. Using GitHub, in particular, is excellent as you can benefit from their WebHooks. Each time you change the configuration, your server will receive the updates and broadcast it through an AMQP system with Spring Cloud Bus if you have configured one. So, you are sure that all your architecture is up to date with the latest configuration.</p>
<p>And of course, Spring Cloud Config also supports environment variables which is what we offer by default with Clever Cloud, with some exciting orchestration tricks.</p>
<p>The PaaS granularity level being Application(as oppose to VMs in IaaS), you can assign environment variables to Applications. All these variables are injected into all the instances of the app when we boot the VM. Applications can also expose some variables for others. How does it work?</p>
<p>Applications or add-ons can be linked together. It merely means that their exposed variables will be injected into the linked app. And the great thing about this is that when an exposed variable is modified, all the linked apps are restarted in blue/green so without service interruption. So you get an up to date architecture without having to setup Webhooks and an AMQP with Spring Cloud Bus :) Note that Clever Cloud also offers a configuration provider addon that lets you define configuration without having to tied it to an app. It is a bit like a configuration server. And it works exactly like described above. It&#39;s mostly here to make a semantic distinction.</p>
<h3 id="conclusion">Conclusion</h3>
<p>JHipster and the Netflix OSS do provide some overlap to what PaaS can offer. But fear not because it’s still compatible and can benefit from the high-level feature supplied by PaaS. In the next post, I will show you all the steps to deploy this on Clever Cloud :)</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-paas-1-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><p>We see a lot of people trying to deploy JHipster applications on Clever Cloud. It does not seem to be fully understood all the time. Especially with the differences between deploying on IaaS and PaaS. And since JHipsterConf is around the corner, it&#39;s the perfect time to write about it, to explain a bit what it is and how it can be deployed on PaaS platform like Clever Cloud.</p>
<span id="more-2813"></span>

<h2 id="what-is-jhipster">What is JHipster?</h2>
<p>If you are not familiar with JHipster, it&#39;s a scaffolding system to bootstrap applications using Spring Boot and AngularJS or React. You can choose to scaffold a monolithic application (Which are great and modular and everything because Spring Boot lets you build modular monolith. If you have no idea what you are doing you should start with this) or microservices architecture with an API Gateways and a registry.</p>
<p>When scaffolding microservices, you are using the Spring Boot and Netflix OSS stack. That’s something you want to know in general when looking for documentation online. Most of the things you will read here apply both to JHipster and to Spring Boot + Netflix OSS deployments.</p>
<h2 id="jhipster-or-netflixoss-versus-iaas-or-paas">JHipster or NetflixOSS versus IaaS or PaaS</h2>
<p>Is there an incompatibility between JHipster/Netflix OSS and PaaS deployment? The reason I am raising this question is that this stack was pretty much made for IaaS deployment, more particularly AWS, where fewer things are managed than on any PaaS platform.</p>
<p>And as such JHipster comes up with lots of nifty tools to compensate the absence of services usually provided by higher level solutions like CaaS or PaaS. This is especially true when you are deploying a microservices architecture. So, will this overlap when deploying on Clever Cloud? Are things even compatible? Yes, it is, and in this post, I will show you some exciting things you can do.</p>
<h3 id="reverse-proxy-and-service-registry">Reverse proxy and Service Registry</h3>
<p>One of the central question raised by our users doing microservices is how do you configure the JHipster Registry (Eureka in Netflix OSS terms). It maintains a registry of all the instances of your architecture services.</p>
<p>Going back to a classic AWS deployment, the typical behavior when you manage several instances of the same application is to deploy those apps to VMs. They all have their own set of IP/port. In their configuration, they have the different addresses of their Eureka server. They will register to that server as an instance of a particular application, identified by that IP/port couple. It is great when you manage your private network and plan to expose everything through an API gateway or your reverse proxy.</p>
<figure>
  <a href="https://cdn.clever-cloud.com/uploads/2021/08/iaas-service-registration.png" rel="noopener noreferrer" target="_blank">
    <img style="width:100%" src="https://cdn.clever-cloud.com/uploads/2021/08/iaas-service-registration.png">
  </a>
  <figcaption>IaaS - Managing VMs - Service registration</figcaption>
</figure>

<p>But as it turns out, this is already managed by PaaS providers like Clever Cloud or Heroku. So you don&#39;t have access to that IP/port for each instance. But it&#39;s OK. Eureka can be configured to support setup like these. You can use the URL given by the proxy instead.</p>
<figure>
  <a href="https://cdn.clever-cloud.com/uploads/2021/08/paas-managing-applications-service-registration.png" rel="noopener noreferrer" target="_blank">
    <img style="width:100%" src="https://cdn.clever-cloud.com/uploads/2021/08/paas-managing-applications-service-registration.png">
  </a>
  <figcaption>PaaS - Managing VMs - Service registration</figcaption>
</figure>

<p>The only issue with that is that you won’t be able to go on one specific instance since you go through the proxy. In some cases, this can become a problem. Like with the JHipster Registry.</p>
<h4 id="jhipster-registrys-statefulness-exception">JHipster Registry’s Statefulness Exception</h4>
<p>Let’s say you want to scale out your registry for failover. It seems like a legitimate thing to do. If you only have one JHipster registry instance and it’s down, you lose your service registry(Eureka) and your configuration server (Spring Cloud config, embedded in the JHipster registry, more on that later). It means your architecture is down. So you want to have several instances of the registry in case one goes down.</p>
<p>Something also worth to know is that the service registry(Eureka in Netflix OSS terms) stores things in memory. You cannot store the information in a shared database that all your instances could use. It makes the registry stateful. They all have their datastore(their RAM). So you need to have your services register themselves to each registry instance to make sure they always have the same copy of the data.</p>
<p>If you were to use the URL of your JHipster registry application given by a PaaS, so behind a reverse proxy, the service would register to a random. It depends on the PaaS load balancer. In that case, you have no guarantee that your service will have registered itself with every instance of the registry.</p>
<p>If you use an IaaS, you will have all the IP/PORT couples at your disposal to make sure each service can register to each registry.</p>
<p>If you use PaaS autoscaling, each instance is hidden behind a reverse proxy with only one URL, and you have no way to have the clients register themselves to each instance (Now you could use sticky sessions, but you would have to craft the sticky session cookie manually, and this is cumbersome). So it is much simpler to create one application with its URL instead.</p>
<p>In that case, what you need to do is deploy an application for each instance you would like. That way you get a different URL for each, and you ask all your services to register to each URL.</p>
<h3 id="configuration-management">Configuration Management</h3>
<p>Another feature that comes up with most Platform as a Service and overlap with JHipster or the Netflix OSS stack is configuration management. In JHipster case, the registry is also a Spring Cloud Config server. As such it supports different backends to store your configuration: Git, native filesystem, Databases or Vault. By default JHipster uses git. Using GitHub, in particular, is excellent as you can benefit from their WebHooks. Each time you change the configuration, your server will receive the updates and broadcast it through an AMQP system with Spring Cloud Bus if you have configured one. So, you are sure that all your architecture is up to date with the latest configuration.</p>
<p>And of course, Spring Cloud Config also supports environment variables which is what we offer by default with Clever Cloud, with some exciting orchestration tricks.</p>
<p>The PaaS granularity level being Application(as oppose to VMs in IaaS), you can assign environment variables to Applications. All these variables are injected into all the instances of the app when we boot the VM. Applications can also expose some variables for others. How does it work?</p>
<p>Applications or add-ons can be linked together. It merely means that their exposed variables will be injected into the linked app. And the great thing about this is that when an exposed variable is modified, all the linked apps are restarted in blue/green so without service interruption. So you get an up to date architecture without having to setup Webhooks and an AMQP with Spring Cloud Bus :) Note that Clever Cloud also offers a configuration provider addon that lets you define configuration without having to tied it to an app. It is a bit like a configuration server. And it works exactly like described above. It&#39;s mostly here to make a semantic distinction.</p>
<h3 id="conclusion">Conclusion</h3>
<p>JHipster and the Netflix OSS do provide some overlap to what PaaS can offer. But fear not because it’s still compatible and can benefit from the high-level feature supplied by PaaS. In the next post, I will show you all the steps to deploy this on Clever Cloud :)</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New JHipster Clever Cloud Generator</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2017/11/14/jhipster-clevercloud/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Tue, 14 Nov 2017 17:15:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jhipster]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2017/11/14/jhipster-clevercloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-1368x528.jpg 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><p>There has been some demand for a <a href="https://github.com/CleverCloud/generator-jhipster-clevercloud">JHipster Clever Cloud generator</a>. We started working on it and it&#39;s now avaiable on the JHipster marketplace as a module.</p>
<span id="more-2918"></span>

<h2 id="what-is-jhipster">What is JHipster?</h2>
<blockquote>
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
</blockquote>

<p>Simply put, JHipster will scafold a new Spring Boot + Angular project based on your answers to a series of questions. Among those questions you&#39;ll get to choose if you want to use Maven or Gradle and which database you want among other things. These two basic choices will determine how you deploy your application on Clever Cloud.</p>
<p>This is where the <a href="http://www.jhipster.tech/modules/marketplace/#/details/generator-jhipster-clevercloud">jhipster-clevercloud</a> generator comes in handy. It will generate the appropriate configuration and create the right application and addon. The current flow of question is simple.</p>
<ul>
<li>Choose the organisation or user to deploy the project</li>
<li>Choose the region where to deploy it</li>
<li>Give it a name (or reuse an already linked application)</li>
<li>Decide if you want Clever Cloud to manage the database<ul>
<li>If yes, it will be detected and will let you choose the appropriate plan</li>
<li>If no, you will have to manage the DB configuration yourself</li>
</ul>
</li>
</ul>
<p>Please note that the only DBs supported so far are PostgreSQL, MySQL and MsSQL.</p>
<p>Once the generator does its magic, you are left with a <code>clevercloud</code> folder containing the specifics. All you have to do then is to commit those changes and run <code>clever deploy</code>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/vf2WxTHSwsE?rel=0&amp;start=25" frameborder="0" allowfullscreen></iframe>

<h2 id="how-to">How to</h2>
<h3 id="prerequisites">Prerequisites</h3>
<p>As this is a <a href="http://jhipster.github.io/">JHipster</a> module, we expect you have JHipster and its related tools already installed. Make sure you have also installed <a href="https://github.com/CleverCloud/clever-tools">clever-tools</a> and that you have already ran <code>clever login</code>. The generator uses it heavily and won&#39;t work if it&#39;s not available.</p>
<h3 id="installation">Installation</h3>
<p>To install this module:</p>
<pre><code class="language-bash">npm install -g generator-jhipster-clevercloud
</code></pre>
<p>To update this module:</p>
<pre><code class="language-bash">npm update -g generator-jhipster-clevercloud
</code></pre>
<h3 id="usage">Usage</h3>
<p>To run the module on a JHipster generated application:</p>
<pre><code class="language-bash">yo jhipster-clevercloud
</code></pre>
<h2 id="whats-next">What&#39;s next?</h2>
<p>We plan to add support for other databases and third-parties once they are publicly supported by Clever Cloud. Think Elasticsearch, RabbitMQ, Kafka etc..</p>
<p>This project is in early stage and we would love to have your feedback. What would you like to do with it?</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1.jpg 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-300x116.jpg 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-1024x395.jpg 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-768x296.jpg 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/jhipster-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>There has been some demand for a <a href="https://github.com/CleverCloud/generator-jhipster-clevercloud">JHipster Clever Cloud generator</a>. We started working on it and it&#39;s now avaiable on the JHipster marketplace as a module.</p>
<span id="more-2918"></span>

<h2 id="what-is-jhipster">What is JHipster?</h2>
<blockquote>
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
</blockquote>

<p>Simply put, JHipster will scafold a new Spring Boot + Angular project based on your answers to a series of questions. Among those questions you&#39;ll get to choose if you want to use Maven or Gradle and which database you want among other things. These two basic choices will determine how you deploy your application on Clever Cloud.</p>
<p>This is where the <a href="http://www.jhipster.tech/modules/marketplace/#/details/generator-jhipster-clevercloud">jhipster-clevercloud</a> generator comes in handy. It will generate the appropriate configuration and create the right application and addon. The current flow of question is simple.</p>
<ul>
<li>Choose the organisation or user to deploy the project</li>
<li>Choose the region where to deploy it</li>
<li>Give it a name (or reuse an already linked application)</li>
<li>Decide if you want Clever Cloud to manage the database<ul>
<li>If yes, it will be detected and will let you choose the appropriate plan</li>
<li>If no, you will have to manage the DB configuration yourself</li>
</ul>
</li>
</ul>
<p>Please note that the only DBs supported so far are PostgreSQL, MySQL and MsSQL.</p>
<p>Once the generator does its magic, you are left with a <code>clevercloud</code> folder containing the specifics. All you have to do then is to commit those changes and run <code>clever deploy</code>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/vf2WxTHSwsE?rel=0&amp;start=25" frameborder="0" allowfullscreen></iframe>

<h2 id="how-to">How to</h2>
<h3 id="prerequisites">Prerequisites</h3>
<p>As this is a <a href="http://jhipster.github.io/">JHipster</a> module, we expect you have JHipster and its related tools already installed. Make sure you have also installed <a href="https://github.com/CleverCloud/clever-tools">clever-tools</a> and that you have already ran <code>clever login</code>. The generator uses it heavily and won&#39;t work if it&#39;s not available.</p>
<h3 id="installation">Installation</h3>
<p>To install this module:</p>
<pre><code class="language-bash">npm install -g generator-jhipster-clevercloud
</code></pre>
<p>To update this module:</p>
<pre><code class="language-bash">npm update -g generator-jhipster-clevercloud
</code></pre>
<h3 id="usage">Usage</h3>
<p>To run the module on a JHipster generated application:</p>
<pre><code class="language-bash">yo jhipster-clevercloud
</code></pre>
<h2 id="whats-next">What&#39;s next?</h2>
<p>We plan to add support for other databases and third-parties once they are publicly supported by Clever Cloud. Think Elasticsearch, RabbitMQ, Kafka etc..</p>
<p>This project is in early stage and we would love to have your feedback. What would you like to do with it?</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>One Framework a Day keeps the Boredom Away: JHipster</title>
		<link>https://stagingv6.cleverapps.io/blog/features/2017/10/19/1fdba-jhipster/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Thu, 19 Oct 2017 17:15:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[1fdba]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jhipster]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2017/10/19/1fdba-jhipster/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Welcome to this new edition of <a href="/blog/features/2017/10/09/1fdba-step0/">One Framework a Day keeps the Boredom Away</a>. In this series I will show you how to deploy a particular framework on Clever Cloud every day until I want to go back to boredom. Today it&#39;s about JHipster.</p>
<span id="more-2913"></span>

<p>In each post of this series we&#39;ll see how to deploy a particular framework on Clever Cloud. Today we are taking a look at <a href="http://www.jhipster.tech/">JHipster</a>.</p>
<p>If you want to tag along, make sure you have git, a Clever Cloud account and that you have installed our CLI <a href="https://github.com/CleverCloud/clever-tools">Clever-Tools</a>.</p>
<h2 id="what-is-jhipster">What is JHipster?</h2>
<blockquote>
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
</blockquote>

<p>JHipster, not your grandma&#39;s Yeoman generator, has been around for quite some time now and seems to be one of the default solution to scafold a modern SpringBoot+Angular stack. It supports many different options for both frontend and backend. Some of these supported by Clever Cloud.</p>
<p>So today we are going to deploy a JHipster stack based on MySQL. We are doing this mostly because our good friends <a href="https://twitter.com/Stephan007">Stephan Janssen</a> and <a href="https://twitter.com/agoncal">Antonio Goncalves</a> told us they would love to see a JHipster/Clever Cloud integration. Before any convenient integration, I need to know how it works :)</p>
<h2 id="setup">Setup</h2>
<p>Here are the steps to create and deploy a JHipster/MySQL application to Clever Cloud:</p>
<ul>
<li>First make sure you have installed JHipster: <code>yarn global add generator-jhipster</code></li>
<li>Create a folder for your future application: <code>mkdir clever-jhipster &amp;&amp; cd clever-jhipster</code></li>
<li>Run JHipster and follow instructions on screen <code>jhipster</code></li>
<li>Make sure you select MySQL and Maven in the wizard</li>
<li>Create the MySQL database: <code>clever addon create mysql-addon --plan dev --region eu jhipstersql</code></li>
<li>Create the Clever Cloud application: <code>clever create --type maven cleverJHipster</code></li>
<li>Link your database to your application: <code>clever service link-addon jhipstersql</code></li>
<li>Create a clevercloud folder at the root of your project: <code>mkdir clevercloud</code></li>
<li>Create a <em>maven.json</em> file with the following content: <code>vim clevercloud/maven.json</code></li>
</ul>
<pre><code class="language-json">{
  &quot;build&quot;: {
    &quot;type&quot;: &quot;maven&quot;,
    &quot;goal&quot;: &quot;-Pprod package -DskipTests&quot;
  },
  &quot;deploy&quot;: {
    &quot;jarName&quot;: &quot;./target/jhipster-0.0.1-SNAPSHOT.war&quot;
  }
}
</code></pre>
<p>This file tells Clever Cloud to run <code>mvn -Pprod package -DskipTests</code> and then <code>java -jar ./target/my-app-0.0.1-SNAPSHOT.war</code>. Don&#39;t forget to change the jarName according to the name of your project.</p>
<p>Now to configure the application we will create a<code>clevercloud/application-clever.yml</code> file containing all the specific configuration to run on Clever Cloud.</p>
<pre><code class="language-yaml">spring:
    datasource:
        url: jdbc:mysql://${MYSQL_ADDON_HOST}:${MYSQL_ADDON_PORT}/${MYSQL_ADDON_DB}?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false
        username: ${MYSQL_ADDON_USER}
        password: ${MYSQL_ADDON_PASSWORD}
        maxActive: 5
</code></pre>
<p>Here I am using variable already predefined by CleverCloud with the <em>${}</em> synthax. To make sure this file is found while running the application, we need to copy it right before running with a hook: <code>clever env set CC_PRE_RUN_HOOK &quot;cp ./clevercloud/application-clever.yml ./application-prod.yml&quot;</code></p>
<h2 id="deploy">Deploy</h2>
<p>Select the build dedicated instance because the JHipster build is memory greedy. To do that you have to go on the WebConsole, in your application, in the Information tab and tick the <em>Enable dedicated build instance</em> checkbox.</p>
<img src="https://www2.cleverapps.io/app/uploads/2021/08/jhipsterconfig.png">

<p>Now commit your changes and run <code>clever deploy</code>, this will push your code to our remote git branch and deploy it. At the end you can type <code>clever open</code> and it should open your website in your default web browser.</p>
<p>We plan to have a better integration to JHipster through a module. What kind of features would you like to have?</p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1.png 1400w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-300x116.png 300w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-1024x395.png 1024w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-768x296.png 768w, https://staging-cc-assetsv6.cellar-c2.services.clever-cloud.com/uploads/2021/08/1fdba-jhipster-1-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Welcome to this new edition of <a href="/blog/features/2017/10/09/1fdba-step0/">One Framework a Day keeps the Boredom Away</a>. In this series I will show you how to deploy a particular framework on Clever Cloud every day until I want to go back to boredom. Today it&#39;s about JHipster.</p>
<span id="more-2913"></span>

<p>In each post of this series we&#39;ll see how to deploy a particular framework on Clever Cloud. Today we are taking a look at <a href="http://www.jhipster.tech/">JHipster</a>.</p>
<p>If you want to tag along, make sure you have git, a Clever Cloud account and that you have installed our CLI <a href="https://github.com/CleverCloud/clever-tools">Clever-Tools</a>.</p>
<h2 id="what-is-jhipster">What is JHipster?</h2>
<blockquote>
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices.
</blockquote>

<p>JHipster, not your grandma&#39;s Yeoman generator, has been around for quite some time now and seems to be one of the default solution to scafold a modern SpringBoot+Angular stack. It supports many different options for both frontend and backend. Some of these supported by Clever Cloud.</p>
<p>So today we are going to deploy a JHipster stack based on MySQL. We are doing this mostly because our good friends <a href="https://twitter.com/Stephan007">Stephan Janssen</a> and <a href="https://twitter.com/agoncal">Antonio Goncalves</a> told us they would love to see a JHipster/Clever Cloud integration. Before any convenient integration, I need to know how it works :)</p>
<h2 id="setup">Setup</h2>
<p>Here are the steps to create and deploy a JHipster/MySQL application to Clever Cloud:</p>
<ul>
<li>First make sure you have installed JHipster: <code>yarn global add generator-jhipster</code></li>
<li>Create a folder for your future application: <code>mkdir clever-jhipster &amp;&amp; cd clever-jhipster</code></li>
<li>Run JHipster and follow instructions on screen <code>jhipster</code></li>
<li>Make sure you select MySQL and Maven in the wizard</li>
<li>Create the MySQL database: <code>clever addon create mysql-addon --plan dev --region eu jhipstersql</code></li>
<li>Create the Clever Cloud application: <code>clever create --type maven cleverJHipster</code></li>
<li>Link your database to your application: <code>clever service link-addon jhipstersql</code></li>
<li>Create a clevercloud folder at the root of your project: <code>mkdir clevercloud</code></li>
<li>Create a <em>maven.json</em> file with the following content: <code>vim clevercloud/maven.json</code></li>
</ul>
<pre><code class="language-json">{
  &quot;build&quot;: {
    &quot;type&quot;: &quot;maven&quot;,
    &quot;goal&quot;: &quot;-Pprod package -DskipTests&quot;
  },
  &quot;deploy&quot;: {
    &quot;jarName&quot;: &quot;./target/jhipster-0.0.1-SNAPSHOT.war&quot;
  }
}
</code></pre>
<p>This file tells Clever Cloud to run <code>mvn -Pprod package -DskipTests</code> and then <code>java -jar ./target/my-app-0.0.1-SNAPSHOT.war</code>. Don&#39;t forget to change the jarName according to the name of your project.</p>
<p>Now to configure the application we will create a<code>clevercloud/application-clever.yml</code> file containing all the specific configuration to run on Clever Cloud.</p>
<pre><code class="language-yaml">spring:
    datasource:
        url: jdbc:mysql://${MYSQL_ADDON_HOST}:${MYSQL_ADDON_PORT}/${MYSQL_ADDON_DB}?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false
        username: ${MYSQL_ADDON_USER}
        password: ${MYSQL_ADDON_PASSWORD}
        maxActive: 5
</code></pre>
<p>Here I am using variable already predefined by CleverCloud with the <em>${}</em> synthax. To make sure this file is found while running the application, we need to copy it right before running with a hook: <code>clever env set CC_PRE_RUN_HOOK &quot;cp ./clevercloud/application-clever.yml ./application-prod.yml&quot;</code></p>
<h2 id="deploy">Deploy</h2>
<p>Select the build dedicated instance because the JHipster build is memory greedy. To do that you have to go on the WebConsole, in your application, in the Information tab and tick the <em>Enable dedicated build instance</em> checkbox.</p>
<img src="https://www2.cleverapps.io/app/uploads/2021/08/jhipsterconfig.png">

<p>Now commit your changes and run <code>clever deploy</code>, this will push your code to our remote git branch and deploy it. At the end you can type <code>clever open</code> and it should open your website in your default web browser.</p>
<p>We plan to have a better integration to JHipster through a module. What kind of features would you like to have?</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
