A _scaler_is an individual instance hosting your app. You can attribute one or more Scalers to your apps. Scalers come in many sizes based on each language requirements from Pico to XL.
Each scaler is given a fixed set of resources.
When enabling auto-scalability, you have to set a minimum and a maximum of active scalers in your apps settings. This way you can precisely control your monthly fee.
Currently Clever Cloud supports:
- Java (Play Framework 1 & 2, Maven, War files… )
- PHP (see frameworks and CMS)
- Python (Django)
As many as you want. We’ve not set a limited number of apps by developer.
You can bind custom domain names to your applications. Please have a look at Custom Domain Names.
Log in with your account to console.clever-cloud.com, and select the appropriate organization and app in the left column. Then click on the application name and select Overview. Click on the Stop button to stop your app.
Please refer to our Terms and Conditions, article 6, Obligations and responsibilities of the client.
Log in with your account to console.clever-cloud.com, and select the appropriate organization in the left panel. Then click on Members in the mid pane. You’ll see a list of the organization’s members. If your are an admin, you can revoke or grant permissions.
To report an application that is in violation of Clever Cloud’s Terms and Conditions, please contact us at email@example.com.
We will investigate and contact the application’s owner over the violation if needed.
Absolutely! For testing purposes,
cleverapps.io domains support TLS out of the box. For custom SSL certificates, you can either order one from us or use an existing one.
Have a look at installing SSL certificates, and feel free to contact us at firstname.lastname@example.org if you have questions.
Please refer to prefix routing to learn how to have two applications share a domain name.
See Cron Configuration File for more information.
All connections are handled by load-balancers ahead of your applications and forwarded in plain http, you cannot rely on the server port to know the scheme used by the user.
Instead, you can use the
X-Forwarded-Proto HTTP header to get the information, it is set to either ‘http’ or ‘https’.
request.secure instead of using the header, you must add
XForwardedSupport=all in your application.conf.
request.secure instead of accessing the header, you must add
trustxforwarded=true in your application.conf.
It’s explained here.
All connections are handled by load-balancers ahead of your applications and forwarded in plain http.
So if you get the
Client-IP header, you will only
get the IP of the front load balancer that forwarded the user request.
Instead of these headers you need to use the
header, which is set by our load balancer to the client’s address. Please
remember that it is a list, containing the address of each proxy the request
has been through, if the said proxy has modified the
header: Read the Wikipedia page for more informations
If your application needs to differentiate all the running nodes internally, you can use the
INSTANCE_NUMBER environment variable.
For example, if 3 instances are running for your application, this environment variable will contain
0 on the first,
1 on the second and
2 on the third.
If your company manages its own artifacts in a private repository (like, you can only
access them via git+ssh or sftp), and you need a private key to connect to the server, you
can commit them in your application’s Clever Cloud repository and then add a
The ssh.json file is documented here.
I get a
java.lang.UnsupportedClassVersionError : Unsupported major.minor version error. How can I fix it?
If you get this error on a Java (or any JVM language) application, it means that your application was compiled with a newer Java version than the one used to run it.
As an example, if a Spring Boot application was compiled with Java
17 and run with Java
11, the following error will occur :
java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
By default, Java
11 is used, but it can be changed. Please head over here for more information.
For reference, the table below lists the class file version for each major Java version (official doc) :
|Class file version
Clever Cloud does not give you access to a server or a VPS, it makes your application run. Each instance is started and configured automatically, and can be stopped at any moment.
If however, you still need SSH access for debugging purposes, please have a look at SSH access, but keep in mind that changes made on an instance are not persistent across deployments.
Yes, since 2016 Clever Cloud is packaged for private datacenter. This offer called “Clever Cloud On Premises” is avaialble upon request: you can send a mail to email@example.com or visit https://www.clever-cloud.com/on-premises for more infos.
Applications and add-ons are located in either Paris, France or Montreal, Canada. You can choose where you want it to be when you create an application and a Clever Cloud add-on.
Clever Cloud is based in Nantes, France.
It’s currently not possible to use Kubernetes on our platform. It is however on our Roadmap.
Specific firewall rules can be enabled on demand to the support or in case of attack.
scp something to the VM, you can however easily
scp something from the VM to the outside.
wkhtmltopdf is available and fully functional but we deeply recommend to use use
chromium headless instead.
All instances on Clever Cloud run on the UTC timezone. We recommend to handle all your dates in UTC internally, and only handle timezones when reading or displaying dates.
A full disk can cause your database to crash or become unresponsive. We advise you to check how many free space there is. You might want to do one of the following:
Only you know your data!
You can take a snapshot of your database and export the obsolete data to a cold storage. Then you can remove records from your database, reindex your tables and try to perform a VACUUM operation if the database software allows it.
… Or to the same plan!
You can buy more disk space by migrating your add-on to a higher plan. If a VACUUM operation needs more disk that there is remaining, migrating to the same plan will clean up the file on disk and regain space.
Did this documentation help you ?