2026年6月29日月曜日

Nginx インストール&設定

# systemctl stop httpd
# systemctl disable httpd
# dnf install -y nginx
# systemctl start nginx
# systemctl enable nginx
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --reload
# vi /etc/nginx/conf.d/00_secureauth.conf  <<  __EOF__
server {
    listen 80;
    server_name your_domain_or_ip; # サーバーのIPアドレスまたはドメイン名

    # 1. Django (Gunicorn) へのルーティング
    location /api/ {
        proxy_pass http://192.168.1.198:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    # 2. Djangoの静的ファイル (管理画面用など)
    location /static/ {
        alias /home/takahab/Make/DjangoNextAuth/backend/static/;
    }
    # 3. Next.js へのルーティング
    location / {
        proxy_pass http://192.168.1.198:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
__EOF__

# nginx -t
# systemctl restart nginx
# setsebool -P httpd_can_network_connect 1

# systemctl restart nginx

【本番起動】

# PM2をグローバルにインストール
# npm install -g pm2

# Next.jsのプロジェクトディレクトリに移動
$ cd /home/takahab/Make/DjangoNextAuth/frontend

# PM2でNext.jsを起動(名前を "nextjs-app" とする)
$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000

# サーバー起動時にPM2自体を自動起動するコマンドを生成
$ pm2 startup systemd

表示されたコマンドをコピペしてrootで実行。
# sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u takahab --hp /home/takahab
# su - takahab
pm2 save

$ pm2 start

$ cd /home/takahab/Make/DjangoNextAuth/backend
$ . ./env
$ pip install gunicorn
$ sudo vi /etc/systemd/system/gunicorn.service << __EOF__
[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=nginx
Group=nginx
WorkingDirectory=/var/www/DjangoNextAuth/backend
Environment="PYTHONPATH=/var/www/DjangoNextAuth/.venv/lib/python3.14/site-packages"
ExecStart=/usr/bin/python3.14 /var/www/DjangoNextAuth/.venv/bin/gunicorn \
          --workers 3 \
          --bind 127.0.0.1:8000 \
          Config.wsgi:application

[Install]
WantedBy=multi-user.target
__EOF__

# systemctl daemon-reload
# systemctl restart gunicorn
# systemctl status gunicorn


※Djangoでエラーの場合、
$ . ./env
手動で実行してエラーを確認。
$ ../.venv/bin/gunicorn --bind 127.0.0.1:8000 Config.wsgi:application

# semanage fcontext -a -t bin_t "/home/takahab/Make/DjangoNextAuth/\.venv/bin(/.*)?"
# semanage fcontext -a -t httpd_sys_content_t "/home/takahab/Make/DjangoNextAuth/backend(/.*)?"
restorecon -R -v /home/takahab/Make/DjangoNextAuth/

semanage fcontext -a -t bin_t "/home/takahab/Make/DjangoNextAuth/.venv/bin(/.*)?"



※Next.jsでエラーの場合。
$ pm2 delete all
$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000
$ pm2 save

$ pm2 delete all
[PM2][WARN] No process found
(.venv) [takahab@rocky92 frontend]$ pm2 status
┌────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
└────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
host metrics | cpu: 2.5% | ram usage: 22.7% | enp5s0: ⇓ 0.005mb/s ⇑ 0.007mb/s drop 40/min | disk: ⇓ 0.014mb/s ⇑ 0.308mb/s /m2_2 75.67% /m2_1 65.91% /boot 61.14% |
(.venv) [takahab@rocky92 frontend]$ pm2 start npm --name "nextjs-app" -- run start -- -p 3000
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0  │ nextjs-app    │ default     │ N/A     │ fork    │ 71292    │ 0s     │ 0    │ online    │ 0%       │ 14.0mb   │ takahab  │ disabled │
└────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
host metrics | cpu: 0.5% | ram usage: 22.6% | enp5s0: ⇓ 0.004mb/s ⇑ 0.006mb/s drop 44/min | disk: ⇓ 0mb/s ⇑ 0.602mb/s /m2_2 75.67% /m2_1 65.91% /boot 61.14% |
(.venv) [takahab@rocky92 frontend]$ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/takahab/.pm2/dump.pm2

 
















2026年6月25日木曜日

ソーシャルアカウント認証の実装

【メール送信】
https://mailtrap.io/signin


セキュリティとログイン ->2段階認証プロセス->   有効
検索まどから「アプリ パスワード」検索
アプリ名を入力

 54 #----------------------------------------
 55 #  GMAIL ACCOUNT    Free 500通まで     
 56 #----------------------------------------
 57 ENV_EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
 58 ENV_EMAIL_HOST='smtp.googlemail.com'
 59 ENV_EMAIL_PORT='587'
 60 ENV_EMAIL_USE_TLS='True'
 61 ENV_EMAIL_HOST_USER='xxxxxx@gmail.com'
 62 ENV_EMAIL_HOST_PASSWORD='xxxx xxxx xxxx xxxx'
 63 ENV_DEFAULT_FROM_EMAIL='XXXXXXX<noreply@secureauth.com>'
 64 ENV_DEFAULT_FROM_EMAIL='xxxxxx@gmail.com'


ソーシャルアカウント認証

【Google Cloud Console】https://console.cloud.google.com/welcome

左上3本線から

APIサービスー>認証情報

OAuth 2.0 クライアント ID
アプリ情報

 ・プロジェクトの構成

・アプリ名
・ユーザサポートメール
対象
外部
連絡先

認証情報を作成
OAuthクライアントID
アプリケーションの種類:ウェブアプリケーション

名前:SecureAuth2026

URL1:http://localhost:3000















【GITHUB】


作成
GitHub の右上アイコン ➔ Settings ➔ 左下の Developer Settings ➔ OAuth Apps

New OAuth App

Something users will recognize and trust.

The full URL to your application homepage.

This is displayed to all users of your application.

http://localhost:3000/auth/github-callback

Your application’s callback URL. Read our OAuth documentation for more information.



【X】

































【facebook】

https://developers.facebook.com/apps/
アプリ設定ー>ベーシック

https必須( httpは受けつけないもよう)






















【Django+Next.js HTTPSデバック】

■Django

pip install django-extensions Werkzeug

・settings.py
INSTALLED_APPS = [
...
"django_extensions",
]

CORS_ALLOWED_ORIGINS
CSRF_TRUSTED_ORIGINS
CORS_ALLOW_CREDENTIALS

・起動
python manage.py runserver_plus --cert-file cert.crt


sudo cp cert.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust


■next.js

npx next dev --experimental-https










2026年6月20日土曜日

GITHUBの使い方

======================================================================
                    GIT CHEAT SHEET (日常開発用)
======================================================================
【 1. 毎日の基本ルーティン(保存と送信) 】
  今の状態を確認する                        : git status
  すべての変更をリストに乗せる  : git add .
  メッセージ付きで記録する           : git commit -m "メッセージ内容"
  GitHubへアップロードする          : git push origin main
  GitHubから最新を取り込む          : git pull origin main
----------------------------------------------------------------------
【 2. ブランチの操作(新機能の開発など) 】
  ブランチの一覧を見る                     : git branch
  新しいブランチを作って移る        : git switch -c feature/作業名
  既存のブランチに切り替える        : git switch ブランチ名
  別のブランチを今の場所に合体    : git merge ブランチ名
  使い終わったブランチを消す        : git branch -d ブランチ名
----------------------------------------------------------------------
【 3. 履歴の確認と変更の確認 】
  これまでの履歴を一覧する              : git log
  履歴を1行ずつコンパクトに見る   : git log --oneline
  まだ add していない差分を見る    : git diff
----------------------------------------------------------------------
【 4. ピンチのとき(元に戻す・やり直し) 】
  ファイルの変更をすべて捨てる       : git restore ファイル名
  直前のコミットだけを取り消す       : git reset --soft HEAD~1
  コミットのメッセージを直す            : git commit --amend -m "新しいメッセージ"
----------------------------------------------------------------------
【 5. 最初の準備と設定の確認 】
  新しくGitの管理を始める                    : git init
  GitHubのリポジトリをコピー           : git clone URL
  GitHubの住所(URL)を登録する        : git remote add origin URL
  登録されているURLを確認する        : git remote -v
  登録されているURLを変更する        : git remote set-url origin URL
=============================================================


【TOKEN発行・保持】
GIT コンソール画面より、

Settings->Developper settings->Personal access tokens->Tokens(classic) ー>Generatre New Tokenー>Generate New toke(classic) 
Note に記入
Expiration(有効期限設定)
Select scopes->repo
Generate token

git config --global credential.helper store
最初のPUSHで一回だけ入力

他にSSH公開鍵を設定する方法もある。

1. Webでレポジトリ作成

まず、GIT WEBで新しいレポジトリを作成してから、ローカルPCで以下のコマンドを実行。

メインブランチをつくってPUSH
git remote add origin https://github.com/MasanobuTakahashi/Study_NextJS
git branch -M main
git push -u origin main



🖥️ 実際のコマンドの流れ
🌿 役割に合わせて主に2種類のブランチを使い分ける。

main(メインブランチ)       # いつでも本番に公開できる状態。
feature/...(機能開発ブランチ)     # 新機能の追加や、バグの修正など
(例:feature/login-page や feature/fix-bug など)

1. 最新の main からブランチを作って切り替える
まずはベースとなる main ブランチを最新にしてから、新しい作業スペースを作る。

git switch main
git pull origin main
git switch -c feature/login

(※ git switch -c を使うと、ブランチの作成と切り替えが同時にできる)

2. ファイルを編集して、こまめに記録(コミット)する
コードを書き換えたら、進み具合に合わせて記録を残す。

git status
git add .                
git commit -m "ログイン画面のボタンを配置"

(※作業が終わるまで、この「add ➔ commit」を何度も繰り返す)

3. GitHubに自分のブランチをアップロードする
作業がすべて終わったら、GitHubへプッシュする。

git push -u origin develop

(※この後、GitHubのウェブ画面を開いて「プルリクエスト」を作成し、チームメンバーに確認する。)

4. 【合体後】手元の環境を最新に戻す。
GitHub上でOKが出て、無事に main へ合体(マージ)された後の手順です。
手元のパソコンを一度 main に戻して、合体された最新の状態をダウンロードします。

git switch main git pull origin main


5. 終わったブランチを削除する
役割が終わった古いブランチは、手元のパソコンからも削除して整理します。

git branch -d feature/login


■その他
・新しいURLに変更する。
git remote set-url origin https://github.com/MasanobuTakahashi/study_NextJS.git
git remote -v    #確認

🚀 1. 新しく始める(初期設定)
git init       # 今いるフォルダをGitの管理下に置く。最初に1回だけ実行。
git clone [URL]   # GitHubなどにあるリモートリポジトリをパソコンに丸ごとコピー。

💾 2. 変更を記録する(基本の形)
git status                         # 現在の状態を確認する。
git add                              # 保存するリスト(ステージ)に乗せ る。
※すべてのファイルを乗せるときは  git add . 
git commit -m "メッセージ"  # リストに乗せたファイルを、メッセージ付きでコミット。

🕒 3. 履歴を見る。
git log                        # これまでのコミット履歴を一覧で表示する。
git restore [ファイル名]   # ファイルを最後にコミットした状態に戻す。

🌿 4. 別の作業スペースを作る(ブランチ)
git branch                                                   # 今ある作業スペース(ブランチ)の一覧を表示する。
git switch [ブランチ名]         # 指定した作業スペースに切り替える。
git switch -c [新しいブランチ名]     # 新しく作りながら切り替える。

git merge [ブランチ名]                            # 別のブランチで作った変更を、今のブランチに合体。

☁️ 5. ネット上で共有する(リモート)
git remote add origin [URL]           # ローカルのGitとGitHubのリポジトリを紐付ける。
git push origin [ブランチ名]    # Localの内容を、GitHubへアップロード。
git pull origin [ブランチ名]       # GitHub側にある最新のデータを、Localにダウンロード&合体。

※ status ➔ add ➔ commit ➔ push 

2026年4月9日木曜日

keychron k8 max


 https://launcher.keychron.com/

$ sudo tee /etc/udev/rules.d/99-keychron.rules <<EOF

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0a83", MODE="0666"

EOF

$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

#setenforce 0
 https://launcher.keychron.com/

2026年4月8日水曜日

USキーボードでmozcを使う。Rocky Linux9.7 Gnome

 $ sudo dnf install ibus-mozc

$ rpm -qa | grep mozc
mozc-2.28.4950.102-7.el9.x86_64
ibus-mozc-2.28.4950.102-7.el9.x86_64
$ localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: jp
      X11 Layout: jp
$ sudo localectl set-keymap us
$ sudo localectl set-x11-keymap us
$ localectl status
$ ibus-setup
入力メソッド-> add -> 日本語-Mozc:あ
※一行のみ、他があれば削除
入力メソッド-> add -> 日本語-Mozc:あ->設定-> キー設定->カスタム->編集
Mozc 初期設定をエクスポートしたのち、下記変更分を追加してインポート。

DirectInput Ctrl Space  IMEOn
Precomposition  Ctrl Space  IMEOff
Composition Ctrl Space  IMEOff
Conversion  Ctrl Space  IMEOff
Precomposition  Ctrl j  Hiragana
Precomposition  Ctrl k  Katakana ibus-setup
Precomposition  Ctrl l  DirectInput
Precomposition  Space InsertSpace
Composition Space Convert
Conversion  Space ConvertNext
Precomposition  Shift Space IMEOff
Composition Shift Space Cancel
Conversion  Shift Space Cancel
Composition Ctrl n  ConvertNext
Conversion  Ctrl n  ConvertNext
Composition Ctrl p  ConvertPrev
Conversion  Ctrl p  ConvertPrev
Composition Ctrl g  Cancel
Conversion  Ctrl g  Cancel
Composition Ctrl h  Backspace
Precomposition  Ctrl h  Backspace

$ ibus restart







2026年3月28日土曜日

Rocky linux9.7 に最新版のgimpをインストール

 標準版のgimp を削除して、最新版のgimpをインストールする。

sudo dnf install flatpak

sudo flatpak remote-delete --force flathub
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak update
flatpak install flathub org.gimp.GIMP

【新アイコンが表示されない場合】

sudo dnf remove gimp

update-desktop-database ~/.local/share/applications
sudo update-desktop-database /var/lib/flatpak/exports/share/applications
logout

【ブラザースキャナの登録 Brother】
rpm -qa |grep bscan
rpm -e brscan4-0.4.11-1.x86_64 brscan-skey-0.3.2-0.x86_64
rpm -Uvh brscan4-0.4.9-1.x86_64.rpm
rpm -Uvh brscan-skey-0.3.4-0.x86_64.rpm
brsaneconfig4 -a name=DCP-J982N model=DCP-J982N ip=192.168.1.200

設定を消す場合。
# rm /etc/opt/brother/scanner/brscan4/brsanenetdevice4.cfg

# 登録の確認
brsaneconfig4 -q  # (または brsaneconfig5 -q)

# SANEが認識しているか確認
scanimage -L

firewall-cmd --permanent --add-port=54925/udp
firewall-cmd --permanent --add-port=54921/udp
firewall-cmd --permanent --add-port=161/udp
firewall-cmd --reload
systemctl start firewalld

※ダメなので、このホストを全部許可
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.200" accept'
firewall-cmd --reload


Nginx インストール&設定

# systemctl stop httpd # systemctl disable httpd # dnf install -y nginx # systemctl start nginx # systemctl enable nginx # firewall-cmd --pe...