HTTPS namiesto HTTP - Docker a Vue.js

Programovacie jazyky, rady, poradňa...
maiikY
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 04 mar 2020, 18:05
Bydlisko: Nitra
Kontaktovať používateľa:

HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa maiikY »

Ahojte,

nedávno som dokončil aplikáciu, ktorá sa skladá z Vue.js, Node.js (Express.js server), Mariadb a všetko to beží vo vlastnom docker kontajneri. Aplikáciu som presunul na server klienta, kde bude bežať a podarilo sa mi ju spustiť aj s doménou, teda na webe je pod názvom doména.niečo.sk. Problém však je že potrebujem ešte urobiť to, aby bolo HTTPS a nie len HTTP. Skúšal som už nejaké veci, ale nie úspešne a neviem čo by som ešte mohol urobiť. Priznám sa, nie som celkom doma v tomto ale na druhej strane, aspoň sa naučím :D

Prikladám kód z mojho docker-compose.yml súboru. časť o databáze a api som odstránil aby toho nebolo tak veľa.

Kód: Vybrať všetko

version: "3"
volumes:
 dhparam: 
 vhostd: # configuration of hosts, written by nginx-gen, used by nginx-proxy
 html: # contains .well-known directory, written by letsencrypt, served by nginx-proxy

services:

  # letsencrypt pomocny kontajner
  nginx-proxy-companion:
    image: "jrcs/letsencrypt-nginx-proxy-companion:${NGINXPROXYLETSENCRYPTCOMPANION_TAG}"
    restart: unless-stopped
    volumes:
    - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
    - vhostd:/etc/nginx/vhost.d
    - html:/usr/share/nginx/html
    - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs
    - ${DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock:ro
    depends_on:
    - nginx-proxy
    environment:
    - "DEFAULT_EMAIL=${ADMIN_EMAIL}"
    - "NGINX_DOCKER_GEN_CONTAINER=${DOCKER_GEN:-nginx-gen}"
    - "NGINX_PROXY_CONTAINER=${NGINX_WEB:-nginx-web}"
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"

  # generator konfigu pre vstupne reverzne proxy
  nginx-gen:
    image: "jwilder/docker-gen:${NGINXPROXY_DOCKERGEN_TAG}"
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: true
    command: -notify-sighup ${COMPOSE_PROJECT_NAME}_nginx-proxy_1 -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
    restart: unless-stopped
    volumes:
    - ${DOCKER_SOCK:-/var/run/docker.sock}:/tmp/docker.sock:ro
    - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
    - vhostd:/etc/nginx/vhost.d
    - html:/usr/share/nginx/html
    - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
    - ${NGINX_FILES_PATH:-./data}/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
    environment:
    - SSL_POLICY
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "10"

  # reverse proxy
  nginx-proxy:
    image: "nginx:${NGINX_TAG:-latest}"
    restart: unless-stopped
    ports:
    - "0.0.0.0:8080:80"
    - "0.0.0.0:443:443"
    depends_on:
    - nginx-gen
    volumes:
    - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d:ro
    - vhostd:/etc/nginx/vhost.d:ro
    - html:/usr/share/nginx/html:ro
    - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
    - ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
    links:
    - bozp-gui
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "10"

  # GUI kontajner (cez vstupne reverzne proxy)
  bozp-gui:
    build: ./bozp-gui
    image: bozp-gui:latest
    restart: unless-stopped
    links:
    - bozp-api
    depends_on:
    - bozp-api
    environment:
    - "LETSENCRYPT_HOST=${VIRTUAL_HOST}"
    - "VIRTUAL_HOST=${VIRTUAL_HOST}"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "10"
Folder structure na serveri je docker-compose.yml, .env a data folder v jednom priečinku.

Docker file pre Vue.js exposuje porty 80 a 443

Ďakujem
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa harrison314 »

O taketo veci by sa mali starat zakaznikovi admini, resp. DevOps team na FE loadbalanceri resp. firewalle.
ropman
Medium Professional
Medium Professional
Príspevky: 1250
Registrovaný: 12 apr 2010, 21:07

Re: HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa ropman »

Myslim ze v tomto pripade bude autor temy devops team :)
maiikY
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 04 mar 2020, 18:05
Bydlisko: Nitra
Kontaktovať používateľa:

Re: HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa maiikY »

Ja som vo firme ako programátor. Robím si komplet aplikácie, od Frontendu až po databázu, hrabem sa v predpotopnom php kóde ktorého držia pri živote už len bugy a snažím sa ho prerobiť na JavaScript. Absolútne som nikdy nerobil veci sko vyššie spomenuté a nemyslím si že to je moja povinnosť vzhľadom na aktuálnu profesiu, ale čo mám urobiť keď to mám ako úlohu? Bohužiaľ mi s tým nikto vo firme nepomôže tak som skúsil tu ako aj na iných fórach.
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa Spixy »

Prepisovanie predpotopného php na predpotopný express.js :D
Keď už používaš JS aj na backende, odporučil by som Nest.js :)
maiikY
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 04 mar 2020, 18:05
Bydlisko: Nitra
Kontaktovať používateľa:

Re: HTTPS namiesto HTTP - Docker a Vue.js

Príspevok od používateľa maiikY »

Nebola to moja voľba použiť express :( ďakujem za typ, pozriem si to :)

Môj problém som “vyriešil” tak že som to celé prerobil a aktuálne využívam traefik a už to funguje :)
Napísať odpoveď