-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
50 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,55 @@ | ||
# Magnito | ||
|
||
フロントエンドは client ディレクトリの [Next.js](https://nextjs.org/) 、バックエンドは server ディレクトリの [frourio](https://frourio.com/) で構築された TypeScript で一気通貫開発が可能なモノレポサービス | ||
|
||
最新のコミットによるデモ - https://solufa.github.io/next-frourio-starter/ | ||
|
||
## 開発手順 | ||
|
||
### Node.js のインストール | ||
|
||
ローカルマシンに直接インストールする | ||
|
||
https://nodejs.org/ja/ の左ボタン、LTS をダウンロードしてインストール | ||
|
||
### npm モジュールのインストール | ||
|
||
ルートとフロントとバックエンドそれぞれに package.json があるので 3 回インストールが必要 | ||
|
||
```sh | ||
$ npm i | ||
$ npm i --prefix client | ||
$ npm i --prefix server | ||
``` | ||
|
||
### 環境変数ファイルの作成 | ||
|
||
```sh | ||
$ cp client/.env.example client/.env | ||
$ cp server/.env.example server/.env | ||
``` | ||
|
||
### ミドルウェアのセットアップ | ||
|
||
```sh | ||
$ docker compose up -d | ||
<picture> | ||
<source media="(prefers-color-scheme: dark)" srcset="https://frouriojs.github.io/magnito/logos/icon-text-dark.svg"> | ||
<source media="(prefers-color-scheme: light)" srcset="https://frouriojs.github.io/magnito/logos/icon-text-light.svg"> | ||
<img alt="Magnito logo image" src="https://frouriojs.github.io/magnito/logos/icon-text-light.svg"> | ||
</picture> | ||
|
||
Amazon Cognito emulator for Amplify UI. | ||
|
||
## Images | ||
|
||
Docker Hub - https://hub.docker.com/r/frourio/magnito | ||
|
||
Amazon ECR Public Gallery - https://gallery.ecr.aws/frourio/magnito | ||
|
||
## Usage | ||
|
||
Docker compose | ||
|
||
```yml | ||
services: | ||
magnito: | ||
image: frourio/magnito:0.9.0 | ||
ports: | ||
- 5050:5050 # Cognito API | ||
- 5051:5051 # web interface | ||
environment: | ||
COGNITO_USER_POOL_ID: ap-northeast-1_example | ||
COGNITO_USER_POOL_CLIENT_ID: example-client-name | ||
ENV SMTP_HOST: inbucket | ||
ENV SMTP_PORT: 2500 | ||
ENV SMTP_USER: fake_mail_user | ||
ENV SMTP_PASS: fake_mail_password | ||
volumes: | ||
- magnito:/usr/src/app/data | ||
|
||
inbucket: | ||
image: inbucket/inbucket:3.0.3 | ||
ports: | ||
- 2500:2500 # SMTP | ||
- 9000:9000 # web interface | ||
volumes: | ||
- inbucket:/storage | ||
|
||
volumes: | ||
magnito: | ||
driver: local | ||
inbucket: | ||
driver: local | ||
``` | ||
### 開発サーバー起動 | ||
|
||
次回以降は以下のコマンドだけで開発できる | ||
|
||
```sh | ||
$ npm run notios | ||
``` | ||
|
||
Web ブラウザで http://localhost:5051 を開く | ||
|
||
開発時のターミナル表示は [notios](https://github.com/frouriojs/notios) で制御している | ||
|
||
[Node.js モノレポ開発のターミナルログ混雑解消のための新作 CLI ツール notios](https://zenn.dev/luma/articles/nodejs-new-cli-tool-notios) | ||
|
||
閉じるときは `Ctrl + C` を 2 回連続で入力 | ||
|
||
#### SQLite UI | ||
|
||
```sh | ||
$ cd server | ||
$ npx prisma studio | ||
``` | ||
|
||
### SMTPサーバー | ||
|
||
Docker の Inbucket が SMTP サーバーのスタブを提供している | ||
|
||
http://localhost:9000/ | ||
### SMTP Server UI | ||
serverからsendMailするとInbucketヘッダー中央の「Recent Mailboxes」に仮想メールが届く | ||
[Inbucket](https://inbucket.org) - http://localhost:9000/ |