Open Source · Self-Hosted · Docker-Powered

コマンドひとつで、サーバースタックを丸ごと構築。
Just brew it!

17のDockerベースサービスを設定・管理するインタラクティブな7ステップCLIウィザードとWebダッシュボード。自分だけのホームサーバーを構築し、ホスティング費用を節約し、データを自分で所有しましょう。ゼロから完全なサーバー構成まで数分で完了 — クラウドサブスクリプション不要。

  • Gitサーバー (Gitea)
  • Webサーバー (Nginx / Traefik)
  • メディアサーバー (Jellyfin)
  • ランタイムスタック (Go, Java, Kotlin, Node, Python, Rust, React)
  • データベース (PostgreSQL, SQLite, MySQL)
  • クラウドストレージ (Nextcloud)
  • モニタリング (Grafana, Prometheus) (Pro)
  • CI/CDパイプライン
  • 簡単ドメイン接続
brewnet ~ terminal
$|

TL;DR

  • Brewnetは、単一コマンドで17のDockerサービス(Gitea、Nginx、Jellyfin、PostgreSQL、Nextcloud、Grafanaなど)をデプロイする無料オープンソースCLIツールです。
  • LinuxとmacOSに対応。npm install -g @brewnet/cli またはソースビルドでインストール可能。
  • 主な機能:7ステップ対話式セットアップウィザード、Web管理ダッシュボード、16アプリデプロイスタック、Cloudflare Tunnelカスタムドメイン接続、自動バックアップ/リストア。
  • クラウドサブスクリプションやホスティング費用なし。自前のハードウェアですべてをセルフホスティング。
17Docker完全分離アプリ&クリーンアンインストール
6+16対応言語&フレームワークランタイム
3インストールからドメイン接続まで3ステップ
100%オープンソース CLI + Dashboard
課題

複雑なホスティング設定。予測できないコスト。
Brewnetが解決します。

Webサーバー、Git、DB、メディア&ファイルサーバー — すべて含まれています。コスト:¥0。簡単セットアップウィザード、1分でドメイン接続!データ収集なし。

ランタイム設定は悪夢

Go, Java, Kotlin, Node, Python, Rust, React — 各ランタイムごとに独自のバージョンマネージャー、依存関係、競合があります。Brewnetは完全な分離環境でワンクリックですべて解決します。

セキュリティは後回し

SSH強化、ファイアウォールルール、SSL証明書、認証情報管理 — ほとんどのクラウドセットアップは複雑です。BrewnetはCloudflare Tunnelですべてのセキュリティ問題を一度に解決します。

きれいに削除する方法がない

ほとんどのクラウドプラットフォームは、何度削除しても完全にクリーンアップするのが困難です。Brewnetは brewnet uninstall 一発ですべて削除。設定ファイル、コンテナ、ボリュームの残骸なし。

主な機能

セルフホスティングに必要な すべてをひとつに

クラウドホスティング費用はもう不要。コマンドひとつでデプロイ。
ドメイン接続、ビルド、デプロイを一度に。

ワンクリックサーバースタック

Go, Java, Kotlin, Node, Python, Rust, React — ランタイムを選んでコマンドひとつでプロダクション対応Webサーバーを起動。手動の依存関係設定もバージョン競合もなし。

デフォルトで安全

SSH鍵認証のみ、rootログイン無効化、自動ファイアウォール設定、全サービスにわたる暗号化された認証情報伝播。

クリーンアンインストール&ロールバック

すべての変更を追跡。実行前に--dry-runで削除対象をプレビュー。完全なバックアップ&リストア、ワンコマンドロールバック、アンインストール後にコンテナ・ボリューム・設定の残骸なし。

Cloudflare Tunnel連携

ポートフォワーディング不要。NAT/CGNAT環境でも自動HTTPSとDDoS保護。Cloudflareトークンを貼り付けるだけでトンネル、インバウンドルール、DNSが自動設定。

Dockerオーケストレーション

