Zipアップロードでデプロイ
Zipファイルをアップロードしてアプリケーションをデプロイする方法
GitHubリポジトリを使用せず、Zipファイルを直接アップロードしてデプロイする方法を説明します。
ユースケース
- KohdenGPTのFileGeneratorツールでZipファイルを生成した場合
- GitHubにリポジトリを作成していない場合
- 一度きりのデプロイで、継続的な開発を予定していない場合
継続的に開発・更新する予定がある場合は、GitHub連携でのデプロイを強く推奨します。毎回Zipファイルを作成してアップロードするのは非常に手間がかかります。なお、Zipアップロードでデプロイした後からでもGitHub連携に移行することは可能です。
前提条件
- デプロイするアプリケーションのソースコードがあること
- Dockerfileまたはデプロイ可能なコードがあること
手順
1. Zipファイルの準備
プロジェクトのルートディレクトリをZipファイルに圧縮します。
my-app/
├── Dockerfile
├── package.json
├── src/
│ └── ...
└── ...Zipファイルを作成する際は、プロジェクトのルートディレクトリの中身を直接圧縮してください。フォルダごと圧縮すると、パスが1階層深くなり、ビルドが失敗する可能性があります。
2. プロジェクトの作成
- Dokployにアクセス
- 「Projects」から「Create Project」をクリック
- プロジェクト名を入力して作成
3. アプリケーションの作成とデプロイ
- 作成したプロジェクト内で「Create Service」→「Application」を選択
- アプリケーション名を入力
- 「Provider」で「Drop」タブを選択
- 「Zip file」セクションにZipファイルをドラッグ&ドロップ、またはクリックしてファイルを選択

「Build Path」は通常空欄のままで問題ありません。Zipファイルのルートにソースコードがある場合は変更不要です。
- 画面下部の「Build Type」セクションでビルド方法を設定

デフォルトは「Nixpacks」が選択されていますが、Dockerfileを使用することを推奨します。
Dockerfileを使用する場合(推奨)
- 「Build Type」で「Dockerfile」を選択
- 「Docker File」に
Dockerfileと入力 - 「Docker Context Path」「Docker Build Stage」は通常空欄のままで問題ありません
Dockerfileがルート以外にある場合や、ファイル名が異なる場合は、そのパスを入力してください。
例: docker/Dockerfile.prod
Dockerfileがない場合は、GitHub Copilotに作成を依頼してください。
プロジェクトのルートで「このプロジェクト用のDockerfileを作成して」と依頼すれば、適切なDockerfileを生成してくれます。
Railpackを使用する場合
Railpackは、Dockerfileなしでアプリケーションを自動的にビルドできる機能です。
- 「Build Type」で「Railpack」を選択
- Railpackがプロジェクトを自動検出してビルド設定を行います
Railpackは便利ですが、アプリの構成によってはうまくビルドできない場合があります。
ビルドに失敗する場合はDockerfileの使用を検討してください。
- 「Deploy」ボタンをクリックしてデプロイを開始
4. ドメイン設定
- 「Domains」タブを開く
- 「Add Domain」ボタンをクリック
- 「Generate random subdomain」ボタン(さいころアイコン)をクリック
- 「Container Port」にポート番号を設定(ローカル開発時にブラウザからアクセスしているポート。例: Next.jsなら
3000、Streamlitなら8501) - 「Create」をクリック

使用しているポート番号がわからない場合は、GitHub Copilotに聞いてみてください。
任意のサブドメインを指定することもできますが、他のアプリと重複すると動作がおかしくなります。特別な理由がない限り、自動生成されたドメインを使用してください。
5. 環境変数の設定(必要な場合)
ローカル開発時に .env ファイルに記載している内容をここに設定します。
- 「Environment」タブを開く
- 右上の目隠しボタンをクリックして編集可能にする
- 必要な環境変数を追加(例:
LITELLM_API_KEY=sk-xxxx) - 「Save」をクリック

環境変数は、アプリケーションの設定値を外部から渡す仕組みです。コードを変更せずに環境ごと(ローカル開発・本番など)に異なる値を設定でき、APIキーなどの機密情報をコードに直接書かずに済むというメリットもあります。
6. 再デプロイ(設定変更後)
ドメインや環境変数を設定・変更した場合は、再デプロイして反映させます。
- 「General」タブを開く
- 「Deploy」ボタンをクリック
- ビルドログを確認し、デプロイが完了するまで待機

ドメイン設定は再デプロイなしでも反映されることがありますが、確実に反映させるために再デプロイすることをおすすめします。
7. アプリケーションへのアクセス
デプロイ完了後、「Domains」タブを開き、表示されているURLをクリックするとアプリケーションにアクセスできます。

初回デプロイ直後はSSL証明書の取得に数分かかる場合があります。アクセスできない場合は少し待ってから再度お試しください。
デプロイ後、グローバル認証が正しく動作しているか確認するために、InPrivateウィンドウ(Ctrl+Shift+N)でアプリのURLにアクセスしてみてください。以下のようなサインイン画面が表示されれば、認証が正しく設定されています。

アプリケーションの更新
Zipアップロードでデプロイしたアプリケーションを更新するには:
- 更新したソースコードを再度Zipファイルに圧縮
- 「Source」セクションで新しいZipファイルをアップロード
- 「Deploy」ボタンをクリック
頻繁に更新する場合は、GitHub連携でのデプロイを検討してください。プッシュするだけで自動デプロイされるため、効率的です。
トラブルシューティング
Zipファイルがアップロードできない
- ファイルサイズが大きすぎないか確認(不要な
node_modulesなどを除外) - Zipファイルが破損していないか確認
ビルドが失敗する
- 「Deployments」タブを開き、「View」ボタンをクリックしてビルドログを確認
- エラーメッセージをGitHub Copilotにコピペして原因と解決方法を聞く
- Zipファイルの構造が正しいか確認(ルートにDockerfileがあるか)
- Dockerfileの構文エラーがないか確認
- 必要な環境変数が設定されているか確認
アプリケーションにアクセスできない・動作がおかしい
- 「Logs」タブでアプリケーションログを確認
- エラーメッセージをGitHub Copilotにコピペして原因と解決方法を聞く
- ポート番号が正しく設定されているか確認
- アプリケーションが指定したポートでリッスンしているか確認
