Docker で Yourls を立てる2

Docker で Yourls を立てる方法について書いた。

あのときはプラグインディレクトリーがマウントできなかったり、設定の変更のためにコンテナの中に入ったりする必要があった。この方法だとコンテナを消すとプラグインや設定も一緒に消えてしまう。

これを解決することができたので、改めてその方法をまとめる。

今回は Cloudflare Tunnel を利用してドメインを設定および https 接続にしている。

環境:
・macOS Ventura 13.5(英語環境)
・VMware Fusion 12.0.0
・Ubuntu Server 22.04.3 LTS

(1)Raspberry Pi 等に Cloudflare Tunnel を立てる。

Cloudflare Tunnel は Yourls と同じマシンにインストールしてもいいが、僕は Cloudflare Tunnel 用の Raspberry Pi を作っているのでそれを利用した。

(2)Cloudflare で設定するドメインが https://yourls.example.com だとして、以下の設定でドメインを向ける。

・Public hostname: yourls.example.com
・Service: HTTP://{ Ubuntu の IP アドレス}:8080

(3)Ubuntu に Docker および docker-compose をインストールしておく。

(4)yourls ディレクトリを作成し、移動。

$ mkdir yourls && cd yourls

(5)docker-compose.yml というファイルを以下の内容で作成。

services:
  yourls:
    image: yourls
    restart: unless-stopped
    ports:
      - 8080:80
    environment:
      YOURLS_DB_PASS: {DBpassword}
      YOURLS_SITE: https://yourls.example.com
      YOURLS_USER: {yourls-user}
      YOURLS_PASS: {yourls-password}
    volumes:
      - ./data:/var/www/html/user
  mysql:
    image: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: {DBpassword}
      MYSQL_DATABASE: yourls

YOURLS_DB_PASS と MYSQL_ROOT_PASSWORD は同じものにする。

(6)以下のコマンドでコンテナを起動。

$ sudo docker-compose up -d

Yourls が起動し、data というディレクトリが作成され、設定ファイルが格納される。

https://yourls.example.com/admin/ にアクセスし、Yourls のインストールを完了する。5で設定したユーザー名とパスワードでログインする。

(7)URL でアルファベットの大文字を使うため、data ディレクトリに行く。

$ cd data

config.php を編集し、URL shortening method を 36 から 62 に変更する。

すぐ反映されて、アルファベットの大文字が使えるようになった。

(8)プラグインの追加にはさらに plugins ディレクトリに行く。

$ cd plugins

Timezones というプラグインを追加してみよう。

$ sudo git clone https://github.com/YOURLS/timezones

Yourls の管理画面でプラグインページに行くと Timezones が追加されているので有効化する。これで日本時間で Yourls を使えるように設定できる。


この記事が気に入ったらサポートをしてみませんか?