LoginSignup
0

posted at

updated at

[Unity]自作アセットをUPM(verdaccio)で認証付きで管理する(簡易ver) 前編

はじめに

前回書いた記事もverdaccioだったのですが分量がすさまじくなってしまい大変にわかりづらかったので
手順多めで今回はUnityで認証まで通したverdaccioの構築を新ためて書きます。
前編ではverdaccioにwebでアクセスできるまで、後編ではそこから追加で認証の設定をしていきます。
なので、全体に公開する前提のパッケージ群であれば前編のみで完結します。
後編 https://qiita.com/Yothuba3/items/6fa38d98e5b93ab19a75
docker-composeのインストールを済ませてから以下の手順を進めてください。

構築環境

  • Ubuntu 22.04.1 LTS(ConohaVPS)
  • Docker compose

説明しないもの

  • サーバ環境の準備
  • 各種使用ソフトウェアの解説

手順

docker-compose.yamlの作成

適当な場所にまずはルートフォルダを作成しましょう。
今回はqiitaフォルダとし、/home/user以下に作成しています。

mkdir qiita && cd qiita

qiitaフォルダ以下でdocker-compose.yamlを作成し、以下の内容を記述します。

services:
  https-portal:
    image: steveltn/https-portal
    container_name: "proxy-sample"
    ports:
      - 80:80
      - 443:443
    restart: always
    environment:
      CLIENT_MAX_BODY_SIZE: 100G
      DOMAINS: 'your.domain.com -> http://verdaccio-sample:4873'
      STAGE: production
    volumes:
      - ./http-portal-certs:/var/lib/https-portal

  verdaccio:
    image: verdaccio/verdaccio
    container_name: "verdaccio-sample"
    restart: always
    environment:
      - VERDACCIO_PORT=4873
    ports:
      - 4873:4873
    volumes:
      - "./verdaccio/storage:/verdaccio/storage"
      - "./verdaccio/config:/verdaccio/conf"
      - "./verdaccio/plugins:/verdaccio/plugins"

docker-compose.yamlの中身

  • https-portal
  • verdaccio
    の2つのコンテナを起動しています。

https-portal

リバースプロキシサーバの役割、およびSSLの証明書発行をやってくれる優れものです。
environmentブロックのDOMAINSで、your-domain -> コンテナ側のURL
と指定することでリバースプロキシが設定され、ドメインに対して自動でSSLも取得されます。
SSLの設定は本当に面倒くさいので筆者的にはまじで重宝しています。

verdaccio

verdaccioはUPMサーバの本体となります。Unity、自作UPMサーバと検索すると大体ヒットするのはこの
verdaccioだと思います。UPMサーバ、WebGUIを提供してくれるのでエンジニア以外も触りやすいです。

起動

一度docker-composeを起動し、構成ファイルを生成させます。
yamlファイルのあるディレクトリで以下を実行します。

docker compose up --build -d

生成に成功したらそのままダウンさせます。

docker compose down

以上の操作によって、verdaccioフォルダが作成され、配下にstorage, config, pugins
の3つが生成されます。このうちのconfigフォルダにverdaccio公式からconfigファイルのひな形をコピーします。
verdaccioはdocker利用時にconfigファイルのみは別途用意する必要があり、マニュアルにも記載されています。

必ずconfigファイルの名前をconfig.yamlとすること。verdaccioはデフォルトでconfig.yamlの名前で探しに行きます。

qiita/verdaccio/config/
vim config.yaml

以下の内容をconfig.yamlに記述します。
ひな形からコメントを削除したもので、追記したのは下から2,3行目のmax_body_size, listenブロックです。

storage: /verdaccio/storage/data

plugins: /verdaccio/plugins

web:
  title: Verdaccio
 
auth:
  htpasswd:
    file: /verdaccio/storage/htpasswd
    
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs

  '**':
    access: $all

    publish: $authenticated
    unpublish: $authenticated

    proxy: npmjs

server:
  keepAliveTimeout: 60

middlewares:
  audit:
    enabled: true

max_body_size: 10000mb

listen: http://proxy-sample:4873

logs: { type: stdout, format: pretty, level: http }

改めてcompose起動

ここまでの設定が終われば9割型終了しています。
以下のコマンドを実行しwebからアクセスできることを確認していきましょう。

docker compose up --build -d

起動を確認したら、ブラウザから自身が指定ドメインでアクセスしてみます。
image.png

無事アクセスできました!!
ここまでくればあとはverdaccioに関するほかの記事でpackageのプッシュ、unityでのプルはできると思います

もしも途中で詰まったら

人によっては502エラーなどで詰まる可能性もあると思います。その場合は焦らずに

docker compose up --build

などを実行して、dockerのログを確認してみるとエラーが確認できたりします。
記事中に使っていたのは-dオプションを付与したものでバックグラウンドで実行するためのものです。

firewallを確認する

記事では省きましたが、使用するosによっては80/443がブロックされている場合もあるので要チェックです。

使用するサーバ

筆者はconohaVPSを利用しています。awsなども勿論良いのですが初心者には設定項目が多いので、どうしても上手くいかない場合はVPSを変えることも検討しましょう。

後編へ続く

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
What you can do with signing up
0