最大17サービスに対して完全なコンテナ分離でdocker-compose.ymlを自動生成。各サービスは独自のネットワークサンドボックスで依存関係の順序付け、ヘルスチェック、安全な認証情報伝播と共に実行。

Slack & Telegram通知 (Pro)

サービスステータス、デプロイ、エラーのリアルタイムアラートをSlackまたはTelegramで直接受信。データベース不要。Webhook URLまたはボットトークンを貼り付けるだけで通知開始。

ビルド、デプロイ&接続

サーバー設定は始まりにすぎません。アプリ実行、カスタムドメイン接続、ビルド自動化、ワンコマンドデプロイ、全体モニタリング — DevOpsチームなしで完全なDevOpsライフサイクル。

クロスプラットフォーム対応

macOS 12+およびUbuntu 20.04+を公式サポート。BrewnetがOSを自動検出し、パッケージマネージャーを調整、プラットフォーム固有の違いを処理。

Webダッシュボード&モニタリング (Pro)

ブラウザベースのセットアップウィザード、リアルタイムサービスモニタリング、Webターミナル、サーバースタック全体を管理するビジュアルインターフェース。

使い方

簡単3ステップで すぐに始めましょう

インストールからサーバー起動まで、CLIウィザードがすべて処理します。

01

Brewnetをインストール

curl(推奨)またはnpmでインストール。Node.js 20+とDocker 27+が必要です。macOS 12+およびUbuntu 20.04+に対応。

curl -fsSL https://raw.githubusercontent.com/claude-code-expert/brewnet/main/install.sh | bash
02

ウィザードを実行

対話式7ステップウィザードが案内します:システムチェック、プロジェクト設定、管理者アカウント&サーバー構成、開発スタック&ランタイム、ドメイン&ネットワーク、確認、生成&デプロイ。

brewnet init
03

サービスを管理

簡単なコマンドでサービスの追加、削除、開始、停止、モニタリング。ログ確認、ドメイン管理、アプリデプロイも可能。

brewnet status

CLIコマンド

  • brewnet init対話式セットアップウィザード
  • brewnet add <service>サービスを追加
  • brewnet remove <service>サービスを削除
  • brewnet up / down全サービス開始 / 停止
  • brewnet statusサービス状態を表示
  • brewnet logs [service]ログを表示
  • brewnet adminWebダッシュボードを開く
  • brewnet domain connectカスタムドメインを接続
  • brewnet domain tunnelCloudflare Tunnelを管理
  • brewnet backupバックアップを作成
  • brewnet restore <id>バックアップからリストア
  • brewnet create-app <name>新しいアプリをスキャフォールド
  • brewnet shutdown全サービスを安全に停止
  • brewnet uninstall全サービスとデータを削除
サービス

サーバーに必要なすべてを、 ひとつのプラットフォームで

17のDockerサービスをすぐにデプロイ。

WEB

Webサーバー

Traefik, Nginx, Caddy

GIT

Gitサーバー

Gitea SSH接続対応(ポート3022)

DB

データベース

PostgreSQL, MySQL, SQLite

CACHE

キャッシュ (Pro)

Redis, Valkey

FILE

ファイルストレージ

Nextcloud, MinIO (S3)

MEDIA

メディアサーバー

Jellyfinストリーミング

SSH

SSHサーバー (Pro)

OpenSSH、鍵認証、SFTP

MAIL

メールサーバー (Pro)

docker-mailserver (SMTP/IMAP)

TUNNEL

Cloudflare Tunnel

自動HTTPS、DDoS保護

FB

FileBrowser

Webベースのファイル管理UI

DEV

開発スタック

Go, Java, Kotlin, Node, Python, Rust, React — 16フレームワークボイラープレート

SETUP

簡単インストール&ドメイン

ワンコマンドセットアップ、カスタムドメイン&Cloudflare連携

インストールガイド

数分で 始めましょう

インストールから本番運用まで、3分で十分です。

システム要件

