Dockerでのアプリ展開を超簡単にできる「Dokploy」、オープンソースでセルフホスト可能

自前のPCサーバーやVPSなど、OSだけが用意されているような環境でインターネットアプリケーションを構築する場合、webサーバーやデータベースサーバーなど1つ1つインストールし管理するのは手間がかかります。そこでDockerを利用してアプリケーションと必要な構成を全て自動的に構築できるDokployが公開されています。
Dokploy - Deploy your applications with ease

Dokploy/dokploy: Open Source Alternative to Vercel, Netlify and Heroku.
https://github.com/dokploy/dokploy
◆Dokployの主な特徴
・ワンクリックによるアプリケーションのデプロイ
テンプレートもしくはdocker composeファイルからワンクリックでデプロイできます。
・アプリケーションおよびDocker Compose管理
起動・停止などのアプリケーション管理、コンテナへのターミナル接続、GitHubやGitおよびDockerなどのソースプロバイダーからソースを取得しDocker・Nixpacks・Heroku Buildpacks・Paketo Buildpacksなどの形式でビルドが可能です。
・データベース管理
MySQL・PostgreSQL・MongoDB・MariaDB・Redisをサポート。
・監視、ログ機能
起動したアプリケーションやデータベースの各サービスのCPU使用率・メモリ使用量・ディスク使用量・ネットワークトラフィックやログをリアルタイムで確認できます。
・バックアップ機能
データベースや各種データのバックアップを自動化可能。
・ドメイン管理
ドメインの追加・削除、リダイレクト設定やポート設定など詳細なTraefik設定が可能です。
◆同様のサービスとの機能比較
CapRover・DokkuおよびCoolifyとの機能比較の一覧です。△はプラグインで可能。
機能DokployCapRoverDokkuCoolifyユーザーインターフェース〇〇×〇Docker Composeサポート〇××〇API/CLI〇〇〇〇マルチノードサポート〇〇×〇Traefik統合〇〇△〇ユーザー権限管理〇××〇Bitbucket統合〇×××GitLab統合〇×××Gitea統合〇×〇×高度なユーザー権限管理〇×××ターミナルアクセス〇××〇データベースサポート〇〇×〇モニタリング〇〇××バックアップ〇△△〇オープンソース〇〇〇〇通知〇××〇マルチサーバーサポート〇××〇オープンソーステンプレート〇〇×〇ロールバック〇〇×〇共有環境変数〇××〇個別環境変数〇××〇スケジュールジョブ〇××〇Cloudflareトンネル〇××〇カスタムビルドサーバー〇××〇ボリュームバックアップ〇×××デプロイプレビュー〇××〇チーム〇××〇クラウド/有料版〇〇〇〇
◆インストール方法
今回はGoogle Cloud上のVMインスタンスにUbuntuでDockerが利用できる環境を構築して、Dokployをインストールします。rootユーザーで以下のコマンドを実行します。
curl -sSL https://dokploy.com/install.sh | sh
インストールが完了すると管理画面にアクセスするためのURLが表示されるのでコピー。

ブラウザにURLを入力してアクセスすると管理者登録フォームが表示されるので、「First Name」「Last Name」「Email」「Password」および「Confirm Password」を入力して「Register」をクリック。

登録が完了すると管理画面が表示されます。

◆WordPressを構築
アプリケーション構築の例としてWordPressを導入します。まずプロジェクトを作成するため管理画面の「Create Project」をクリック。

「Name」に任意のプロジェクト名を入力し「Description」に任意の説明を入力して「Create」をクリック。

プロジェクトが作成されるので「Create Service」をクリック。

サービスの構築方法が選択できるので「Template」を選択。

テンプレート選択画面が表示されるので「wordpress」で検索、WordPressが見つかったので「Create」をクリック。

確認ダイアログが表示されるので「Confirm」をクリック。

管理画面にサービス「wordpress」が追加されるのでクリックします。

サービスの設定画面が表示されるので「Deploy」をクリック。

確認ダイアログが表示されるので「Confirm」をクリック。

構築が完了すると「Done」と緑色のバッジが表示されました。

「Domains」をクリックすると、このサービスにアクセスできるドメインが表示されるのでコピーします。

ブラウザにコピーしたドメインを入力してアクセスするとWordPressのインストール画面が表示されました。

◆独自ドメインの割り当てとHTTPS化
自動的に割り当てられるドメインではHTTPでのアクセスとなり通信が暗号化されません。暗号化された通信を行うには、独自ドメインが必要となります。サービス用のドメインが用意できる場合は、次の方法で割り当てることができます。「Domains」の設定画面の「Add Domain」をクリック。

「Service Name」でドメインを設定するサービスを選択し「Host」欄に独自ドメインを入力、「Container Port」には80を入力し「HTTPS」欄のトグルを「ON」にして「Certificate Provider」で「Let's Encrypt」を選択してから「Create」をクリックします。

ドメインが追加され「HTTPS」でのアクセスの準備ができました。

サービスの再起動が必要なので「General」から「Reload」をクリックします。

再起動後、ブラウザでHTTPS形式で独自ドメインを入力しアクセスすると正常にWordPressのインストール画面が表示されました。
