Deploying a project with resource manager and DO

Right… it’s become time to set up some type of web server and actually launch this beast.

But I have absolute zero clue what I’m doing. I’ve been scouring the forum, but most information seems to be out of date. From what I’ve understood so far, Digital Ocean good, resource manager good.

Right, so I followed this page,

That failed right away, the suggest $4 monthly (I assume droplet?) started screaming about the image or something not being big enough or not big enough… I don’t know. The wappler folder I have is 32mb, so what gives? I tried the $6 monthly instead and that kicked off some stuff… but after a few minutes I was presented with the message below.

Waiting for server to boot…
Boot done in : 35.806 secs
Waiting for Server Setup to complete…
Error in server access setup: ssh: connect to host 198.199.66.142 port 22: Connection refused

Server setup failed!

Okay then, so I went to my digital ocean dashboard, and there is a droplet there, so what gives?

I have no idea what I’m doing here guys haha… How does this actually work? Do I have a server set up? Do I have a website now? If I do… do I have a database? I’m using SQLite locally… assuming I should use mysql on digital ocean, how does any of that work?

I’m more lost trying to do this than I’ve ever been using Wappler haha. How does any of this actually work? Anyone ever done a full step by step wappler > digital ocean tutorial or something?

It seems you did everything good, but as you can see the setup can be a bit finicky.

Honestly, you’re better using a shared hosting service. I think @ Hyperbytes made a video?

I'd recommend considering a "managed app platform"so the server and database upkeep is performed by the hosting company - this generally means you just publish to your 'main' on git and the server sees it and restarts your web server with the new app to deploy a new version.

It's as easy as it gets, with the downside the costs are generally higher overall.

Heroku works beautifully and has been reliable for me - but it is a bummer that they got rid of the free tier, which was great for development

I use Resources Manager to deploy and manage web and db deployments in all my projects. I use Vultr as the hosting provider.

I suggest creating new VPC instances first on the DO / other hosting providers’ platforms and importing them into the projects. Once the servers have been imported, perform a System Check to deploy docker (if not already installed). This step will prepare the server for web app and DB service deployments.

I don’t know how SQLite works in a remotely deployed web app. I deploy MySQL databases separately on remote instances, again via the Resources Manager, and connect them to the web app under the project target settings.

Yes the server is way too small to run and your site and database. You should go for at least $6 one

Thank you all!

