After perservering with Docker for several months now , I've decided to ditch it for an alternative. When it runs it is great, deployment is so easy, but getting it to start is another matter. Some days it will start almost instantly, other days it can take up to an hour and longer.
I've tried various solutions
I feel I've lost so many development hours because of the wait just to get Dokcer Desktop started. I'm very familiar with PHP and installing and deploying on shared servers, but I'm developing a node JS app with MySql (Maria) Db. I'm using Digital Ocean as the host . So, what are my alternatives for both a local host setup on my Laptop and deploying to Digital Ocean. I'm not committed to using Digital Ocean I am open to other hosting providers.
What is everyone else using, any good suggestions ?
I'm the same with Brian, it's FTP all the way for me. I see Docker as another layer of complexity and unnecessary in most of my own usage cases.
I develop locally using Wapplers excellent local server in NodeJS mainly (I also use Classic ASP, a tiny bit of .NET and a little PHP)
I then publish daily via FTP directly to our dedicated server, bombproof as Brian states. I tend to skip using a local database and use the dedicated server (MariaDB or MySQL) again, I find this makes deployment more simple as there are less issues with DB incompatibilities etc.
Good point to remember, well made Tom.
Sqlite has limitations such as not supporting right joins. If you are happy to install mysql or maria on your dev machine that is a rock solid solution and of course free.
I tend to use Railway.app to show my client the progress that I am making. This is a very cheap solution and even accommodates SQLite. Railway grabs the site from Github, analyses and dockerises it. No FTP, just save to Github and a couple of minutes later, the site is live. Save revamps to Github and the process is completely automated.
Have you tried deploying on Heroku? It is a managed web/app server and database, so you publish your files to a server that is already configured and monitored, backed up, etc. They are built directly in to Wappler, but I use git to publish rather than the built-in deployment tools, as publishing via git on Heroku lets me have more than 1 staging server very easily if I'm demoing or testing various options for a client.
Managed servers like Heroku cost more. In USD, I think right now the cheapest you can use Heroku is about $16/month (Basic dyno for hosting, Basic Postgres managed DB). If you can swing it, I recommend an extra ~$7 development database with Heroku rather than local DB for development.
If you have more than one DB, it can be better to go for a $50 DB cluster that lets you create dozens of DBs without paying individually.
I was planning to move off Heroku and onto another provider, but every other server I've used ends up needing config tweaks, runs into issues of some kind and crashes, etc. If Heroku has those issues, I haven't ran into them.
How I publish to Heroku:
Commit to git from within Wappler
Login to Heroku in browser
Click button for Heroku to pull latest version from git and reboot
About 30 seconds later, new site is running with almost no disruptions
Heroku can be expensive. I don't use them for persistent storage. I don't use any of their marketplace apps (like npm plugins). But the value (and sleep) I get from having a managed server lets me take care of more clients than if I was doing everything in cpanel.