[Docker] 無料SEOツール・SerposcopeをDockerでさくっと立ち上げる

サーバーさえあれば、完全フリーで使える無料SEOツール・Serposcope。GRCの代わりに使っているという方も多いのではないでしょうか。今回は、SerposcopeをDockerでさくっと立ち上げてみます。

Serposcopeって何?

高性能な検索順位チェッカーです。サーバーにインストールするタイプのフリーウェアで、うまく使えば100キーワードほどの順位チェックを自動でやってくれます。チェックキーワード数が多いとGoogleのCaptchaが走ってしまうので、個人的な経験では100ワードくらいが限界です。

管理画面はこんな感じです。

Serposcopeのホーム画面

全部英語ですが、いじっていればなんとなく使い方がわかります。

今回は、このSerposcopeをDockerを使ってインストールします。

下準備

まずは、下準備をしていきます。

基本的には、Serposcopeの公式Githubレポジトリの通りですが、個人的にdockerコンテナはdocker-composeで管理したい派なので、docker-composeを使用します。

必要ファイルをコピーする

まずは、作業ディレクトリ(ここではserposcope)に、Serposcopeの公式Githubレポジトリから必要ファイルをコピーしてきます。git cloneで持ってくるなり、コピペでファイルを作成するなりします。

一点、entrypoint.shに実行権限を与えるのを忘れないようにします。

chmod +x entrypoint.sh

この時点でのディレクトリ構成は、下記のようになります。

serposcope
└── Dockerfile
└── entrypoint.sh
└── serposcope

docker-compose.ymlを用意する

次に、docker-copomseコマンドで一気にイメージビルドからコンテナアップまでしたいので、docker-copomse.ymlを用意します。

以下の例は、ホストの7134ポートで公開する場合です。

version: '2'
 
services: 
  serposcope:
    build: .
    volumes:
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "7134:7134"
    restart: always

ちなみに、nginx-proxyでLet’s EncryptのSSL証明書を発行・管理している場合は、下記のようになります。
(nginx-proxyコンテナとは「common_link」という共通ネットワークでつないでいます。具体例はこちらの記事をどうぞ。)

version: '2'
 
services: 
  serposcope:
    build: .
    environment:
      VIRTUAL_HOST: seo.hogehoge.com
      VIRTUAL_PORT: 7134
      LETSENCRYPT_HOST: seo.hogehoge.com
      LETSENCRYPT_EMAIL: admin@mail.hogehoge.com
      LETSENCRYPT_TEST: "false"
    volumes:
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "7134"
    restart: always
    networks:
      - common_link
 
networks:
  common_link:
    external: true

最終的には、下記のようなファイル構成になります。

serposcope
└── Dockerfile
└── docker-compose.yml
└── entrypoint.sh
└── serposcope

いざ起動!

下準備が終わったのでいよいよ起動します。と言っても、docker-composeコマンドを実行するだけです。

docker-compose upで一気に立ち上げる

docker-compose up -d

docker-compose buildでイメージを先に作ることが多いようですが、いきなり「docker-compose up -d」してもきちんとビルドしてくれました。

あとは、docker psでコンテナが立ち上がっているか確認します。

docker ps

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
307893ce4650        serposcope_serposcope                    "/entrypoint.sh"         9 seconds ago       Up 8 seconds        0.0.0.0:32798->7134/tcp                    serposcope_serposcope_1

立ち上がっていますね。

ホーム画面がでてくれば成功

さて、あとはきちんと動いているかを確認します。

サーバーのIPアドレス(ローカル環境ならlocalhost)か、nginx-proxyを使っているならdocker-compose.ymlで指定したアドレスにブラウザでアクセスして、下記のようなホーム画面が出てくれば成功です。

Serposcopeのログイン画面


DockerでSerposcopeがさくっと立ち上げられました。

Serposcopeは一つのサーバーからだと、完全自動で取れるのは100キーワードくらいが限界っぽいので、それぞれのドメインでSerposcopeをDockerで立ち上げてしまえば、サーバー台数分だけSerposcopeを持てるので、管理が楽になりそうです。