@Apple I saw his video pop up the other day, and quickly skimmed one of them. But since he was using ftp outside wappler (incorrect, see Brian's reply further down) I, foolishly thought DO from inside Wappler would be easier :smile: I will watch all the videos in his series today, If I can figure out it out, that seems like a very reasonably priced service.

@nomad having a quick look at Heroku, that looks very promising, but yes, also very, very expensive in comparison. 100USD a month it seems, compared to $3?

@guptast The problem I'm having is that I understood next to nothing of what you're talking about there haha. Same with @George much appreciated, but I have no idea why my 30mb folder would be too big for that server option, and it all tells me I'm better off not messing with it haha.

@twinklemagoo Heroku won't cost $100USD/month unless your site reeeealy takes off.

For most small business sites and startups, I think Heroku more like $16USD a month:

  • Heroku's "Basic" $7/month plan for the app
  • Heroku's "Basic" managed postgresql database for $9/month
  • This doesn't cover your needs if you need a persistent volume, so budget another $5-15 for that if needed.

The issue with Heroku is that the pricing escalates from $16/month to effectively $75/month when you need to grow to the next tier. But I have only had two clients select that tier of hosting, and they didn't need it - they just wanted to have a lot of headroom.

If you don't need total control of your server environment and would rather have a "click to publish" type setup, Heroku has been easy and reliable for me. And they handle SSL for you completely.

@nomad oh that's great. I just clicked the options on the pricing page and it came to $50+$50 estimated, which seemed a bit wild. But I guess that's the very top it would max out at then.

I went through @Hyperbytes orangehost video. And it seemed very straight forward as well. And he goes between Sqlite and mysql as well. It wasn't immediately clear to me if Heroku only supports Postgres and is there are any issues with that?

The one thing I haven't fully wrapped my head around either is targets. Ben as usual did a great job showing it in the video, and it seems surprisingly easy, but I don't understand how to import your local DB schema to the server, or if you have to manually recreate it, which seems a bit annoying if you have a very complex schema.

If you are referring to the Oranghost series then deploy is made internally via wappler using the standard "publish" process.
I have not used a separate ftp manager for several years!

Just a heads-up... a lot of these services with a pay-as-you-go option do not actually have a max cap except on certain plans. Once you outgrow a fixed-price capped package, you often pay a variable amount based on use.

Cost will depend on the type & performance of servers you choose, the amount data stored and transferred, and often a per-second charge anytime your app is "active" on the server.

The only issue I've ran into with Postgresql is that it is always case sensitive for searching, matching, etc.

This means searching for user-submitted text takes some thought and processing or special setup of some kind to ensure you can find what you're looking for. There are a few workarounds for this that work, but in general you just have to really think about how you will search for things that may be mixed capitalization.

Yes, sorry @Hyperbytes I wrote that after having skimmed through the video and saw you creating the folder in cpanel. I have now had time to watch the full videos and saw how you're connecting it to Wappler. Which was a great relief to me haha.

@nomad yes, I've found that as well. Which makes it difficult to reasonably accurately estimate a cost when, if like me, you have no clue how much juice anything actually requires to run things.

Case sensitivity shouldn't be an issue I think, as so is Sqlite I believe? at least I was under the impression it is and have built the app to only ever insert lowercase in the database.

is there a benefit of Heroku over OrangeHost for a web app? I see some people out there arguing that Heroku is app centric and supposedly better for apps as opposed to a static website?

Put simply, SQLite is not suitable for production environment

2 Likes

How did you make your tables and columns in first place?

This is not a rethorical question, I want to understand if you followed best practices or not.

If you followed best practices, which is using Wappler changes/migrations, it should be relatively easy to replicate the schema on the remote server.

If not, well, you can use the software DBeaver Community Edition to replicate the schema, but this is not documented here in the Wappler community.

Unless you're processing large amounts of data, the capped ($7 "Basic" on Heroku plan) should give you plenty of power for hundreds of daily users for typical website apps/apis. You'll need a more powerful service if you're processing a lot of video/images (not just loading them, but doing something to them) or handling large datasets (for example, arrays of 1+MB constantly being fed through APIs to serve various users).

That said, I have never had a site -- even sites with 500 active concurrent users logged in -- need more performance than Heroku Basic provides. I had a health emergency that knocked me out for almost a year and my Heroku-based sites just kept working the entire time -- when I finally got back to them, they weren't needing a year of hotfixes and updates, either. I just got to pick up where I left off, it was well worth the cost to me. Cheap vs. sleep is how I see it.

That said, once you get a grip of how Heroku works, you could venture out to a host where you do more of the config and updates yourself if you see the advantage of doing so.

When your site is seeing high-hundreds/thousands of daily users, you may need to spin up a microservice API to help handle a certain blocking/intensive server action on your site. Rather than upgrade to a tier without a fixed pricing cap, you can sublet out some functions to a second fixed-price $7 server.

1 Like

Thanks @Apple as for structure I've simply followed @Hyperbytes video tutorials, so if my tables are not up to scratch, I will shamelessly blame him haha.

But in short, there's nothing too crazy going on at all, a pretty standard relational set up I would think. I'm using a few subtables for a couple of things and about 10 tables in total. I think I'm more wondering how the migration or syncing if you like actually works. When for example using Heroku, when I deploy is the db schema automatically synced with my production db? Or do I do some type of export sql dump and I then manually upload that to Heroku/OrangeHost somehow?

Do I need to install and set up docker for any of this? Am I supposed to use GitHub and somehow connect that? Have all this been made redundant due to functions in Wappler? Am I supposed to use the database manager and that will sync my schema and/or let me interact with development as well as production data?

It's all very confusing to me at this point, and searching the forum, most threads are 4-5 years old and all have various suggestions or solutions but it's hard to tell if those are still valid today.

I'm immensely grateful to anyone who have replied in this thread! I would be even more lost without the community here.

I stumbled on a video from the ever amazing @Hyperbytes where from the look of it, you simply switch to your production target, navigate to db manager, select changes and hit apply changes and that will sync the db schema to your production target, is that perhaps what you were referring to @Apple ?

At least it looks like that's how it should all work out. Unfortunately I haven't been able to test this. I set up a Heroku account, created an app... and then found this older documentation page;

https://docs.wappler.io/t/deploying-your-web-sites-apps-to-heroku/21421

Now that seems to assume that you are creating a new project? Since I have already created my project and almost finalised the app, what do I do? I can't find any information or options on how to do this post project creation.

I tried creating a Production target with the Heroku dropdown. I then clicked the log in to Heroku at the bottom in Wappler (next to publish). But was greeted with

zsh:1: command not found: heroku
Error Logging out!

Assuming this has something to do with not having set up Heroku as Hosting type?

People out there on the interwebz who says "Wappler is difficult boohoo" have no idea what they're talking about. Developing in Wappler has been easier than any other solution I've used in the past, but deploying has so far been an absolute pain haha. :sweat_smile:

Yes :slight_smile:

I gave my suggestion of shared hosting, that's the easiest you're going to get. You might as well try it now :laughing:

Edit:

No/maybe, just another Wappler "bug"

Yep, it doesn't get easier than that. I have tried to learn the cloud hosting way of doing things but have never been successful. The tried and true FTP (Publish) way of doing it never fails. Maybe I'm just old. :wink:

1 Like

Never used heroku hosting but is that not docker based?
If so, the setup etc is totally different.

haha wait.. isn't that what Heroku is? Shared hosting. I've given up on any illusions of setting up a DO droplet or any other type of fancy hosting solution. If I can ask, where are you hosting your project/s?

@Hyperbytes good question. I have no idea how any of this works (as is embarrassingly obvious to everyone at this point :smile:) But with the pre-configuration drop-down type usage of Heroku, this seemed to be the closest you get to a one-click-deploy solution for Wappler.

Looking at that doc page, there is no mention of having to install docker separately. Simply plonk in your Heroku app name, hit create project and you're off to the races. Unfortunately, I've already created my project...sooo.. queue sad music.