$ 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 CodeとRemote - 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
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
$ 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
$ 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
メールアドレスの入力,規約の承諾,メール配信の有無の回答を行う.
$ 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
$ sudo certbot renew --force-renew --dry-run --webroot-path ~/banatech_laravel/public
$ 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
$ sudo docker exec -i -t banatech bash
public/uploaded/article 以下にあるMarkdownファイルをHTMLファイルに変換
$ sudo docker exec -i -t banatech bash
# cd ~/banatech_laravel
# node scripts/generate-article.js
サーバーの性能などの問題でnpm run prod
が実行できないときはローカルでビルドし,ビルド済みのファイルをサーバーにsshでアップロードする.
$ ./scripts/uploadjs.sh