Report this

What is the reason for this report?

Soliciting Advice on First DO Alpha Deployment of VueJS Full Stack Web App

Posted on March 22, 2021

I have a VueJS app that is running on my dev system, and in prep for alpha release I am starting to look at the best approach for implementing a login/user account system. I have not implemented this part of a web app personally before.

For the alpha, I will deploy to DO and expand access to a small set of alpha users (10 or so), with a process for regular updating of the app for fixing bugs and adding features. It is a pretty standard VueJS full stack web app:

  • Vue 2
  • Express / Axios API
  • MariaDB database

I have a DO Droplet configured with 1 GB Memory / 25 GB Disk / SFO2 - Ubuntu 20.04 (LTS) x64. I have a domain name configured. I have deployed my app there before for learning the ropes and testing, but that was fumbling around with a prototype and up until now I have just been building and testing on my dev system. I am intrigued with Docker but am not sure if that is what I should be using at this early stage.

I’d like to start anew in terms of incorporating a good approach and install the stack with an eye to:

  • The app is primarily a data reporting/analytics application.
  • The data makes its way into the system through a combination of user data entry and direct pushing through the API from remote devices, which collect it from meters and sensors.
  • in the future some mashup will be done, collecting data from online web services.
  • User login/authentication subsystem is not currently implemented, but the web app will be expanded before alpha starts to have that (the foundations for separation of data between users is partially laid).
  • I also want to install SSL before alpha commences.
  • During the alpha phase, I will be building an administrative app and that will be deployed for beta.

With the above in mind, I would appreciate advice or links to appropriate approaches/methodologies/tools for taking these next critical steps.

I am impressed with DO and that is a decision already made, but other questions would be:

  • Should I start out with containerizing via Docker?
  • Is there any reason I shouldn’t incorporate SSL for this first deployment?
  • Can I just use a single Droplet for both MariaDB and the VueJS app? or should I use a separate Droplet for MariaDB?
  • For pushing to cloud from devices, can the back end run effectively on the VueJS droplet or (in the case that a separate MariaDB droplet is recommended) the database server?
  • What other tools and techniques should I be aware of?

I’ve been developing the app for about a year, but don’t have a lot of experience with deploying to the web (I’ve mostly done corporate apps).

Thanks much for any pointers! Stephen



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

I know it’s been quite a while since the question was originally posted, but I would like to post an answer in case someone runs into it now in 2023.

Here are some thoughts and recommendations:

Containerization with Docker

I agree that containerization is a good choice for your application, even at this early stage. Docker makes it easy to package and deploy your application and its dependencies in a consistent and reproducible way. You can create separate containers for your Vue.js front-end and your Express/Axios API, which will make your application easier to manage and scale in the future.

SSL for Deployment

Yes, you should definitely use SSL for your deployment. SSL encrypts all data transmission between your users and your application, which is essential for protecting their privacy and security. You can obtain an SSL certificate from a certificate authority or use Let’s Encrypt, which provides free SSL certificates.

Database Server

Whether to use a single Droplet for both MariaDB and your Vue.js app or separate them depends on a few factors, including:

  • The amount of database activity your app has. If your app has low to moderate database activity and you’re not expecting high loads during the alpha phase, you can start with a single Droplet.
  • The level of control and separation you want between your application and database. If you expect your database to grow or if you want more control over your database setup, you can consider using separate Droplets. This can also be advantageous for scaling in the future.

Pushing Data from Remote Devices

If you’re dealing with data being pushed from remote devices to your server, it’s a good practice to keep this functionality on your back-end server (Express/Axios API). This ensures that the data goes through your application logic and is properly processed and stored in your database.

Tools and Techniques

Here are a few tools and techniques you may want to consider:

  • Nginx or Apache: These web servers can be used as reverse proxies to handle SSL termination and serve your Vue.js app. They also offer load balancing and caching capabilities.
  • Node.js process manager: Tools like PM2 can help manage your Express API, ensuring it’s always running.
  • Data backup: Implement regular backups of your database. DigitalOcean provides snapshots for Droplets, but you might also consider database-specific backup solutions.
  • Monitoring and logging: Tools like Prometheus and Grafana for monitoring and centralized logging solutions can help you track the performance and troubleshoot issues with your application.
  • CD/CI: Consider setting up Continuous Integration and Continuous Deployment pipelines to automate testing and deployment processes.

Getting Started

As you’re new to deploying web applications, I recommend breaking down these tasks into smaller steps and learning one thing at a time. Start with containerization, get your Vue.js app and API running, and gradually move on to SSL, database setup, and so on. DigitalOcean has a wealth of tutorials and documentation to help you at each step of your deployment journey.

Testing and Launch

Once you have your deployment setup in place, be sure to thoroughly test it before launching the alpha version. This will help you identify and resolve any potential issues before your users start using the application.

Hope that this helps!

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.