0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

httpsを使ったCVAT( on AWS Lightsail )の立ち上げ ~自動アノテーションを添えて~

Posted at

やりたかったこと

CVATというアノテーションツールを、部署のみんなが使えるようにAWS上に公開したい。
しかし、普通にやるとhttp://EIP:8080 となってしまうので、https化(https://hogefuga.com) したい。
一方で、公開してもCVATの仕様上、create accountが誰でもできてしまう。
従って、https://hogefuga.com にアクセスしたらbasic認証を通すようにする。

前提

CVATの基本的なインストール方法より、http://EIP:8080 でアクセスできるまで。

手段

  1. aws Lightsailにてインスタンス起動
  2. staticIPを付与
  3. CVATをgit cloneし、docker compose up -d後、superuser作成(公式通り)
  4. "ドメインとDNS"よりドメインの登録とDNSゾーンを作成
  5. hogefuga.comをstaticIPに割り当てる
  6. DNSレコードに、Aレコードとしてhogefuga.comをstaticIPを登録する

https化準備

環境変数設定
ACME_EMAILはドメイン登録したときに使用したメアド

export CVAT_HOST=hogefuga.com
export ACME_EMAIL=hogefuga@gmail.com

自動アノテーション

まずversionを確認

cat components/serverless/docker-compose.serverless.yml 
docker-compose.serverless.yml
services:
  nuclio:
    container_name: nuclio
    image: quay.io/nuclio/dashboard:1.13.0-amd64

1.13.0と判明。

wget https://github.com/nuclio/nuclio/releases/download/1.13.0/nuctl-1.13.0-linux-amd64
sudo mv nuctl-1.13.0-linux-amd64 /usr/local/bin/nuctl
sudo chmod +x /usr/local/bin/nuctl

SAMのインストール

cd serverless && ./deploy_cpu.sh pytorch/facebookresearch/sam/nuclio

yoloのインストール

cd serverless && ./deploy_cpu.sh onnx/WongKinYiu/yolov7/nuclio

basic認証

hash生成

echo $(htpasswd -nb <yourID> <yourPW>) | sed -e s/\\$/\\$\\$/g

docker-compose.https.ymlの編集(to add basic auth部分)

docker-compose.https.yml
# Copyright (C) 2018-2022 Intel Corporation
#
# SPDX-License-Identifier: MIT

services:
  cvat_server:
    labels:
      - traefik.http.routers.cvat.entrypoints=websecure
      - traefik.http.routers.cvat.tls.certresolver=lets-encrypt

  cvat_ui:
    labels:
      - traefik.http.routers.cvat-ui.entrypoints=websecure
      - traefik.http.routers.cvat-ui.tls.certresolver=lets-encrypt
    # to add basic auth
      - traefik.http.middlewares.cvat-ui-auth.basicauth.users=<yourID>:$$apr1$$<hash>
      - traefik.http.routers.cvat-ui.middlewares=cvat-ui-auth

  traefik:
    image: traefik:v2.9
    container_name: traefik
    environment:
      TRAEFIK_ENTRYPOINTS_web_ADDRESS: :80
      TRAEFIK_ENTRYPOINTS_web_HTTP_REDIRECTIONS_ENTRYPOINT_TO: websecure
      TRAEFIK_ENTRYPOINTS_web_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME: https
      TRAEFIK_ENTRYPOINTS_websecure_ADDRESS: :443
      TRAEFIK_CERTIFICATESRESOLVERS_lets-encrypt_ACME_EMAIL: "${ACME_EMAIL:?Please set the ACME_EMAIL env variable}"
      TRAEFIK_CERTIFICATESRESOLVERS_lets-encrypt_ACME_TLSCHALLENGE: "true"
      TRAEFIK_CERTIFICATESRESOLVERS_lets-encrypt_ACME_STORAGE: /letsencrypt/acme.json
    ports:
      - 80:80
      - 443:443
    volumes:
      - cvat_letsencrypt:/letsencrypt

起動

docker compose -f docker-compose.yml -f docker-compose.https.yml  -f components/serverless/docker-compose.serverless.yml up -d
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?