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