ITエンジニアのコツコツ日記

ITエンジニアの雑記です

Dockerでguacamoleを動かす(Let`s encrypt対応)

Guacamoleとは

f:id:itkotsukotsu:20201031224934p:plain

GuacamoleはApaccheが開発するWebベースのリモートアクセスアプリケーションだ。

サポートするプロトコルVNC, RDP, SSHHTML5をサポートするブラウザで動作する。

AndroidiPhoneからでもRDP経由でWindowsを動作させることができ、利便性が高い。

Dockerでguacamoleを動かす

docker-composeを用いて、guacamoleを動作させる。

データベースとしてpostgresを利用しており、この領域はvolumeでマウントする。

Guacamoleはテレワーク環境として使われることも想定され、独自ドメインでインターネット公開する用途もありそう。

Let's encryptでhttps化を対応したdocker-compose.ymlを下記にしめす。

let's encryptはhttps-portalコンテナで動作しており、nginxのリバースプロキシが動作している。

証明書の更新も自動で行ってくれるコンテナでメンテナンス不要だ。

version: "3"
services:

  postgres:
    image: postgres:13.0
    restart: unless-stopped
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: guacamole1234567890
      POSTGRES_USER: guacamole_user
    volumes:
      - ./pginit:/docker-entrypoint-initdb.d:z
      - ./pgdata:/var/lib/postgresql/data:z

  guacd:
    image: guacamole/guacd:1.2.0
    restart: unless-stopped

  guacamole:
    image: guacamole/guacamole:1.2.0
    restart: unless-stopped
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_DATABASE: guacamole_db
      POSTGRES_HOSTNAME: postgres
      POSTGRES_PASSWORD: guacamole1234567890
      POSTGRES_USER: guacamole_user
    depends_on:
      - postgres
      - guacd

  https-portal:
    image: steveltn/https-portal:1
    ports:
      - '80:80'
      - '443:443'
    links:
      - guacamole
    restart: always
    volumes:
      - ./nginx:/var/lib/https-portal:z
    environment:
      DOMAINS: '<独自ドメイン.com> -> http://guacamole:8080/guacamole/'
      STAGE: 'production'
      # FORCE_RENEW: 'true'