YAML設定で頭を悩ませずにプロジェクトをデプロイする方法
コードを書くのに数時間しかかからないのに、デプロイ環境の構築が2日間にも及ぶ、そんな経験はありませんか?まずはDockerfileと格闘し、次にLet's EncryptでSSL証明書をルーティングする方法を思い出そうとし、そして最後にはデータベースが共有ネットワーク上でバックエンドを見つけられないことを発見する。"ペットプロジェクトをデプロイする"だけのエントリーバリアが不合理なほど高くなってしまった这种感觉があります。
最近、Openshipを見つけました。モダンなコンテナの力を保ちながら、デプロイがシンプルだった时代に戻すことを目指す、オープンソースのプラットフォームです。本質的には、任意の安いサーバーに設置できる個人的なPaaS(Platform as a Service)です。

そもそもこれ何?
Openshipは、CI/CDパイプラインの手動設定に厌倦した人向けのツールです。リポジトリのリンクを渡すと、中身が何をされているか把握します:Node.js、Go、Python、それとも классический PHP。システムがビルドし、コンテナにパッケージ化して起動します。
VercelやHerokuとは異なり、Openshipは完全にセルフホスト型です。つまり、"プラットフォームリソース"の料金を支払うのではなく、自分のハードウェアのパワーを活用できます。そして、デスクトップアプリ、Webパネル、おなじみのCLIという3つの方法で全てを管理できます。
Openshipが魅力的な理由
私が惹かれたのは、開発者たちが単なる"Dockerラッパー"ではなく、通常は別途設定する必要があるものを全て1 곳에集めたことです。
まず、組み込みのメールサーバーがあります。適切なDKIMとSPFレコードを設定してメールがスパムフォルダに入らないようにするSMTPの設定を試みたことがある人なら、それがどれほど頭痛の種かわかるでしょう。Openshipでは、箱から出してすぐに動作します。
次に、ドメイン管理です。プラットフォームはSSL証明書を自動的に発行し、更新を監視します。新しいサブドメインを追加するためにサーバーにログインする必要はありません。
3番目に、データベース処理です。Postgres、MongoDB、Redisが数クリックで起動します。ワンクリックでリストアできる組み込みのスケジュールバックアップシステムがあります。専任の管理者がいない小規模プロジェクトにとっては、命を救う存在です。
実際の使い方
インストールは1分もかかりません。Ubuntuまたはその他のLinuxディストリビューションが動作しているクリーンなサーバーがある場合、コンソールでこれを実行するだけです:
npm i -g openship
openship up
その後、サーバーが生き変わります。プロジェクトをデプロイするには、ローカルマシンの該当フォルダに移動して入力するだけです:
openship init
openship deploy
プラットフォームは自動的にアプリケーションのビルド方法を判断します。ルートにがあれば、Node.jsビルドが実行されます。があれば、Openshipはそれをそのまま"そのまま"取得します。これは、複雑なコンテナセットアップがすでに設定されており、新しいツールのために書き直したくない場合に便利です。
では、何が欠けているのか
このプロジェクトは現在積極的に開発中です。ドキュメントを見ると、正直に"作業中"と書かれています。ビジュアルCI/CDパイプラインエディタやサーバー間の複雑なプライベートネットワーク設定などの高度な機能は、まだ利用できません—それらはロードマップにあります。
もう1つの点は、OpenshipはCLIでインストールする際にかなり多くの依存関係を引っ張ってくるため、Docker環境で最もよく動作することです。幸いなことに、リポジトリにはインフラ全体をすぐにスピンアップするための готовыйがあります。
誰が試してみるべきか
Openshipは2つのカテゴリーの人々におすすめします。1人目は、異なるスタックで5〜10个小規模プロジェクトを蓄積したソロ開発者です。それらを全て1つのサーバーに保ちながら、Nginx設定に迷わないようにするのはなかなかの課題です。Openshipはこれを素敵なインターフェースの整理されたリストに変えてくれます。
2人目のカテゴリーは、ステージングサーバーが必要な小規模チームです。各Gitブランチに対してプレビュー環境を迅速にスピンアップし、複雑なGitHub Actionsを設定する必要がない機能は、とても素晴らしいボーナスです。
大規模なエンタープライズクラスターにはまだ少し早いですが、中規模プロジェクトのカスタムデプロイスクリプトの代わりとしては、非常に堅実に見えます。Apache 2.0ライセンスにより、商用製品での使用においても、明日サブスクリプションの請求額が信箱に届くことを心配する必要がありません。
全体的に見ると、YAML地獄に厌倦していて"プッシュして忘れたい"だけなら、Openshipはプロジェクトを整理するための週末プロジェクトに最適な候補です。
関連プロジェクト