Lifeboat: Debian Support, Static Files Serving

Hello and happy Monday!

I hope you’ve heard about my project Lifeboat, but if you haven’t yet I would be grateful for your feedback! Lifeboat is an app to simplify the deploy process for Xojo Web apps. My goal is to help everyone who wants to make a web app get up and running.

These past few weeks have been very busy for both my business and personal life. It’s been almost a month since the last update!

In this newest version are two huge features many folks have been asking for. First, I am pleased to announce support for Debian GNU/Linux. Lifeboat now supports both versions Stretch 9 and Buster 10. The second, this version introduces Static File serving!

After configuring a domain, you can serve static files like additional css/js through nginx instead of your Xojo Web app. This offloads work serving files and can help your Xojo Web app load faster. It is even possible to configure these files to serve out of a folder on the same domain as your web app.

Here’s what’s new in Build 36:
New: Support for Debian 9 & 10 servers
New: Static File serving and management
New: Root document for when nothing is configured at an address
Fixed: Lifeboat now redeploys all address configurations when repairing a server
Fixed: Deleting an address now corrects the main nginx config
Fixed: Deleting a name brings the user back to the names list
Fixed: Deployment errors for domains and subdomains now reach the user
Fixed: Deployment errors are cleared from previous action
Fixed: Requesting SSL certificate now gets the latest email address from the UI
Fixed: Permissions error with nginx
Fixed: Server windows no longer open as children of the previous server
Changed: Window build label no longer visible until sidebar appears
Changed: Window build label now indicates license

Please check it out and let me know what you think! It seems like we’re getting close to an initial release now. This could be the final round of testing before an official 1.0 release. I’m quite excited and look forward to your feedback.

More information:


Best wishes,
Tim Parnell


Even tough I’m not using your product, as I’m dealing with it on my own (hard learning curve over the years), I have to tell you 2 things:

  1. Firstly I learned a few more things via your script, which I bought and is excellent too.
  2. Secondly, I believe you are doing a fantastic job with this product as it is not trivial for beginners to deal with all this stuff in parallel to learning Xojo Web. Xojo Cloud is a great product, but there are reasons why you want to run a server by yourself, or be it only the price ticket for beginners with simple apps which don’t bring any or no big income.

Last but not least, starting an own linux server to run a Xojo Web App is one thing, but running it securely is a complete different thing. Judging from your script tutorial I can say that you are building your stuff by having a maximum of security in mind, Well done!


Thank you for your kind words! The fabulous support from the community is what inspires me to keep building Lifeboat. I am glad to have helped :slight_smile:


Great Tim,

Thank you for incorporating the suggestions we make (especially the Debian support). For me your application is perfect now :wink:.

We are closer to having a Lifeboat version that supports Raspberry Pi (when Xojo is compatible with WebApp in 64bits ARM).

A great job. Thanks for all your effort.

Greetings friend,


BTW, are you giving the user a helping hand to change the timezone of the server?

Reason why I’m asking is that, I just installed a web app to a customer server and it took me a while to realize that the one who installed that server forgot to adapt the timezone. I know that many Linux people will not localise time on servers, but for strictly local/regional deployments I prefer the server dealing with the right timestamp rather than me taking care of it in database updates via Xojo. And it would be a small “feature” if not yet included ;-).

If you need a helping hand to translate to German, just PM me with your strings and the max. length of each. If you see a big market in Luxembourg, I can translate to Luxembougian too :slight_smile: .

Yes! Timezone changing is one of the things I need for myself as well. It’s on the list, but is scheduled for after the first official release.

My plan is to add useful gadgets and commands to the Server Tools section :slight_smile:

I have been working to separate out localized strings for translation, and will definitely be taking you up on that offer!


Where do you add your license key? I open Lifeboat and it takes me to the New Server window. No way to add license on boot. I am trying to install CentOS 7 or Debian 9/10 on my Raspberry Pi to make it a server.

[These instructions are for Windows]

You will find License under the Help menu on the Server window. On Windows, you will need to connect to a server to access the MenuBar. There is also a button on the server list window when not activated. You should be seeing it with the new connection view (it’s the same window).

Lifeboat will show the new server window if you have no saved server connections. When you add your first server Lifeboat will set the option for auto connect to that server. You can change the auto connect behavior from Edit > Options.

If you’re still having difficulty please reach out by private message or email and we’ll get things squared away.

1 Like

I’m going to give it another try tonight.

I tried an earlier beta and, while it walked me through everything something at the end didn’t work. I’m sure it’s me, not the program, but when I can make it work you’ll know it’s ready for primetime. :wink: Every time you idiot-proof something God makes a better idiot. I am that idiot. :rofl:

1 Like

Okay, like I said, I am that idiot . . .

I keep getting “Authentication failed. Unable to extract public key from private key.” I’m using the .pub key I created (and tried recreating it just in case) but no luck.

The Public Key goes on the remote server, you will need the Private Key file to authenticate. If you’re having a lot of trouble, Digital Ocean still offers password authentication.

Thanks Tim, password worked. I’m not sure why it didn’t like my key (I tried the private one, too. Still didn’t work).

Don’t worry, though. I’ll screw up the next step, too.

GASP I almost have it working!

I think the only thing I have left is to figure out where to put my database so the app finds it, and then to give you some cash. :+1:

You will have the most success if you develop like you’re respecting the macOS security standards. In other words, don’t use GetFolderItem or store things next to the executable. Store them in a child folder of SpecialFolder.ApplicationData.


Further to what Tim mentioned, please be aware of this bug which means that Xojo will return Nil for some predefined SpecialFolders:

63370 - SpecialFolder on Linux - Some Predefined Paths Do Not Exist

[BTW Feedback was fun to use for the first time raising lol]


Fortunately I was already using SpecialFolder.ApplicationData, so it was just a matter of uploading the database setting a path, which you made very easy.

License purchased. You saved me a ton of headache. You are a gentleman and a scholar. :face_with_monocle: