事務所の住民たち
おごちゃん
現在のCassetteOSのアプリストアには、Hieronymusがあるだけです。
これは本当に手が回ってないせいですが、追い追い増やして行きます。
その追加の話の第一段として、ここの考え方についてピックアップしておきます。
背景
CassetteOSはCasaOSをベースとして開発をしたものであり、アプリストアに関しては100%互換性があります。 ですから、単純にアプリの種類が欲しければ、CasaOSのアプリストアを追加してやれば問題なく動かせるはずです。
とは言え、CassetteOSはそのようなことが可能ではありますが、独自のアプリストアを構築しようと考えています。 それは「アプリストア」についての主導権は持っていたいという商業的な都合はもちろんあるのですが、それ以上に
アプリストアも含めてOS環境である
と考えているからです。
なるべく使いやすいアプリを揃えたい。 その使いやすさは、単にアプリケーションを使うことそれ自体だけではなくて、環境や他のアプリとの連携等も含めて、「使いやすい」と感じてもらいたいからです。
方針
当面の方針として、基本的には、CasaOSやTikiのアプリストアにあるものから優先的に選択をして行きます。 これは既に実績があるものの方がやりやすいということ、そして既に実績があるという程度には、そのアプリが認められている等の理由です。
それ以外のアプリも、有用なものが発見されれば追加できるようにしたいと思います。
いずれの場合でも、当面の方針として
- 有用性がわかっていること
- 弊社でレビューができていること
- 他のアプリとのバランスを考えること
ということで、やや強めの条件をつけています。 つまり最初は「推せるもの」を中心にします。 使えないアプリを並べても、ノイズになるだけですからね。 CassetteOSが普及すれば、アプリの評価システムとか作りたいと思いますが、少なくとも最初は「良いものを揃える」ことにしようと考えています。
それと共に、出自がCasaOSやTikiであっても、
- 必ずパッケージの確認を行う
- 必要なら再パッケージを行う
ようにします。 これは、アプリはDocker imageとして配布される関係で、ある程度の「品質や信用の担保」が必要であるということと、Docker imageの作成の方針がCassetteOSの構成ポリシーと一致していることを求めることによります。
CassetteOSの構成ポリシー
「CassetteOSの構成ポリシー」と言うと大袈裟なのですが、簡単に言えばリソースの浪費は避けたいということです。
一般的なDocker imageであれば、たとえばデータベースエンジンは自前で抱えます。 直接自分のイメージバイナリの中で持つことはあまりないでしょうが、たいていはデータベースエンジンのコンテナをインストールするようになっています。 これはDockerの思想的には良いことですが、CassetteOSのような環境だと「アプリを追加する毎にデータベースエンジンがついて来る(起動される)」ことになってしまいます。 これはリソース的にムダなだけではなく、CassetteOSとしてはシステム管理的に面倒の元になります。
CassetteOSにとってDockerはキーとなる重要なコンポーネントですが、Dockerを運用するためのシステムとして作っているわけではありません。 つまり、「yet another Kubernetes」を作っているわけではありません。 単にアプリケーションの実行管理に都合が良いのでDockerの仕組みを使っているに過ぎません。
そこで若干Dockerの思想からは外れますが、「データベースはインフラとしてあらかじめ用意しておく」ことにしました。 他のコンポーネントも同様で、「Docker的には良い」ことと「CassetteOS的に欲しいもの」は必ずしも一致しないので、パッケージングも含めてやり直さなければなりません。 多くのアプリケーションは「Dockerのベストプラクティス」には合致していても、「小規模ごった煮サーバ」には合致していないのです。
こういったことを検出し、必要なら再パッケージングをするようにします。
レビューや説明を整備する
アプリストアに置く条件として、レビューや説明を整備することにしました。
これはエンドユーザ目線では当たり前でしかないのですが、これが欠如しているソフトウェアが世の中には多過ぎます(あれ? 空から何かが降って来たようです)。 以前から、GithubやSourceForgeの情報を集めたデータベースを構築中なのですが、結構有名どころのソフトウェアであっても「このソフトウェアは素晴しく使いやすく、美しい画面でユーザーの希望を全うします」みたいな言葉だけで、
結局何するソフトウェアなんだよ!!!
とつっこみたくなるものが少なくありません。
これが誰でも知っている定番のソフトならまだしも、「知る人ぞ知る素晴しいソフトウェア(= CassetteOSとして推して行きたいソフトウェア)」だと、「わからないから手をつけない」ということになってしまいます。
実際のところ、いわゆる「アプリケーションソフトウェア」はごく一部の超有名どころ以外は「何それ?」になるものが少なくないと思います。 そういったものを知らないせいで使えないのは、実にもったいないことです。 他方、やたらに似たものがあるジャンルもあって、そうなると「みんな同じじゃないですかー」となってしまいます。
そこで、アプリストアに置くからには、レビューや説明をしっかりして、また情報や情報リンクを充実させて、「使えるソフトが選べる」というようにしたいと思っています。
一例を挙げるなら、「メモを取るためのソフト」はCasaOSのリポジトリにはいくつもあります。 使ってみればそれぞれ一長一短であることはわかりますし、どんな利用シーンを想定しているかもわかるのですが、現状の説明は「個人的なメモを手軽に取れます」以上の情報がありません。 よりレンジを拡げると、さらに様々なものがあって、ますます選択に困ってしまいます。
そこに適切な説明とレビューがあれば、どれを使うと良いか判断しやすくなるでしょう。
オープンソースライセンスにこだわる
最初に書いておきますが、これは非オープンソースのものをCassetteOSに載せないとか排除するということとは違います。 将来的にはプロプライエタリなソフトウェアもアプリストアに置きたいと考えていますので、非オープンソースを否定するわけではありません。
とは言え、最近のこの世界には「オープンソースのように見えてオープンソースでないソフトウェア」が増えて来ました。 それぞれの事情は理解するにしても、「配布」という立場に立つと厄介この上ないものです。
単純に利用する側であれば、オープンソースであろうと「無料のプロプラ」であろうと同じに見えます。 しかし、たとえば「個人利用は無料」とか「非商用は無料」とか言われた時に、遵法的立場を取る人は「この利用は個人利用か?」とか「この利用は商用と言えないか?」ということを問題に思うでしょう。 この辺の線引きは、それぞれのソフトウェアでも実にあいまいだったりするので、時として「地雷」となります。 その「地雷」は利用者だけではなくて、再配布者(= 弊社)にも及ぶかも知れません。
また弊社のパワーであれば、オープンソースなものであれば最悪どうとでも出来ますし、サポートは可能です。 不具合があればパッチを作って配布することも可能です。 しかし、非オープンソースなものであれば限界がありますし、場合によっては禁止事項があったりするかも知れません。 改変(= パッチ)したものを再配布することを許す非オープンソースなソフトウェアはほぼ存在しません。 実に厄介です。
そこで、CassetteOSのアプリストアはプロプライエタリなものを掲載してもいいけど、それはサポートが提供できる人だけという縛りを作ります。 つまり、プロプライエタリなソフトウェアはベンダーだけが掲載可能だということです。
弊社は現状オープンソースなソフトウェアしかリリースしていませんし、弊社しかアプリストアに掲載ソフトウェアを用意していない現状だと、オープンソースライセンスのものしか掲載できません。
この縛りのせいでいくつかの有名有用なソフトウェア(n8nとか)が排除されてしまいますが、ポリシーははっきりしておきたいですし、将来的にはそのベンダーが置いてくれるようになってくれればいいなと思います。
余談ですが、これで調べているうちにMastraがApache2になったことを発見しました。言ってみるもんだなぁ(謎。
これから
そんなわけで、これからしばらくCassetteOSのアプリストアに置こうと考えているソフトウェアを紹介したりレビューしたりして行きたいと思います。 これらが簡単にインストールできる環境がCassetteOSです。
もちろんこれらはオープンソースですから、CassetteOSと無関係にセルフホストの参考にしてもらえると良いと思います。