What is your deployment stack and process?

Hi everybody,

Best wishes for 2021!

My team and I are trying to deploy our Wappler app on servers (staging + production), and we have faced a couple of issues, so it doesn’t seem that obvious for now. To ensure we’re going the “Wappler way”, i.e. keep things simple and maximise our chances to be compatible with future Wappler enhancements (like Redis recently added), I’d love to get your feedback on the stack and process you recommend to deploy.

  • What is your infra / stack to manage build and deployment?
  • What is the “Wappler way” / what are the best practices you would recommend to deploy an app?
  • Are you using the deployment embedded on Wappler, like AWS?
  • So you’re deploying from a workstation, not from a git repo?
  • Have you set a custom deployment pipeline instead (like github actions)?
  • How are you managing the environment variables, like local/staging/prod database credentials? Do you have them in git, all configured in Wappler targets?
  • How do you manage SSL? E.g. if I go for AWS, I’d like to have SSL without paying for the load balancer (which adds an extra $35+/month, just for SSL…)
  • Do you have other scripts or best practices to make our life easier about deployment?

I’ve recently adopted Wappler and I’m coming from the developer world, so I’m used to things like continuous integration (when the code is merged on a git branch, auto-build/deploy on a staging server, and same for production on another branch).

Our issues so far:

  • We haven’t found yet how to make the SSL work the Wappler way:
    • AWS does not manage SSL certificates out of the box (unless we take the load balancer, which is out of scope for now)
    • Traefik doesn’t work on our project, the deployment fails with no useful information in the IDE (we had to manually add it to the docker-compose file instead)
  • I’m a bit afraid of adding database credentials in git
  • We haven’t found good ways to enter database URLs as environment variables, so if we go the custom way, we’d have to make a “build” script that would patch the Wappler target configs, while ensuring it won’t commit those changes.

At the moment we deploy from Wappler IDE with some tweaks:

  • We added traefik to handle SSL manually from comments of this topic but we would prefer to let Wappler configure it for us (FileNotFoundError during traefik install)
  • When we clone the project we use a script that fill each targets json with the correct credentials from a secured location (non exhaustive list of templates, files in red are in gitignore):

Thanks a lot!