Deployment overview
There are two ways to deploy web apps created with Xojo: Standalone and Xojo Cloud. You can deploy your web apps to Virtual Private Servers (VPS) with proper configuration. We do not recommend shared hosting services as they typically do not work well due to a general lack of configurability and because they can create potential security issues. For the simplest hosting and deployment experience with built-in SSL, one-click deployment and database support, you should consider using Xojo Cloud.
Note
Deploying a web app as a CGI is no longer supported as of Xojo 2020r1.
Server configuration help
Xojo does not provide support for configuring your own web server to run Standalone Xojo web applications. If you require easy, one-click deployment of your Xojo web apps consider using Xojo Cloud. These topics give an overview of what is required, but many things can vary between web servers.
Launching your app on your server
A Standalone web app is an app that you manually run on your server. Once you transfer the app to the server, you have to start the app (usually from the command line) and leave it running in order for people to access the web app. In addition, a Standalone web app is accessed through a port, which you specify when building the app. Essentially, a standalone web app consists of both the web server and your web app.
To start a web app, use the command line. In its simplest form, you can just type the name of the web app:
./MyWebApplication
You can also change many settings using command-line options. This command starts the web app on a specific port:
./MyWebApplication --port=9191
For more information about command-line options, refer to the Deployment Details page.
A deployed web app would be accessed with a URL such as this that includes the port:
https://www.mywebsite.com:8080
Xojo Cloud
Xojo Cloud is for those that want the fastest and easiest way to deploy web applications. Xojo Cloud is a fully managed, highly secure hosting environment for your Xojo web apps and has these features:
Excellent security with free SSL support
One-click deployment directly from Xojo
Automatic Load Balancing to support the more concurrent users
Domain and Subdomain support
Remote Server and Application Monitoring
SFTP support
MySQL
PostgreSQL
SQLite
Remote Database Access
Unlimited app deployments (CPU, disk space and memory permitting)
Refer to the Xojo Cloud topic for more information.
Platforms
If you decide not to use Xojo Cloud, your web app can be compiled for any of the OS platforms supported by Xojo. When it comes to web servers, Linux is the most commonly used operating system, followed by Windows and then macOS.
To build your web app, click the Build button in the toolbar. If it is not enabled, make sure you have also selected one of the platforms listed below. Build is disabled if only Xojo Cloud is selected.
Linux
In complete opposition to the situation on the desktop, the majority of web servers use some form of Linux. The two most common types of hosting are shared and VPS (Virtual Private Server). Shared hosting usually costs less, but is also often rather restricted. Most shared hosting providers work best with static web sites or pre-configured tools (such as WordPress) and do not allow general purpose apps to run on them. They are rarely a good choice for a Xojo web app.
Your best choice is to use a VPS (Virtual Private Server) to host your Xojo web apps. A VPS gives you your own server, usually running the Apache web server, with its own specs running inside of a Virtual Machine (VM). With a VPS you have complete control over the server and can configure it to run Xojo web apps.
Windows
Windows web servers primarily use IIS (Internet Information Server), but they can also run Apache. Windows servers are far less common than Linux servers. There are also fewer hosting companies offering Windows servers and they usually cost more. If you are using a Windows server, it is recommended that you run a standalone Xojo web app configured to start as a service. If you wish to use IIS, it is recommended you use IIS as a reverse proxy to a Xojo standalone web app.
Mac
Mac web servers typically use Apache and setup is mostly the same as it is for Linux. There are even fewer Mac servers in use than Windows, but Mac servers can be simpler to configure. There are no known hosting companies that offer Mac web server hosting, but there are several that offer colocation services for your own Mac hardware.
If you want to install a web server on macOS, consider using MAMP.
Test apps for deployment
To help you test deployment of Xojo apps on your web server, here are several versions of a simple compiled app for you to try. Use them to verify that your web server provider will be capable of running Xojo web apps. With both examples, connect on port 8080:
OS Type |
Operating Systems |
Download |
---|---|---|
32-bit |
Linux, Windows, Raspberry Pi |
|
64-bit |
Linux, Windows, Mac |
Troubleshooting
If you are having difficulty getting a web app running on your server, perhaps these tips will help:
Verify that you compiled your web app for your Server OS and not your desktop OS.
Check the permissions for the files and folders containing your web app.
Ensure that the web app and the libraries in the Libs folder are all set to be executable.
Always check your server logs to see if they have additional information.
Xojo does not provide support for configuring your web server for use with Xojo web apps. If you require easy, one-click deployment of your Xojo web apps consider using Xojo Cloud.
See also
For more information about web app deployment: