I have been working on an app to help manage and deploy Xojo Web apps to Digital Ocean droplets. I made it to make my life easier, but I’m sure there are others who might find it useful.
Here is a quick demo of what’s done so far:
I’m looking for feedback and testers. At this stage it really shouldn’t be used for production environments. It’s a little error prone as I work out issues with libssh2 right now. I’d like to get feedback early in case some good requests cause a massive restructuring.
If this app seems interesting to you or could prove useful on your toolchain I would love to hear from you.
It works with standalone builds for Web 1.0 and Web 2.0!
Yes! It’s much the same process. I should make a video for both before it launches
It’s been tested with both providers. A lot of folks around the forum like Lightsail so I thought I’d demo with aws. It’s much the same process, but I’m thinking I’ll make another video too.
I’ve received a lot of interest and will be getting back to everyone in the upcoming days!
#Tim Parnell
This is great work! I’m fed up with Serverwarp’s non-existent customer support, and am looking to migrate my Xojo web apps to a new server. AWS looks like a competitive solution.
1 Question (I have always used cgi apps previously) - How would I start up / or kill a running standalone app?
With Lifeboat, it’s as simple as the Start and Stop buttons. This will start and enable a service so that if the server reboots so does the app. Stopping the app does the reverse.
Without Lifeboat, there are a few options. Assuming you understand how to upload your app and set it executable, you can start the app like this:
/path/to/my/app --port=80
This command leaves the process attached so if you cmd-c you’ll actually end the app. You can send it off on it’s own by putting an & at the end of the command, but you’ll have to retrieve the process ID to end it.
/path/to/my/app --port=80 &
sudo lsof -i :80
sudo kill %process_id%
Another method (my preferred method) and what Lifeboat does, is set up a systemd service. This makes it so the app is watched over and if it crashes or the server restarts, systemd will restart the app. This makes starting and stopping an app look like this:
systemctl start MyGreatApp
systemctl stop MyGreatApp
This method requires setting up some configuration files.