こんにちわ!
3D・映像編集者 & ブロガーのデリュージョン飯塚と申します!
今回は!
n8nのセルフホスト版で、
タイムゾーンを日本時間に変える方法を解説します!
- n8nのセルフホスト版を使い始めたばかりの方
- ワークフローの実行時間が日本時間とズレていて困っている方
- Hostingerでn8nを動かしている方
- ターミナル操作に不安がある方でも順番に手順を追いたい方
この記事を読めば、
n8nセルフホスト版のタイムゾーンを日本時間(Asia/Tokyo)に切り替える手順が一通りわかります。
私はHostingerでn8nのセルフホスト版を動かしていて、
業務の自動化ワークフローを組んでいます。
初期設定だとタイムゾーンが海外時間になっていて、
スケジュール実行が思った時間に動かないという落とし穴がありました。
それではいきましょう!
目次
n8nのセルフホスト版でタイムゾーンを変える方法
方法1:ワークフロー毎に変更する
まずは一番手軽な方法から。
ワークフロー単位でタイムゾーンを設定するやり方です。

ワークフローの作成画面の右上にある「...」から、
「Settings」をクリックします。

するとワークフローの設定画面が開きます。
ここに「Timezone」という項目があるので、
そこから好きなタイムゾーンを選べばOKです。
ただこの方法はワークフローごとに毎回設定する必要があるのがネック。
ワークフローが増えるたびに同じ設定を繰り返すのは地味に面倒なので、
できれば次に紹介するサーバー側でデフォルトを変える方法をおすすめします。

1〜2個しかワークフローを使わない方なら、
この方法でも全然問題ないと思います。
方法2:サーバー側でデフォルトを変更する【Hostinger】
続いて、
サーバー側でデフォルトのタイムゾーンを変更する方法を解説します。
私がHostingerでn8nを動かしているので、
Hostingerユーザー向けの解説になりますがご了承ください。
この方法でデフォルトを変えておけば、
今後ワークフロー毎に設定する必要がなくなるのでかなり楽です。
他のサイトでもやり方は載っているのですが、
ここでは「結局のところ何をしているのか?」というところを解説しながら進めていきますね。

意味がわからないまま手順だけ追うと、
不安まんさいですからね。
まず何をすればいいのかという結論から言うと、
Hostingerサーバー内にあるタイムゾーン設定を書き換える、
これだけです。

サーバーの中には「設定ファイル」というものがあって、
そこに色んな設定項目が並んでいます。
その中のタイムゾーン設定を変えてあげればOK、
というイメージですね。
では、その「設定ファイル」は何かというと、
docker-compose.ymlというファイルです。
そして、このdocker-compose.ymlの中身を書き換えるには、
ターミナルを使う必要があります。

ということで、
まずはターミナルを起動していきましょう。

