Docker で Yourls を立てる2
Docker で Yourls を立てる方法について書いた。
あのときはプラグインディレクトリーがマウントできなかったり、設定の変更のためにコンテナの中に入ったりする必要があった。この方法だとコンテナを消すとプラグインや設定も一緒に消えてしまう。
これを解決することができたので、改めてその方法をまとめる。
今回は Cloudflare Tunnel を利用してドメインを設定および https 接続にしている。
(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 を使えるように設定できる。
この記事が気に入ったらサポートをしてみませんか?