Unofficial

Bucket & Code Server IDE

NAS はすでに ファイルを守っています。 これからは ソフトウェアも作ります。

QNAP サーバーのための工房。

Bucket & Code Server IDE は、QNAP NAS のための開発工房です。Forgejo による Git、CI、バージョン管理された Bucket、ブラウザーの VS Code、そしてレシピを QPKG にコンパイルする App Builder。ほかのアプリと同じく App Center からインストールできます。

できること

お持ちの NAS で

Bucket & Code Server IDE は、すでにお持ちの QNAP NAS に、専用の Web サーバー、専用のアカウント、専用のツールを備えた完全な開発環境をインストールし、すべてをボリューム上の 1 つのデータフォルダーにまとめます。ブラウザーでコードを書き、Forgejo にプッシュし、NAS 上のランナーにビルドさせ、自分の App Center リポジトリに公開します。これらすべてを操作するパネルはコードエディターのように使え、9 つの言語に対応しています。

01 · ワークベンチ

エディターのように使えるパネル

アクティビティバー、サイドバー、タブ、コマンドパレット、下部パネル、ステータスバー。VS Code を使い慣れていれば、迷うことはありません。各ページはタブで開き、Ctrl+Shift+P でロールが実行できるすべてのコマンドを呼び出せます。ステータスバーには、モジュールの動作状況、ボリュームの残り容量、証明書の状態が表示されます。

  • アクティビティバー、サイドバーのツリー、プレビュータブ、2 つのページの並列表示
  • 下部パネル(Ctrl+J)のジョブ、問題、出力。進行状況はリアルタイムで表示
  • ダークテーマとライトテーマ、スマートフォン用レイアウト、キーボードショートカット
  • 英語、ポーランド語、ドイツ語、フランス語、イタリア語、オランダ語、スウェーデン語、日本語、繁体字中国語。ユーザーガイドも同じ 9 言語
  • admin、developer、viewer の各ロール、2 要素認証、API トークン

02 · 新しいプロジェクト

新しいプロジェクトを 1 ステップで

テンプレートを選び、名前を付けて、プロジェクトを作成 を押します。1 つのジョブが Forgejo リポジトリを作成し、CI ワークフロー付きのテンプレートをコミットしてプッシュし、エディターが開くフォルダーにコピーを置きます。CI がオンなら、次のプッシュが NAS 上でビルドされます。

  • C、CMake を使う C++、Go、Rust、Node、Python、Java
  • カーネルモジュール、ch341 USB シリアルドライバー、QPKG パッケージ、App Builder アプリ
  • 最初のコミットはあなたのもの。main 上にあり、公開を選ばない限り非公開です
  • 足りないものがあれば何も作成されず、ダイアログが次にすべきことを伝えます

03 · Git

Git と Forgejo

Forgejo は、リポジトリ、Issue、プルリクエスト、リリース、Wiki、LFS、ミラー、Webhook を、あなた自身のディスク上で提供します。パネルのアカウントはすべて Forgejo のアカウントでもあるので、2 つ目のユーザー一覧を同期させる必要はありません。HTTPS 経由の git はパネルのパスワードを受け付け、2 要素認証がオンならアクセストークンを受け付けます。

  • HTTPS または SSH でクローン。Git ページが両方のコマンドを用意します
  • Forgejo のサインインはパネルのサインインそのもの。2 要素認証のコードも含みます
  • 自分のネットワークからのミラーとインポートは、最初から許可されています
  • 公開閲覧 をオンにすると、アカウントのない人にも公開リポジトリを見せられます

04 · CI

コードのある場所で動く CI

ワークフローをプッシュすると、NAS 上の Forgejo Actions ランナーがそれを受け取ります。ジョブは NAS そのものの上で動き、パッケージのツールとあなたのビルド環境をすぐに使えます。

  • runs-on: bucketvs、またはラベル qnap-x86_64、qnap-aarch64、self-hosted
  • bvs env run を使えば、どのジョブからでも自分の環境の中でビルドできます
  • マシンを増やしたいときは、CI ページから外部の Linux ランナー(x86_64 または aarch64)を登録できます
  • ジョブはコンテナーではなく admin として動き、CI ページにもそう表示されます。信頼できるワークフローだけを実行させてください

05 · エディター

ブラウザーの VS Code と、あなたの AI アシスタント

