un tronc
Claude Code

GitHubで公開、商用利用を制限してOSSと名乗れず改名

こんにちは!アントロンのNaokoです。

作ったものを公開したいけれど、勝手に商売に使われるのは困る。そんなふうに迷っていませんか?

私は、アントロンのサイトで動かしている AI チャットボットと、制作を担当している宿の予約システムのコードを、GitHub(プログラムのコードを置いて公開できるサービス)に公開しました。コードを書いたのは Claude Code(AI に作業を頼めるアプリ)です。

公開したコードに付けたのは、PolyForm Noncommercial License 1.0.0 です。チャットボットの README には、見る・学ぶ・試す利用は自由とし、販売・業務での利用・有償の導入など、商用で使いたい場合は相談してもらう説明を書きました。

ただ、商用利用を制限すると、先に付けていた chatbot-oss という名前が、オープンソースの定義と合わなくなりました。予約システムでは、公開しない設定が最初の履歴に入っていて、リポジトリを作り直すことになりました。

解決の考え方:公開することと、利用を許可することを分ける

コードを見てもらいたいことと、商売に使ってよいことは、分けて考える必要がありました。利用を認める条件を書くのが、ライセンスです。

GitHub の公式説明では、ライセンスがない場合、著作権法の初期の扱いが適用されます。他の人にコードの複製・配布・改変を認めることにはなりません。GitHub Docs

私の場合は、コードを公開しつつ、勝手に商売に使われることを制限するために、PolyForm Noncommercial License 1.0.0 を付けました。商用で使いたい場合の相談先も、README に記載しました。

やったこと1:最初はライセンスを付けずに公開した

チャットボットのコードは、最初に chatbot-oss という名前の公開リポジトリ(GitHub でコードを置く場所)に入れました。この時点では、ライセンスを付けていませんでした。

サイトごとの設定(sites/untronc)は、ローカル環境だけに置き、GitHub には入れていません。

先に公開し、そのあとで利用条件を付ける順番になりました。

やったこと2:ライセンスと説明を追加した

Claude Code に頼んで、PolyForm Noncommercial License 1.0.0 を付けました。追加・変更した内容は、次のとおりです。

  • リポジトリのいちばん上に LICENSE ファイルを置き、ライセンスの全文を写す
  • 全文の頭に「Required Notice: Copyright 2026 untronc (https://untronc.jp)」の1行を足す
  • package.json(プログラムの情報を書くファイル)の license 欄と、README(リポジトリの説明文)にライセンス名を書く

README には、ライセンス名に続けて、次の説明を記載しました。

「見る・学ぶ・試すのは自由です。商用の利用(販売・業務での利用・有償の導入など)はできません。商用で使いたい場合は untronc(https://untronc.jp)にご相談ください。」

コードを見る・学ぶ・試すことと、販売や業務などに使うことを分けた記載です。商用利用については、そのまま認める説明にはせず、相談先を示しました。

なお、PolyForm Noncommercial License 1.0.0 の条文には、非商用目的の利用に加え、慈善団体・教育機関・公的な研究機関などによる利用を認める規定があります。

つまずき:ライセンスを付けると、名前と中身が合わなくなった

ライセンスを付けたあと、商用利用を制限していても OSS(オープンソース)と名乗れるのか、Claude Code に確認しました。

Open Source Initiative が示すオープンソースの定義では、利用分野による制限を認めておらず、ビジネスでの利用も制限してはならないとされています。The Open Source Definition

PolyForm の公式サイトでも、PolyForm のライセンスはオープンソースではないと説明されています。What is PolyForm?

困ったのは、先に付けていた chatbot-oss という名前です。公開したコードに OSS と付けていましたが、選んだライセンスは、その定義に合いませんでした。

そこで、リポジトリ名を site-chatbot に変えました。名前の変更は私が行いました。

GitHub の untronc/site-chatbot のリポジトリの画面。リポジトリ名は site-chatbot で、Public と出ている。ファイル一覧のコミットの説明には、改名前の名前の chatbot-oss 初版 が残っている

やったこと3:予約システムは、お客さまの設定を外して作り直した

宿の予約システムも GitHub に入れました。

こちらは、最初に非公開のリポジトリを作りました。ところが、最初のコミット(変更を記録する単位)から、宿の設定が入っていました。

Git(コードの変更履歴を管理する仕組み)では、ファイルをあとから削除しても、過去のコミットに内容が残ります。そのまま公開に切り替えると、過去の設定も見える状態になります。

そのため、非公開のリポジトリを削除し、宿の設定を外した状態で作り直しました。削除の操作は私が行いました。

作り直した untronc/yoyaku は、最初から公開にし、PolyForm Noncommercial License 1.0.0 を付けました。施設ごとの設定を入れる sites フォルダは、.gitignore(Git に追加しないファイルを指定する設定)に sites/* と記載して除外しています。

GitHub の untronc/yoyaku の README のライセンスの節。PolyForm Noncommercial License 1.0.0 と、商用で使いたいときの連絡先が書いてある

公開先は、次の2つです。

公開する前に、利用条件・名前・設定・履歴を確かめる

今回、チャットボットでは利用条件に合わせた改名が必要になり、予約システムでは過去の履歴に残った設定のために作り直しが必要になりました。

これからコードを公開する方は、公開予定のリポジトリで、次の点を確認してみてください。

  • リポジトリ名と README の説明が、選んだライセンスに合っているか
  • 公開しない設定が、現在のファイルだけでなく、最初のコミットを含む過去の履歴にも入っていないか

自分のサイトに AI チャットボットや予約システムを入れたい、というご相談は、お問い合わせフォームからどうぞ。

最後まで読んでくださりありがとうございました!

コメント