4
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?

ngrokを使ってみよう

4
Posted at

はじめに

42Tokyoの課題の一つに、webサーバ立ててオンライン対戦ゲームをするといったものがあります。しかし、PC1台だとブラウザのタブを切り替えながら交互に操作することになり、少し不便な上同時に操作しているか怪しい部分があります。

この問題を解決するため、ngrok(エングロック)を用いてローカル環境のサーバをweb上に公開し、他PCからも接続できるようにしてみます。もちろん、42Tokyoの校舎PCで使えて無料です。

使い方

ngrokのアカウントを流れに沿って作ります。

dashboardからAuthtokenをコピー。

docker-compose.ymlのservicesにngrokを追加します。

docker-compose.yml
version: '3.8'

services:
  app:
    container_name: web
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
    command: pnpm dev
  ngrok:
    container_name: ngrok
    image: ngrok/ngrok:latest
    environment:
      - NGROK_AUTHTOKEN=${NGROK_AUTH_TOKEN}
    restart: unless-stopped
    command:
      - "start"
      - "--all"
      - "--config"
      - "/etc/ngrok.yml"
    volumes:
      - ./ngrok.yml:/etc/ngrok.yml
    ports:
      - "4040:4040"
    depends_on:
      - app
ngrok.yml
version: "2"
web_addr: localhost:4040

tunnels:
  web:
    addr: web:3000
    proto: http
.env
NGROK_AUTH_TOKEN=<your-authtoken>

docker-compose upで起動、dashboardのドメイン(.ngrok-free.dev)にアクセス

ちなみに、ngrokの無料プランでも静的ドメインがもらえるので、42APIを登録する際はこのドメインを入力しましょう。

スクリーンショット 2025-12-05 12.18.12.png

おわりに

42Tokyoではsudoが使えないため、今回はdocker-composeを用いてngrokを実行してみました。同じ課題を抱える42内外の方の助けになれば幸いです。

4
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
4
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?