まずはHostingerの管理画面(https://hpanel.hostinger.com/)にアクセス。
左メニューの「VPS」を開いて、
n8nが動いているVPSの「管理」をクリックします。

VPSの概要画面に入ったら、
右上の「ターミナル」をクリックすればOKです。

すると、新しいウインドウが立ち上がってターミナルに接続されます。
何やら色んな文字が出てきますが、
焦らなくて大丈夫です。

find / -name "docker-compose.yml" 2>/dev/null
まずはこちらのコマンドを入力して、
Enterを押してください。
これはdocker-compose.ymlがサーバー内のどこにあるかを探すコマンドです。
完了までちょっと時間がかかると思うので、
少し待ちましょう。

実行するとおそらく、
/docker/n8n/docker-compose.yml
と表示されたかと思います。

つまり、
dockerというフォルダの中の、
n8nというフォルダの中にdocker-compose.ymlが入っているということがわかりました。
そして今やりたいのは、
このdocker-compose.ymlをいじることでしたよね。
なのでターミナル上でまず、
自分自身がそのフォルダへ移動する必要があります。

「カレントディレクトリ」とも呼ばれる概念ですね。

cd /docker/n8n
ということで、
上記のコマンドを実行して、
/docker/n8nの場所へ移動しましょう。
cdというのは
「指定したフォルダに移動する」
という意味のコマンドですね。

実行できたら移動は完了です。
表示がroot@◯◯◯◯ /docker/n8n# に変わっていますね。

イメージとしては、
docker-compose.ymlが入っているn8nフォルダに無事到着した、
という感じです。

cat docker-compose.yml
続いて、上記のコマンドを実行しましょう。
catは「指定したファイルの中身を表示する」コマンドです。
docker-compose.ymlの中にはタイムゾーン設定があるはずなので、
それがどんなふうに書かれているのかを確認しよう、
という意図ですね。

実行するとずらーっとたくさん文字が出てきて焦るかもしれませんが、
あくまで中身を表示しているだけなのでご安心を。
そしてenvironment:という項目の下に、
GENERIC_TIMEZONEという記述があるはずです。
これがタイムゾーンの設定です!
Hostingerのn8nではここでタイムゾーンが決まっていたというわけですね。
では、これがどんな設定になっているかというと、
GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
と書かれていますね。
この${GENERIC_TIMEZONE}は何かというと、
環境変数と呼ばれる「変数」です。
そしてこの${GENERIC_TIMEZONE}の中身を決めているファイルは、
また別で存在しているんですよね笑
...ということで結局のところ、
環境変数${GENERIC_TIMEZONE}を書き換える必要があるとわかりました。
では、その環境変数${GENERIC_TIMEZONE}はどこに記載されているのか?
それは.envというファイルです。

cat .env
ということで、上記のコマンドを実行しましょう。
catコマンドで.envの中身を確認していく感じですね。

実行すると.envの中身が表示されます。
赤枠の箇所を見てみると、
環境変数${GENERIC_TIMEZONE}の設定箇所を発見!
私の環境ではすでにタイムゾーンを変更しているので
GENERIC_TIMEZONE=Asia/Tokyo
になっていますが、
みなさんの環境では別のタイムゾーンになっているかもしれません。
とにかく、
ここをGENERIC_TIMEZONE=Asia/Tokyoにしてあげれば、
タイムゾーンを日本時間に変えられるというわけです。
では、どうやって.envファイルを書き換えるのか?
それはnanoというコマンドを使います。

nano .env
このコマンドを実行すると、
.envファイルを編集するためのエディタが立ち上がります。

これがnanoエディタの画面です。
まぁ普通のメモ帳のようなものと思っていただければ。
とりあえず
GENERIC_TIMEZONE=◯◯
の箇所までカーソルを移動させましょう。

マウスのクリックでは移動できないので、
キーボードの矢印キーで動かしてくださいね。
Asia/Tokyo
あとはバックスペースで現在のタイムゾーンを消して、
上記のAsia/Tokyoに書き換えてあげればOKです。
書き換えが終わったら、
続いてセーブコマンドを入力しましょう。

nanoの場合は、
画面下にコマンド一覧が表示されています。
セーブに当たるコマンドは「Write Out」なので、
^(Ctrl) + O(オー)を押せばOKです。

^(Ctrl) + O(オー)を入力すると、
画面下の表示がこんな感じに変わると思います。
ざっくり言うと、
「ファイル名はどうしますか?」
と聞かれている状態ですね。
ファイル名は特に変える必要はないので、
そのままEnterキーを押してください。

すると「Wrote 数字 lines」というメッセージが表示されるはずです(数字は保存したファイルの行数)。
「◯◯行のファイルを保存したよー」という意味ですね。
※私の環境では15行でした

書き換えと保存が完了したので、
^(Ctrl) + X(エックス)でエディタ画面から抜けましょう。

これで元のターミナル画面に戻れたかと思います。

cat .env
念のため、
ちゃんと書き換わっているかをcatコマンドで確認しておきましょう。

しっかり
GENERIC_TIMEZONE=Asia/Tokyo
になっていればOKです!
お疲れ様でした...と言いたいところですが、
実はファイルを書き換えただけでは、
まだ反映はされていないんですよね。
ということで最後に、
変更を「反映」させる作業をやっていきます。

反映の作業はとても簡単なのでご安心を!
具体的には、
n8nを一度停止させて、
もう一度起動し直す「再起動」のイメージですね。
docker compose down
こちらでn8nを停止して、
docker compose up -d
こちらでまた起動すればOK、という流れです。

docker compose down
てなわけで、
まずは上記のコマンドを実行しましょう。

Removedという単語が出てきて怖いかもしれませんが、
あくまで一時的に停止しているだけなのでご安心ください。
これで問題なしです。

docker compose up -d
続いて、上記のコマンドでn8nを起動し直しましょう。

これでOK!
無事にn8nが起動し直されました。

タイムゾーンが変わったかを確認するために、
n8nで適当なワークフローを開いて、
右上の「...」から「Settings」に進みましょう。

「Timezone」の項目が
Default - Asia/Tokyo
に変わっていれば、無事にタイムゾーンの変更が完了です!
長い作業、お疲れ様でした。
最後に、今回やったことを振り返っておきます。
- docker-compose.ymlという「設定ファイル」の場所(パス)を特定した
- パスが/docker/n8n/docker-compose.ymlだとわかった
- cd /docker/n8n でn8nフォルダに移動した
- cat docker-compose.yml で中身を確認し、
環境変数${GENERIC_TIMEZONE}を変える必要があるとわかった - 環境変数${GENERIC_TIMEZONE}は.envファイルにある
- cat .env で中身を確認し、タイムゾーンの設定箇所を発見
- nano .env で
GENERIC_TIMEZONE=Asia/Tokyo
に書き換えて保存 - docker compose down で停止し、
docker compose up -d で再起動して反映
こうして並べてみると、
結局のところやっていることはシンプルですよね。

一度やってしまえば、
他のサーバー設定をいじる時にも応用が効きますね。
まとめ

- ワークフロー単位ならSettingsのTimezoneから手軽に変更できる
- ターミナルからデフォルトのタイムゾーンも変えられる!
- → デフォルトを変えておけば今後は楽
いかがだったでしょうか。
今回はHostingerのn8nセルフホスト版で、
タイムゾーンを日本時間に変更する方法を解説しました。
最初は「ターミナルで作業」と聞くと身構えてしまいますが、
順番に追っていけば実はそこまで難しい作業ではありません。
スケジュール実行を本格的に使うなら、
最初にデフォルトのタイムゾーンを変えておくのがおすすめです。
ぜひ試してみてください。
n8nのセルフホスト版の始め方や、
アップデート方法については別記事で解説しているので、
あわせてチェックしてみてください。
それでは今回の記事は以上です。
デリュージョン飯塚でした。
※当サイトは、広告主から支払われる広告収入を主な収入源として運営を行っています。
※当サイトの記事では、商品・サービスの紹介に広告主のアフィリエイト広告を利用しています。
※記事で紹介した商品・サービスを購入すると、広告主から当サイトに報酬が支払われることがあります。
インターネット上の広告表示(消費者庁)
インターネット広告倫理綱領及び掲載基準ガイドライン
IzukaEffects 
