変数を設定する
環境変数は 1 つのアプリケーションに属します。再起動やコミットの後も残りますが、新しくアップロードすると変数のない新しいアプリケーションが作成されるため、そちらで改めて設定してください。- ダッシュボード
- CLI
- VS Code
- API
- ダッシュボードでアプリケーションを開き、設定 → 環境変数 に移動します。
- キーと値を 1 つずつ追加するか、既存の
.envファイルをインポートします。 - 保存 をクリックします。ダッシュボードがアプリケーションを再起動するかどうかを尋ねるので、新しい値を反映させるために再起動してください。
コードで読み取る
Square Cloud が設定する変数
アプリケーションは、次の変数があらかじめ定義された状態で起動します。NODE_ENV が production なので、npm install は devDependencies をスキップします。START コマンドでプロジェクトをビルドする場合(たとえば typescript や vite を使う場合)は、それらのビルドツールを package.json の dependencies に記載してください。
変数がアプリに渡る仕組み
Square Cloud は変数をアプリケーション内の.squarecloud/.env ファイルに保存し、アプリケーションが起動するたびに、依存関係のインストールや START コマンド、MAIN ファイルの実行より前に、シェルで読み込みます。そのため、次の点に注意してください。
- 名前には英字、数字、アンダースコアを使い、数字で始めないでください。
- スペースや、
$、&、;、|などのシェルの特殊文字を含む値は、引用符で囲む必要があります。囲まないと、シェルが値を途中で切ったり展開したりします。ダッシュボードとsquarecloud app env setは自動で引用符を付けます。VS Code 拡張機能や API では、そのような値を自分でシングルクォートで囲んでください。'p@ss word$1'と入力するか、API のボディで"PASSWORD": "'p@ss word$1'"を送信します。
STATIC_APP_ENV_NOT_SUPPORTED を返します。
アップロードに秘密情報を含めない
コード自身が.env ファイルを読み込む場合(たとえば dotenv を使う場合)、そのファイルはアップロードに含まれている必要があります。その状態で .env を squarecloud.ignore に記載すると、アプリは秘密情報なしで起動し、ボットは無効なトークンで失敗します。
より安全な構成は、上で説明したように .env の各値をアプリケーションの環境変数に移すことです。設定が済めば、.env をアップロードと Git リポジトリの両方から除外できます。dotenv は既存の変数を上書きしないため、同じコードが手元のマシンでも Square Cloud でも動作します。
次のステップ
設定ファイル
squarecloud.app の MAIN、MEMORY、START などのフィールドを設定します。Discord ボットをホストする
トークンを環境変数から読み取るボットをデプロイします。
Discord ボットのエラー
無効なトークン、不足している intents、オフラインになるボットを解決します。
データベース接続エラー
DATABASE_URL と適切な SSL 設定で接続します。
