# Tissue

a.k.a. shikorism.net

シコリズムネットにて提供している夜のライフログサービスです。
(思想的には [shibafu528/SperMaster](https://github.com/shibafu528/SperMaster) の後継となります)

## 構成

- Laravel 6
- Bootstrap 4.4.1

## 実行環境

- PHP 7.3
- PostgreSQL 9.6

## 開発環境の構築

Docker を用いた開発環境の構築方法です。

1. `.env` ファイルを用意します。`.env.example` をコピーすることで用意ができます。

2. Docker イメージをビルドします

```
docker-compose build
```

3. Docker コンテナを起動します。

```
docker-compose up -d
```

4. Composer と yarn を使い必要なライブラリをインストールします。

```
docker-compose exec web composer install
docker-compose exec web yarn install
```

5. 暗号化キーの作成と、データベースのマイグレーションを行います。

```
docker-compose exec web php artisan key:generate
docker-compose exec web php artisan migrate
```

6. ファイルに書き込めるように権限を設定します。

```
docker-compose exec web chown -R www-data /var/www/html/storage
```

7. アセットをビルドします。

```
docker-compose exec web yarn dev
```


8. 最後に `.env` を読み込み直すために起動し直します。

```
docker-compose up -d
```

これで準備は完了です。Tissue が動いていれば `http://localhost:4545/` でアクセスができます。

## デバッグ実行

```
docker-compose -f docker-compose.yml -f docker-compose.debug.yml up -d
```

で起動することにより、DB のポート`5432`を開放してホストマシンから接続できるようになります。

## アセットのリアルタイムビルド
`yarn watch`を使うとソースファイルを監視して差分があると差分ビルドしてくれます。フロント開発時は活用しましょう。
```
docker-compose run --rm web yarn watch
```

もしファイル変更時に更新されない場合は`yarn watch-poll`を試してみてください。  
現在Docker環境でのHMRはサポートしてません。Docker外ならおそらく動くでしょう。  
その他詳しくはlaravel-mixのドキュメントなどを当たってください。

## phpunit によるテスト

変更をしたらPull Requestを投げる前にテストが通ることを確認してください。  
テストは以下のコマンドで実行できます。

```
docker-compose exec web composer test
```

## 環境構築上の諸注意

- 初版時点では、DB サーバとして PostgreSQL を使うよう .env ファイルを設定するくらいです。
  当分、PostgreSQL から変える気はないので専用 SQL 等を平気で使います。
