Any opinions on what are the best software choices for a single person to use in 2019 to build a website from scratch? I’d be willing to learn something new if I knew in 2 years, I’d be extremely productive.
1) Install docker and docker-compose
2) Setup traefik, a reverse proxy, in docker (good starting point: https://docs.traefik.io/user-guide/docker-and-lets-encrypt/ ).
3) Run $docker container (ghost, wordpress...). I typically use one docker-compose file for each domain. "expose" is not necessary because the requests are proxied by traefik.
Here's a docker-compose sample for a website available under my-website.com:
version: '3'
services:
web:
container_name: my-website.com-nginx
image: nginx
restart: unless-stopped
volumes:
- ./data:/usr/share/nginx/html
labels:
- "traefik.docker.network=web"
- "traefik.enable=true"
- "traefik.basic.frontend.rule=Host:my-website.com"
- "traefik.basic.port=80"
- "traefik.basic.protocol=http"
networks:
default:
external:
name: web
There are probably more elegant ways to do this, however I found it quite effective for my setup.