Brewnetシステム要件
項目最小推奨
OSmacOS 12+ / Ubuntu 20.04+最新安定版
Node.js20+22 LTS
Docker27+最新版(未インストール時は自動インストール)
RAM2 GB4 GB+
ディスク20 GB50 GB+(メディア使用時)

インストール前にDockerは不要です — brewnet initが自動検出してインストールします。

01

npm(推奨)

npmパッケージマネージャーでグローバルインストール。

Step 1

npm install -g @brewnet/cli

Step 2

brewnet init
02

curl

すべてを処理するワンライナーインストールスクリプト。

Step 1

curl -fsSL https://raw.githubusercontent.com/claude-code-expert/brewnet/main/install.sh | bash

Step 2

brewnet init

7ステップインストールウィザード

1
システムチェック
OS、Docker、ポート(80/443)、ディスク、RAM検証
2
プロジェクト設定
プロジェクト名、パス、インストールタイプ(全体/部分)
3
管理者&サーバー
管理者アカウント、Web/ファイル/DB/メディア/SSH選択
4
開発スタック
バックエンド言語、フレームワーク、フロントエンド、FileBrowser(任意)
5
ドメイン&ネットワーク
ローカル(LAN)またはCloudflare Tunnel、メールサーバー(条件付き)
6
レビュー&確認
全構成レビュー、認証情報伝播先、リソース見積もり
7
生成&デプロイ
docker-compose.yml生成、イメージプル、コンテナ起動、接続確認
FAQ

よくある 質問

インストール・削除

2つの方法があります:

# 方法1: npm(推奨)
npm install -g @brewnet/cli

# 方法2: ソースからビルド
curl -fsSL https://raw.githubusercontent.com/claude-code-expert/brewnet/main/install.sh | bash

インストール後、brewnet initでサーバーセットアップを開始します。

# npmでインストールした場合
npm update -g @brewnet/cli

# curlでインストールした場合(同じコマンドを再実行)
curl -fsSL https://raw.githubusercontent.com/claude-code-expert/brewnet/main/install.sh | bash
brewnet uninstall            # 対話形式でアンインストール
brewnet uninstall --force    # 確認なしでアンインストール
brewnet uninstall --keep-data    # Dockerボリューム(DBなど)を保持
brewnet uninstall --keep-config  # 設定ファイルを保持、コンテナのみ削除

削除対象: Dockerコンテナ、ネットワーク、プロジェクトディレクトリ、~/.brewnet/projects/メタデータ

CLIバイナリ自体を削除するには:

# npmでインストールした場合
npm uninstall -g @brewnet/cli

# curlでインストールした場合
sudo rm /usr/local/bin/brewnet
rm -rf ~/.brewnet/source
brewnet up                  # すべてのサービスを起動
brewnet down                # すべてのサービスを停止
brewnet down --volumes      # 停止 + データ削除
brewnet status              # 全体のステータスを確認
brewnet logs [service]      # サービスログを確認

brewnet status --jsonでJSON形式の出力も可能です。

使用・運用

brewnet admin   # http://localhost:8088 を自動で開きます

--port 9090でポートを変更できます。--foregroundでデバッグモードで実行します。

brewnet create-app my-app                    # 対話形式で選択
brewnet create-app my-app --stack go-gin     # スタックを指定
brewnet create-app my-app --database postgres # データベースを指定

16種類のスタックに対応: Node.js (Express, NestJS, Next.js), Python (FastAPI, Flask, Django), Go (Gin, Echo, Fiber), Rust (Actix-web, Axum), Java (Spring), Kotlin (Spring Boot, Ktor)

brewnet domain connect my-app --domain api.example.com
brewnet domain tunnel status    # トンネルの状態を確認
brewnet domain tunnel restart   # トンネルを再起動

Cloudflare APIトークン(Zone:Read、DNS:Edit、Tunnel:Edit権限)が必要です。

いいえ。すべてのコンテナはrestart: unless-stoppedポリシーで設定されており、再起動後にDockerが起動すると自動的に復旧します。

