While Xojo Cloud is great and extremely easy to use, there are some snags.
Other than the subscription cost, the issue is SSL - only one certificate can be applied per server apparently, which means that to deploy 2 apps, either I’d need to use a wildcard SSL, at least doubling the cost of a basic Xojo Cloud server but then all apps would need to share the root domain (although could have infinite subdomains), or I’d need to get a new server for each app, which for non-profit stuff isn’t great when you consider the recent price-hikes.
Looking at other options for deployment it seems CPanel based hosting looks like a non-starter, and that I should use a VPS instead.
DigitalOcean with a Linux based droplet and linked MySQL server would seem to fit the bill and come in at $21/month (SSL could then be free). Does anyone have experience using DigitalOcean? My web app would be uploading and reading files on the VPS (which I currently do with Xojo Cloud), but not sure how commands like SpecialFolder would work, since the basic folder structure would be absence (there would literally just be an ext4 formatted volume)?
To have a good experience, you’re going to need to know something about launching binary applications using a systemd daemon. Otherwise, if your app ever quits or the server restarts, you’ll need to log back in via ssh and relaunch the app.
You’ll also need to configure Apache or nginx as a reverse-proxy / load-balancer.
It is! I use it myself to deploy to Digital Ocean.
You also don’t need to pay for a MySQL server, Lifeboat can install MariaDB on the same VPS which should save some money.
The paths that SpecialFolder will return are in the Xojo documentation, but an easy lazy way to port from Xojo Cloud to any other server would be to find and replace all SpecialFolder.Documents with SpecialFolder.ApplicationData.Child("My app")
(Lifeboat got its name because it was built to help people sail the digital ocean)
Yes I’d seen LiveBoat in my travels, but was unaware it would install a MariaDB instance, which sounds pretty amazing as that would drop the cost significantly!
I’m leaning towards this quite heavily - very impressive Tim!
Does anyone have any recommendations for what kind of droplet/which OS to create?
I was going to go with the lowest spec’d one to start with and I think I saw a lot mentioned about CentOS in documentation and online posts - is that the OS to go for? or should I go for Debian (or Ubuntu)?
OK I’ve got as far as setting up the droplet and installing LIveBoat and MariaDB, but I’m a bit stuck on being able to login remotely to the MariaDB/MySQL instance.
I normally use Valentina studio for things like this - I entered the correct IP address, created a username/password for the database, and enabled external access - but the attempt to login is rejected.
Any advice?
================= Edit: ignore - had made the mistake of changing the field from ‘%’ to ‘localhost’, changing that fixed everything. Really keen to put it to the test now!
My other suggestions would have been to make sure that “Enable external access” was enabled and that any optional external firewalls allowed access to the port.
On the multiple cert part of the question, on a digital ocean ubuntu droplet the following commands get a wildcard cert that covers the entire domain and one level under it. You can serve as many domains on one IP as you like. This assumes you are using DO for your DNS. Create an an api key that at least allows DNS control. Install doctl (the digital command line tool) and give it the api key. Then install the certbot interface and do this onetime setup:
Really, you want to use Lifeboat, also to free yourself from the hassle of managing SSL certificates for your webapps.
Lifeboat is securing the connection to your webapps with FREE Letsencrypt certificates, and its just a click away. As many SSL certificates as you like.
I use Lifeboat together with Webmin to manage a free Oracle Ubuntu 24.04 instance, 4 cpu - 24GB Ram - 200 GB diskspace - at no cost!