Ernest Iliiasov

Some works

Most of these works were done by me single-handedly. More or less in chronological order. (Early 2019)

A list of Vue.js libraries and plugins based on the Awesome-Vue repo. Personal project. Vue.js, Node.js, MongoDB.

AnnouncementBar (Early 2019)

Interactive announcements as easy as placing a Google Analytics tag. Personal project. Vue.js, Nuxt, MongoDB, Firebase, FastSpring.

On-campus Work Projects (2017-2018)

During employment at Georgian College Research Center.

  • Agema Mobile. Hybrid iOS/Android Ionic app.
  • iOS/Android React Native app with Node.js/MongoDB backend.

Personal Website (2017-2018)

React + PHP.

College Projects (2016-2018)

Works for my school courses.

Personal projects (2016-2018)

Incare UI (Late 2015)

My first UI work (design and HTML&CSS&JS coding). There is a lot of HTML files, please download the source code and explore :-)

Behance (2013-2015)

My early design works.

 No comments    122   3 mon  

Docker, one VPS and many domains

Like many software developers, I work on personal projects from time to time. To host them I use a VPS, and setting it up manually can be tricky. At first, I used the Vesta Control Panel for hosting my PHP and MySQL sites. Several years ago I switched from PHP/MySQL to Node JS/MongoDB, and now I had to configure my VPS manually. Although it’s pretty straightforward, it does take time and it’s not fun to troubleshoot when something goes wrong.

At some point, I realized that maintaining my server became too tedious: I had to take care of software updates, deployments, backups, and writing nginx configurations every time I had to host a new site.

Using Docker to host multiple projects on one VPS

Now let’s try to start from scratch and use Docker to host multiple projects on a single VPS. Why Docker? These factors mattered most for me:

  1. Every docker application contains its own environment and runs isolated.
  2. You can spin up your VPS from a single docker-compose.yml (and backed up data volumes).
  3. It separates code from data by using volumes.
  4. nginx-proxy makes it super easy to host multiple projects.

Here’s the list of services, software and Docker images that I used:

  • GitLab for hosting docker-compose.yaml.
  • Backblaze B2 for backups – it’s free for up to 10GB.
  • LogDNA for log monitoring.
  • Ubuntu – host OS.
  • Docker and Docker Compose.
  • jwilder/nginx-proxy – automatic nginx reverse proxy.
  • jrcs/letsencrypt-nginx-proxy-companion – takes care of HTTPS. No configuration needed.
  • php-apache and mariadb for PHP projects (like this blog).
  • node-alpine and mongo for Node JS projects.
  • nginx:alpine for static sites.

Setting up Docker host

Install the operating system of your choice, and do some primary setup. Configure firewall, set a custom SSH port, create a sudo user, and install Docker.

Writing docker-compose.yml

This is a docker-compose file that will get you started with nginx-proxy and letsencrypt.

 No comments    116   3 mon