ただし、brewnet downで手動で停止した場合、再起動後も停止状態のままです。Docker Desktop(macOS)では、Settings → General → "Start Docker Desktop when you sign in"をチェックしてください。

brewnet backup              # バックアップを作成
brewnet backup --list       # バックアップ一覧を確認
brewnet restore <backup-id>          # リストア
brewnet restore <backup-id> --force  # 確認なしでリストア

バックアップの保存先: ~/.brewnet/backups/(.tar.gz形式)

すべての設定とメタデータは~/.brewnet/に保存されます。プロジェクトディレクトリ(docker-compose.yml、アプリソースなど)は~/brewnet/<project-name>/にあります。

トラブルシューティング

BrewnetはDockerが見つからない場合、自動的にインストールを試みます。自動インストールに失敗した場合は、手動でインストールしてください。

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

インストール後、ログアウト/ログインしてdockerグループを適用してください。

別のプログラムがそのポートを使用しています。

# macOS/Linuxでポートを使用しているプロセスを確認
lsof -i :80
lsof -i :8088

# そのプロセスを停止するか、Brewnetの設定で別のポートを使用

よく競合するサービス: Apache、Nginx、他のDockerコンテナ

以下を順番に確認してください。

1. サービスが実行中か確認:

brewnet status

2. ポート8088が開いているか確認:

curl http://localhost:8088

3. Dockerコンテナの状態を確認:

docker ps -a | grep brewnet

4. サービスを再起動:

brewnet down && brewnet up

Quick TunnelのURLは一時的なもので、サーバーを再起動すると変更されます。これは正常な動作です。永続的なURLが必要な場合は、Named Tunnelに切り替えてください。

brewnet domain connect

以下を確認してください。

1. DNS伝播の待機: DNSレコードが伝播するまで数分かかる場合があります。

dig my-app.example.com CNAME

2. Cloudflareドメインの状態: ドメインがActive状態であることを確認(Pendingの場合、ネームサーバーの伝播待ち)

3. トンネルの状態を確認:

brewnet domain tunnel status

4. cloudflaredコンテナを再起動:

brewnet domain tunnel restart

Nextcloudのtrusted domains設定に現在のアクセスURLが登録されていない場合に発生します。Brewnetは自動的に*.trycloudflare.comをtrusted domainに追加しますが、カスタムドメインを使用する場合は追加の設定が必要になることがあります。

Jellyfinの初期設定URLは必ず以下の形式を使用してください。

http://<host>:8096/web/#/wizard/start

/web/#/homeパスを使用すると、初期設定ウィザードが表示されません。

デプロイ失敗の一般的な原因:

  • Dockerfileエラー: アプリディレクトリに有効なDockerfileが存在するか確認
  • ビルド依存関係の問題: Dockerビルドログで具体的なエラーを確認
brewnet logs <app-name>
  • ヘルスチェック失敗: アプリは起動するが/healthエンドポイントが応答しない場合
  • ポート不一致: アプリがリッスンしているポートと設定されたポートが異なる場合

Dockerイメージとコンテナはディスク容量を大量に消費する可能性があります。

# Dockerディスク使用量を確認
docker system df

# 未使用のイメージをクリーンアップ(注意: 必要なイメージも削除される可能性があります)
docker image prune

docker system pruneは未使用のリソースをすべて削除するため、注意して使用してください。重要なデータを含むボリュームは絶対に削除しないでください。

Traefikのstrip-prefix配下のGiteaは、X-Forwarded-Hostに基づいてサブパスのないURLを返す場合があります(例: /gitパスの欠落)。Brewnet内部ではauthedCloneUrl()が正しいURLを自動生成するため、Gitea APIから返されるclone_urlを直接使用しないでください。

ありがとうございます!24時間以内にご返信いたします。
お問い合わせ

開発者への連絡

ご質問がありますか?メッセージをお送りください。メールまたはTelegramでご返信いたします。

問題が発生しました。もう一度お試しいただくか、hello@brewnet.dev までメールをお送りください。