開発者ごとに、ブラウザーで使う自分専用の VS Code(code-server)があります。そのターミナルでは git、svn、node、npm、rsync、curl にパスが通っていて、コマンド 1 つで完全な Linux 環境に入れます。エディター設定ページから Claude Code、Gemini CLI、Codex CLI をインストールでき、ウィザードが作るプロジェクトには、QNAP NAS がシェルでどう動くかを AI アシスタントに教えるスキルが入っています。

  • インスタンスはアカウントごとに 1 つ。アイドル時には止まりますが、ターミナルでプログラムが動いている間は止まりません
  • Open VSX からの拡張機能
  • ポートビューから、NAS で起動したばかりの開発サーバーにアクセスできます
  • ターミナルは NAS 上の root シェルです。developer ロールは、admin のパスワードを任せられる人に与えてください

06 · SVN と Bucket

保存のたびに履歴が残る Bucket

Bucket は、保存したファイルがそのたびにリビジョンになるネットワークドライブです。以前のどのバージョンでも開き、別のバージョンと比べ、新しいリビジョンとして戻せるので、何も失われません。Subversion のリポジトリも Bucket のすぐ隣にあり、同じアカウントで使えます。

  • macOS の Finder、rclone、davfs2、Cyberduck、WinSCP、curl で使えます
  • リポジトリごとの権限:アカウントごとに読み書き、読み取り、なし
  • Finder の ._* と .DS_Store ファイルは、既定で履歴に入りません
  • オプションの読み取り専用 Web 表示で、アカウントのない人にもファイル、履歴、差分を見せられます

07 · ツールチェーン

NAS の上で本物の Linux を

Debian、Ubuntu、Alpine を NAS 上の環境に展開し、普通の Linux マシンと同じように作業できます。Debian と Ubuntu では apt install が使え、インストールしたものは残ります。必要なランタイムとコンパイラーは署名付きのカタログから追加でき、ダウンロードしたものはすべて、使う前に sha256 で検証されます。

  • Debian 12 と 13、Ubuntu 22.04 と 24.04、Alpine 3.22
  • Python、Go、Node.js、Zig、Rust、CMake、Ninja、Java
  • aarch64、x86-64、armv7 向けの Bootlin クロスツールチェーン(x86_64 の NAS 上)
  • QNAP の QDK 2.5.0 と、qpkg.cfg のある任意のフォルダーから QPKG をビルドする bvs qbuild
  • 環境のクローン、エクスポート、削除。パネルから環境内のシェルを開けます

08 · App Builder

App Builder:レシピから QPKG へ

523 のレシピからプログラムを選び、リンクのしかたを決めてビルドします。App Builder はすべてを環境内の 1 つのフォルダーにコンパイルし、ビルドが前回のものを置き換える前に、すべてのプログラムを検査します。アプリを有効化すればそのプログラムが NAS 上で動き、独立した QPKG としてエクスポートすることもできます。

  • ライブラリ、シェル、ツール、サーバー:bash、zsh、coreutils、curl、git、jq、rsync、tmux、htop、nginx、redis、openssh、PowerDNS など
  • 各レシピはソースを sha256 で固定し、結果を検査で確かめます
  • リンク方式は 4 つ。バンドルは自前のライブラリを持ち込み、NAS からは C ライブラリだけを使います
  • aarch64 と armv7 向けのクロスビルド
  • ビルドが失敗しても、アプリは元のままです

09 · 依存関係

バイナリが必要とするものを見る

「Library not found」は、NAS の上で驚くことではなくなるべきです。依存関係タブは、ビルドのすべての ELF ファイルを実行せずに読み、それぞれが何を必要とし、NAS のローダーがそれをどこで見つけるかを示します。見つからないライブラリ、ライブラリが定義していないバージョン、アプリの外を指す RUNPATH は、修正方法付きの検出結果になります。

  • 修正にボタンがあるものはボタン 1 つで:レシピを追加してビルド、リンク方式の切り替え、RUNPATH の修正
  • すべてのファイル、アプリのライブラリ、NAS のライブラリをグラフまたはツリーで
  • 変更前と変更後をプレビューできるパッチツール
  • bvs ldd と bvs deps で、シェルからも同じ答えが得られます

10 · カーネル

実行中のカーネルのためのカーネル工房

