インストール手順
v1.0.0以上GeckoFlagはご自身のサーバーにインストールしていただく、セルフホスト型のソフトウェアです。専用のインストーラー画面に沿って進めることで、どなたでも簡単にセットアップいただけます。
インストール前の準備
- 動作環境を満たしているかご確認ください。Composerは必須ではありません。配布パッケージには依存ライブラリ(vendorフォルダ)が同梱されているため、Composerを実行できない環境でもそのままインストール可能です。
- データベースの接続情報をご準備ください(新しいデータベース、または既存の空のデータベース)。他のアプリケーションと同じデータベースを共用することはお勧めしません。
- HTTPSは必須ではありませんが、ログイン情報や個人情報を扱うため、HTTPS環境でのご利用を強く推奨します。
- ファイルをアップロードしたら、すぐにインストールを完了してください。インストールが終わるまでは、URLを知っている人なら誰でもインストーラーを開けます。
- Nginxをお使いの場合は、事前に下の「Nginxをお使いの場合」の設定を行ってください。
インストール手順
- 1GeckoFlagのファイルをFTP/SFTPまたはご利用のホスティングの管理画面から、サーバーにアップロードし、展開します。

- 2ブラウザでインストーラーを開きます。PHPバージョンや必要な拡張機能、フォルダの書き込み権限など、サーバー環境が自動でチェックされ、チェックリストが表示されます。

- 3データベース接続情報(ホスト・ポート・データベース名・ユーザー名・パスワード)を入力し、次へ進みます。

- 4実行するボタンをクリックしてデータベースを初期化します。GeckoFlagに必要なテーブルが作成されます。

- 5名前・メールアドレス・パスワードを入力して管理者アカウントを作成します。

- 6ライセンスキーを入力して認証します。

- 7ライセンスが認証されたら準備完了です。作成した管理者アカウントでログインし、プロジェクトの設定を始めます。

ホスティングに関する注意事項
GeckoFlagは多くの一般的なレンタルサーバーで動作確認しております。ただし、ホストによってはPHPのupload_max_filesizeなどの設定により、アップロード機能に制限がかかる場合があります。
Nginxをお使いの場合
Apacheでは、GeckoFlagに同梱の .htaccess によって、設定ファイルやログなどへの直接アクセスが自動で拒否されます。Nginxでは .htaccess が使われないため、サーバーの設定に次の内容を追加してください。追加しないと、設定ファイルやアップロードしたファイルが外部から見える場合があります。
NginxとApacheを組み合わせたレンタルサーバー(Nginxが受け付けたアクセスをApacheが処理する構成)では、.htaccess が有効なため、この設定は不要です。.htaccess が使えるかどうかは、ご利用のサーバー会社のマニュアルでご確認ください。
- 公開フォルダー(ドキュメントルート)は、GeckoFlagのフォルダーではなく、その中の
webrootフォルダーにしてください。 server_name(ドメイン)、root(GeckoFlagを置いた場所)、fastcgi_pass(PHP-FPMの接続先)は、お使いの環境に合わせて書き換えてください。- HTTPSの設定(
listen 443 sslと証明書の指定)は、お使いの環境の設定方法に従って追加してください。
server {
listen 80;
server_name pm.example.com;
# 公開フォルダー(ドキュメントルート)は GeckoFlag の webroot フォルダー
root /var/www/geckoflag/webroot;
index index.php;
# フォルダーの中身の一覧を表示しない
autoindex off;
# アップデート・バックアップの ZIP をアップロードできるように
# (Nginx の初期値は 1MB)。PHP の upload_max_filesize と
# post_max_size も同じ以上にしてください
client_max_body_size 100m;
# 隠しファイル(.htaccess、.git など)は配信しない
location ~ /\.(?!well-known/) {
deny all;
}
# アップロードされた画像のフォルダーからは画像だけを配信する
location ~ ^/img/(avatars|project_thumbnails|branding)/ {
location ~* \.(jpe?g|jfif|png|gif|webp|ico)$ {
add_header X-Content-Type-Options "nosniff" always;
try_files $uri =404;
}
# SVG 画像は表示専用(スクリプトは実行させない)
location ~* \.svg$ {
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'none'; img-src data:; style-src 'unsafe-inline'; sandbox" always;
try_files $uri =404;
}
return 403;
}
# files フォルダーは直接配信しない
location ^~ /files/ {
return 404;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP として実行するのは index.php だけ
location = /index.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ \.php$ {
return 404;
}
}
設定を変更したら nginx -t で書式を確認し、Nginxを再読み込みしてください。
CDN・リバースプロキシ(Cloudflareなど)を経由する場合
GeckoFlagは、サーバーが受け取った接続元のIPアドレスを使って、ログインの失敗回数の制限やアクセス制限(IPアドレス)を行います。CDNやリバースプロキシを経由すると、すべての利用者がプロキシのIPアドレスからのアクセスに見えるため、次のようなことが起こります。
- 誰かがログインに何度か失敗すると、ほかの利用者もしばらくログインできなくなることがあります。
- アクセス制限(IPアドレス)は正しく動作しません。
このような構成では、Webサーバー側で本来の接続元IPアドレスを受け取る設定(Apacheの mod_remoteip、Nginxの real_ip モジュール、Cloudflareの場合は同社が公開しているIPアドレス一覧の登録など)を行ってください。設定方法はご利用のサーバー会社・CDNのマニュアルをご確認ください。