Skip to content

bana118/banatech_laravel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banatech_laravel

PHP Laravel Node.js
Laravel_prod Http_status

ローカル開発

$ git clone https://github.com/bana118/banatech_laravel.git
$ cd banatech_laravel
$ touch database/database.sqlite3
$ cp .env.dev .env
$ composer install
$ php artisan key:generate
$ php artisan migrate
$ npm ci
$ npm run dev
$ php artisan serve

管理者アカウント作成

$ php artisan voyager:admin [email protected] --create

ローカル開発(VSCode Remote Containers)

Visual Studio CodeRemote - Containers 拡張を用いてコンテナ内で開発.
Windows,Mac などではファイル IO が遅いので注意.
VSCode の Remote Containers 拡張を用いてコンテナ内でこのリポジトリを開く.

$ git clone https://github.com/bana118/banatech_laravel.git
$ code banatech_laravel

コンテナ内で以下のコマンドを実行

# cp .env.dev .env
# composer install
# php artisan key:generate
# php artisan migrate
# npm ci
# npm run dev
# php artisan serve

デプロイ

docker のインストール

Install Docker Engine | Docker Documentation

注意!

docker run -v するとホスト側のディレクトリがコンテナ側のディレクトリを上書きします。public/uploaded ディレクトリや database.sqlite3 ファイルはうっかり消しかねないのでバックアップ必須です。.env などもホスト側のものが使用されかねないので注意が必要です。docker 内に入り.env の APP_KEY を確かめる必要があります。 そのときは docker 内に入り以下のコマンドを実行。

$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# composer install --optimize-autoloader --no-dev
# npm install
# npm run prod
# php artisan key:generate

http のみでデプロイ

$ cd
$ git clone https://github.com/bana118/banatech_laravel.git
$ cd banatech_laravel
$ touch database/database.sqlite3
$ cp .env.production .env
$ sudo chmod -R 777 storage
$ sudo chmod -R 777 bootstrap/cache
$ sudo chmod -R 777 database
$ sudo chmod -R 777 public
$ sudo chmod -R 777 resources
$ sudo chmod -R 777 scripts
$ sudo docker build -t banatech_laravel .
$ sudo docker run --name banatech -d -p 80:80 -p 443:443 -v ~:/root -v /etc/letsencrypt:/etc/letsencrypt banatech_laravel
$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# composer install --optimize-autoloader --no-dev
# npm ci
# npm run prod
# php artisan migrate
# php artisan voyager:admin [email protected] --create
# cp deploy/nginx-app.conf.temp /etc/nginx/sites-available/default
# supervisorctl restart nginx

letsencrypt で証明書取得

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install -y certbot
$ sudo certbot certonly --webroot -w ~/banatech_laravel/public -d example.com

メールアドレスの入力,規約の承諾,メール配信の有無の回答を行う.

https でデプロイ

$ cd
$ mkdir dhparam
$ openssl dhparam -out ~/dhparam/dhparam4096.pem 4096
$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# cp deploy/nginx-app.conf.prod /etc/nginx/sites-available/default
# supervisorctl restart nginx

letsencrypt 更新確認

$ sudo certbot renew --force-renew --dry-run --webroot-path ~/banatech_laravel/public

letsencrypt 自動更新

$ crontab -e

crontab に以下を追記

0 4 1 * * sudo certbot renew && sudo docker restart banatech

更新

git でpermissionの変更を無視する

$ git config core.filemode false
$ sudo git pull
$ sudo docker restart banatech

必要に応じて

$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# composer install --optimize-autoloader --no-dev
# php artisan migrate
# npm ci
# npm run prod

docker 内確認

$ sudo docker exec -i -t banatech bash

ブログ記事のHTMLファイル作成

public/uploaded/article 以下にあるMarkdownファイルをHTMLファイルに変換

$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# node scripts/generate-article.js

npm run prodがサーバーで実行できないとき

サーバーの性能などの問題でnpm run prodが実行できないときはローカルでビルドし,ビルド済みのファイルをサーバーにsshでアップロードする.

$ ./scripts/uploadjs.sh

About

ポートフォリオのソースコードv2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published