QNAP が提供していないドライバーが必要ですか。カーネル工房は、実行中のカーネルが自分自身について示す情報を読み、それに合うカーネルツリーを用意して、そのツリーに対してモジュールをビルドします。すべてのモジュールは読み込む前に実行中のカーネルと照合され、照合に通らないモジュールは決して読み込まれません。

  • プロファイル:リリース、コンパイラー、vermagic、struct module のレイアウト
  • QNAP が公開している場合は QNAP の GPL ツリー、なければ kernel.org のツリー
  • 自作のモジュール、または ch341 USB シリアルドライバーのようなカーネルツリーのドライバーをビルド
  • モジュールは依存するモジュールと一緒に読み込めます。アプリにモジュールを含めることもできます

11 · パッケージ

自分だけの App Center リポジトリ

QPKG をパッケージの App Center リポジトリに公開し、ほかの NAS の App Center にそのアドレスを追加すれば、ほかのリポジトリと同じようにインストールできます。App Center にどのバージョンを見せるかは、あなたが決めます。

  • どのバージョンもダウンロードでき、1 つが最新版として表示されます
  • パッケージページから、CI ワークフローから、または bvs repo publish でアップロード

12 · 公開

ポートを開けずにインターネットへ

公開ページは、パネル、Forgejo、パッケージリポジトリを、DNS が Cloudflare にある自分のドメインの名前で公開します。cloudflared が NAS から外へ接続するので、ルーターのポートは開けず、証明書は Cloudflare が持ちます。どのリクエストも引き続きパッケージ自身の認証を通り、アカウントなしで開けるのは、あなたが公開したものだけです。

  • すべてはまず Cloudflare 側で確認され、確認に失敗すれば何も変わりません
  • パネルと Forgejo 用のメインのホスト名と、ほかの NAS の App Center 用のパッケージ用のホスト名
  • パッケージとパネルのファイル向けの、任意のキャッシュプリセット
  • Cloudflare から削除 で、作成したレコード、キャッシュルール、トンネルを取り消せます

13 · バックアップ

バックアップと日々の作業

Git、SVN、Bucket、設定、VS Code の設定の毎日のバックアップは、直近 7 日、4 週、6 か月分を保持します。コピーの送り先は NAS 上のフォルダー、rsync と SSH、または rclone が届くあらゆる場所で、NAS の外に出るコピーはすべて age で暗号化されます。

  • 確認 は実行したバックアップをすべて読み戻します:すべての sha256、svnadmin verify、git fsck
  • すべてを復元することも、モジュールを動かしたまま 1 つのリポジトリだけを復元することもできます。検証するまで何も置き換えません
  • NAS 上または環境内の cron ジョブ。タイムゾーン、タイムアウト、実行が失敗したときの通知付き
  • ログ、通知、サポートバンドル。すべてパネルから

14 · 例

大きなプロジェクトも付属

例のギャラリーには、ワンクリックで適用できる 63 の例があります。そのうちいくつかは完全な製品です。TurboDNS は PowerDNS Authoritative Server 5.1.4 をレシピからビルドし、ゾーンパネルを加えて、両方を CI ワークフロー付きの QPKG にまとめます。MailServerPro は同じことを Postfix、Dovecot、Rspamd、Roundcube で、WebHostPro は nginx、Apache httpd、PHP、データベースで行います。

ソースからビルドするメールサーバー。SMTP には Postfix、IMAP、POP3、Sieve、ManageSieve には Dovecot と Pigeonhole、スパム対策には Rspamd と Valkey、ClamAV、パスワードの総当たり対策には fail2ban。DKIM 署名、SPF、DMARC、ARC、グレイリスティング、MTA-STS、そして独自の検証リゾルバーによる DANE。Web メールには Roundcube、カレンダーと連絡先には CalDAV と CardDAV、Exchange ActiveSync には Z-Push。複数のドメイン、容量制限付きのメールボックス、エイリアス、キャッチオール、転送、不在時の自動応答を 1 つのデータベースで管理します。管理パネルでは、ドメイン、メールボックス、DKIM 鍵を追加し、各ドメインに必要な DNS レコードを一覧し、キューとログを表示し、すべてのメールボックスをバックアップします。App Builder がそのレシピを NAS 上でコンパイルし、make ターゲット 1 つでアプリがQPKG になります。

  • 9 言語のゾーンパネル。すべての変更はまず試行として示されます
  • スナップショット、プリセット、伝播の確認、DNSSEC
  • Cloudflare と OVH への送信。試行と読み戻し付き
  • ギャラリーには 18 のアプリ、9 の環境、6 の CI ワークフロー、5 の cron ジョブ、25 のエディター用プロジェクト

