Smartstoreは、ASP.NET Core 10とEntity Framework Core 10で構築されたオープンソースのオールインワンECプラットフォームです。マルチ店舗・多言語・多通貨に対応し、カタログ管理からCMS、決済、配送まで一式を備えています。モジュール型アーキテクチャにより機能追加やテーマ変更を柔軟に行える設計です。
リポジトリは`src/Smartstore.Web`を中心に、モジュール(プラグイン)・テーマ・フレームワーク層が分離された構成です。ビルドはNuke(`src/Smartstore.Build`)が担い、`Build.cs`にClean・Restore・Compile・Deploy・SBOM生成などのターゲットが定義されています。実行時はASP.NET Core上でEF CoreがMySQL・PostgreSQL・SQL Serverいずれかに接続し、`docker-compose.yml`や`Dockerfile`でコンテナ化して起動できます。Dockerfileは`dotnet publish`でリリースビルドを作成し、`wkhtmltopdf`をインストールしてPDF出力にも対応します。テーマは`Flex`など`Themes`フォルダに配置され、`.dockerignore`の除外設定からモジュールやテーマがランタイムで動的に配置される構造だとわかります。
- STEP 01
`docker-compose.yml`を使い`docker compose up`を実行すると、Webコンテナとmysqlコンテナが起動し、初回はDBボリューム作成とマイグレーション待ちの時間がかかります。
- STEP 02
初回アクセス時にはASP.NET Coreのセットアップウィザードが表示され、DB接続情報や店舗名などの初期設定を入力する画面に遭遇します。
- STEP 03
ソースからビルドする場合は`build.cmd`または`build.sh`を叩くとNukeが復元とコンパイルを行い、`src/Smartstore.Web/Modules`ディレクトリが作られるのを確認できます。
- STEP 04
管理画面(バックエンド)にログインすると、テーマ設定・モジュール管理・ルールビルダーなど多数の管理メニューが表示され、機能の多さに圧倒されます。
- STEP 05
PDF出力機能を試すと、Dockerイメージ内に`wkhtmltopdf`が事前インストールされているため追加設定なしで注文書PDFが生成されます。
手元には稼働するECストアのフロントエンドとバックエンド管理画面が残り、商品登録・注文処理・多言語設定などをすぐに試せる状態になります。Dockerでの起動ならイメージとコンテナがそのまま資産として残り、ソースビルドなら`build/artifacts`配下に公開用パッケージとSBOMファイルが生成されます。
`docker-compose.yml`のDBパスワードが平文でファイルに直書きされているため、本番運用前には必ず変更が必要です。
初回起動時のDBマイグレーションやモジュール読み込みに時間がかかるため、すぐに画面が表示されるわけではありません。
Windows向けのボリュームパス(`D:/mount/...`)がサンプルに含まれているため、Linux/macOS環境ではパス修正が必須です。
ASP.NET Core 10・EF Core 10という比較的新しいランタイム前提のため、対応する.NET SDKのインストールが事前に必要です。
自前でECサイトを構築したい中〜大規模事業者や、.NET系スタックに慣れた開発チームが、多言語・多店舗要件を持つ場合に向いています。ビルド定義(Nuke)、Dockerfile、docker-compose、開発者向けドキュメント(dev-docs配下の多数のガイド)が揃っており、実運用を想定した構造であることは読み取れます。ただし実際のDBパスワード管理やパス調整など環境依存の手直しは避けられないため、導入前にdocker-compose.ymlの中身を必ず確認することをお勧めします。