# デモの会社を手元で動かす：5 つのロールで試す OpenStock Japan のはじめかた

> OpenStock Japan を手元のパソコンで動かす手順です。Node.js と Docker があれば、5 つのコマンドで、架空の会社のデモデータが入った環境が動きます。管理者・メンバー・閲覧のみ・監査人・株主の 5 つのロールで、見え方の違いを試せます。

- 種類: ガイド
- 公開日: 2026年11月11日
- 対象: 導入を検討している方・開発者
- タグ: はじめかた、セットアップ、デモ、オープンソース、使い方
- URL: https://o-stock.org/guides/local-demo

OpenStock Japan は、自社で用意した環境で動かすオープンソースのウェブアプリです。まずは手元のパソコンで、架空の会社「架空テクノロジーズ株式会社」のデモデータが入った環境を動かしてみてください。株主名簿から株主ポータルまで、実際の画面を触って確かめられます。

## この記事の要点

- 必要なものは、Node.js 24 以上と Docker です
- 5 つのコマンドで、架空の会社のデモデータが入った環境が動きます
- 管理者・メンバー・閲覧のみ・監査人・株主の 5 つのアカウントで、ロールごとの見え方を試せます
- 本番で使うときは、デモデータを入れず、セットアップガイドの手順で始めます

## 用意するもの

- **Node.js 24 以上**
- **Docker**: ローカルの Supabase（データベース・認証・ファイルの保管）を動かすのに使います。
- **Git**: リポジトリを取得するのに使います。

AI の機能は、設定しなくても試せます。設定しない場合も、AI 以外の機能はすべて使えます。

## 5 つのコマンドで動かす

1. リポジトリを取得して依存を入れる:

```bash
git clone https://github.com/japan-gx-group/open-stock-japan.git
cd open-stock-japan
npm install
```

2. ローカルの Supabase を起動する:

```bash
npx supabase start
```

3. 表示された URL とキーを .env.local に設定する:

```bash
cp .env.example .env.local
```

4. デモデータ入りでデータベースを作る:

```bash
npm run db:reset:demo
```

5. 起動する:

```bash
npm run dev   # http://localhost:3100
```

- 初めて `npx supabase start` を実行するときは、イメージの取得に数分かかります。
- `.env.local` には、`npx supabase start` が表示した API URL・anon key・service_role key を設定します。
- `npm run db:reset:demo` は、データベースを作り直して、デモデータを入れます。

ブラウザで `http://localhost:3100` を開くと、ログインの画面が出ます。

![OpenStock Japan のログインの画面。左に「株式と会社の記録を、もっと確かに。」の見出しと製品の説明、右にメールアドレスとパスワードの欄、「ログイン状態を保持する」のチェック、ログインのボタン、ローカルで確かめるためのデモアカウントの案内がある](https://o-stock.org/screens/login.webp)

*画面: ログインの画面。デモのアカウントで入ります。*

## 5 つのロールで入る

デモデータには、ロールごとのアカウントが 1 つずつ入っています。同じ会社のデータが、ロールによってどう見えるかを比べられます。

表: デモのアカウント

| ロール | メールアドレス | できること |
| --- | --- | --- |
| 管理者 | `admin@example.com` | すべての操作。組織の設定、メンバーと株主の招待、AI の設定、監査ログの閲覧 |
| メンバー | `member@example.com` | 業務データ（株主・株式・会議・決算・文書）の閲覧と編集 |
| 閲覧のみ | `viewer@example.com` | 業務データの閲覧 |
| 監査人 | `audit@example.com` | 業務データと監査ログ・アカウントの棚卸しの閲覧。何も変えられません |
| 株主 | `shareholder@example.com` | 株主ポータルだけ。自分の保有状況と、公開されたお知らせ・決算・文書 |

パスワードは、5 つとも同じです。開発サーバで動かしているときは、ログインの画面の下に表示されます。[README](https://github.com/japan-gx-group/open-stock-japan#readme) の「はじめかた」にも書いてあります。

> **注意: デモのアカウントは本番に持ち込まないでください**
> デモデータのパスワードは、公開されている値です。本番の環境には、デモデータ（`supabase/seeds/demo/`）を入れないでください。

## 最初に見る画面

1. **ダッシュボード（管理者）** — `admin@example.com` で入ると、発行済株式総数・株主数・完全希釈化後の株式数と、期限の近い手続きが出ます。
2. **株主名簿と資本政策表（管理者）** — 株主名簿で基準日を変える、Excel に出力する、資本政策表で完全希釈化後の比率を見る、を試します。
3. **株主へのお知らせ（管理者・メンバー）** — 下書きの「2026年10月 月次レポート（下書き）」を選び、プレビューを確かめます。公開までの手順は、ガイド「[株主へのお知らせを、書いて届ける](https://o-stock.org/guides/shareholder-updates)」にあります。
4. **株主ポータル（株主）** — `shareholder@example.com` で入ると、株主ポータルだけが開きます。自分の保有状況と、公開されたお知らせ・決算情報・文書が見えます。
5. **監査ログ（監査人）** — `audit@example.com` で入ると、業務データと監査ログを見られますが、何も変えられません。「改ざんの検査」のタブで、検査を試せます。

![株主のアカウントで開いた株主ポータルのホーム。会社からのお知らせ、最新の決算情報、その株主の保有状況が並んでいる](https://o-stock.org/screens/portal-home.webp)

*画面: 株主のアカウントで入ったところ。社内の画面は開けず、株主ポータルだけが見えます。*

監査ログの仕組みは、ガイド「[監査ログは、書き換えをどう見つけるか](https://o-stock.org/guides/audit-log)」で説明しています。

## やり直すとき・空の状態で始めるとき

いろいろ試したあとで元に戻したいときは、もう一度デモデータを入れ直します。それまでに加えた変更は、すべて消えます。

デモデータを入れ直す:

```bash
npm run db:reset:demo
```

デモデータを入れずに、空の状態から始めることもできます。データベースを作り直したあと、`/signup` を開いて、最初の管理者と会社を登録します。この画面は、組織がまだ 1 つも無いときだけ開けます。

空の状態で始める:

```bash
npm run db:reset
npm run dev   # http://localhost:3100/signup を開く
```

## 本番で使うとき

本番では、Supabase のプロジェクトと、Next.js が動く環境（Vercel、AWS Amplify、自前のサーバなど）を用意します。1 つの環境で 1 社を管理する前提です。

- **デモデータを入れない。** 本番のデータベースには、マイグレーションだけを適用します。
- **初回の登録に、合言葉を設定する。** 本番では、最初の登録（`/signup`）に、環境変数 `SETUP_TOKEN`（16 文字以上の乱数）が必要です。公開してから最初の登録までのあいだに、別の人が先に登録して管理者になるのを防ぎます。
- **二要素認証を必須にする。** 株主名簿には個人情報が入ります。社内のアカウントには、二要素認証を必須にすることを勧めます。
- **バックアップを取る。** このツールは、バックアップを取りません。データベースと文書のファイルのバックアップは、運用する会社が行います。

くわしい手順は[セットアップガイド](https://github.com/japan-gx-group/open-stock-japan/blob/main/docs/setup-guide.md)に、本番に入れたあとで確かめることは「[システム監査への対応](https://github.com/japan-gx-group/open-stock-japan/blob/main/docs/system-audit.md)」にあります。

---

画面は、架空の会社のデモデータで撮影したものです。画面に出る期限・要件の判定は実務の目安であり、法的な助言・税務の助言ではありません。