大きなプロジェクトを画面で見る

サンプルデータ

WebHostPro(Web サーバー)、TurboDNS(DNS サーバー)、MailServerPro(メールサーバー)は、例のギャラリーにあるエディター用プロジェクトです。それぞれ専用のパネルを備え、QPKG としてパッケージ化されています。

WebHostPro: サイト
WebHostProサイトのページ:各サイトの種類、サーバー、TLS、状態と、ドメインの設定がまだ終わっていないサイトの印。
WebHostPro: ドメインウィザード
WebHostProドメインウィザードのレジストラのステップ:ドメインを買った先で入力するネームサーバーとグルーレコード(それぞれにコピーボタン付き)、そしてルーターの転送設定。
WebHostPro: ドメインの設定
WebHostProサイトの概要にあるカード「設定を完了する」:TurboDNS に送ったレコード、レジストラに入力する値、そして親ゾーンのネームサーバー、この NAS の TurboDNS、3 つのパブリックリゾルバー、フロントを読むライブチェック。
WebHostPro: PHP タブ
WebHostProPHP サイトの PHP タブ:バージョンとタイムゾーン、上限、エラー、セッション、OPcache と JIT、APCu、拡張機能、php.ini の追加行、PHP プロセス。各項目には、その働きを説明する「?」が付いています。
WebHostPro: データベース
WebHostProデータベースのページ:MariaDB と Percona Server のデータベースサーバーごとのカード。バッファープール、接続数、遅いクエリの基準時間、サーバー自身のオプション一覧で検査される my.cnf の追加行。変更は下書きで、適用するとサーバーが再起動します。
TurboDNS: ゾーン
TurboDNSゾーン:ゾーンの一覧と、ネームサーバーとシリアル番号のモードを指定する新しいゾーンのフォーム。
TurboDNS: ゾーンのレコード
TurboDNSゾーンのレコード:シリアル番号と署名の状態、レコードセット、レコードセットを追加するフォーム。
TurboDNS: 試行
TurboDNS新しいレコードセットを試行で確認:何かが変わる前に、追加、置換、削除される内容が一覧で示されます。
MailServerPro: 概要
MailServerPro概要:10 個のサービスとその状態、ドメイン、メールボックス、エイリアス、キュー内のメッセージの数。
MailServerPro: ドメイン
MailServerProドメイン:各ドメインの状態、メールボックス、キャッチオール、そして DNS レコード、オン/オフの切り替え、削除のボタン。
MailServerPro: ドメインの DNS レコード
MailServerProドメインで公開する DNS レコード:MX、SPF、DKIM、DMARC、MTA-STS、TLS-RPT、autoconfig、SRV。それぞれに理由が付いています。
MailServerPro: メールボックス
MailServerProメールボックス:アドレス、名前、使用量と上限、状態、転送先。その下に追加用のフォームがあります。
MailServerPro: 設定
MailServerPro設定:ホスト名、証明書、メッセージのサイズと送信速度、MTA-STS と DANE、スパムのしきい値、グレーリスト、ClamAV、fail2ban、バックアップ。
1 / 13

パネルは実物で、ビルド用マシンのブラウザーで開いたものです。データは作り物です:example.org と example.test 配下の名前、ドキュメント用の範囲のアドレス、ローカルのアドレス。

対象ユーザー

  • 自分のコード、ビルド、CI を、自分が所有するハードウェアに置きたい開発者。
  • NAS 用の QPKG、コマンドラインツール、サーバーを自分でビルドする QNAP のパワーユーザー。
  • クラウドの契約なしで、非公開の Git、Issue、プルリクエストが必要な小規模チーム。
  • QNAP が提供していないカーネルモジュールが必要な、いじるのが好きな人。
  • Finder、rclone、davfs2 がすでに扱えるネットワークドライブに、ファイルのすべてのバージョンを残したい人。

動作要件

  • QTS 6.0 または QuTS hero 6.0 以降
  • x86_64 または ARM 64 ビットの QNAP NAS
  • アーキテクチャごとに 1 つのパッケージ。App Center からインストール

NAS を工房に。

Bucket & Code Server IDE をインストールし、サインインして、必要なモジュールをオンにします。

QNAP is a trademark of QNAP Systems, Inc. Bucket & Code Server IDE is made for QNAP NAS; it is not made or endorsed by QNAP.