🤗
ラズパイを使ってチープなサイトを公開する
ラズパイをサーバーとして使いチープなサイトを公開する
安くて低性能なPCで遊ぶ
開発環境
ハードウェの環境
- MacBook Air M1
- ラズベリーパイ 3 model B V1.2
- メルカリで4,000円で買った
- 有線のマウス
- ハードオフで500円で買った
- バッファローの有線キーボード
- ビックカメラで1,000円で買った
- LAZOSのマイクロSDカード16GB
- ハードオフで600円で買った
- LAZOSのマイクロSDカードリーダー
- (確か)ハードオフで1,000円で買った
ソフトウェアの環境
- OSはRaspberry Pi OS Lite (64-bit)
- フルバージョンで32GBとかを公式が推奨しているが、Liteは8GB以上を推奨してる
まずはラズパイにRaspberry Pi OSを書き込む
- 公式サイトでRaspberry Pi Imagerをインストールする
- Raspberry Pi Imagerのアプリケーションを起動
- 各データを入力
- Imagerで選択
- Deviceはラズベリーパイ 3を選択
- OSはRaspberry Pi OS Lite (64-bit)を選択
- Storageは接続しているAZOSのマイクロSDカードを選択
- hostnameは任意で入力。usernameとpasswordも然り
- Wi-Fiは自宅のSSIDとパスワード入力
- SSHはEnable SSHをON
- OSが書き込まれてFINISHになるまで待機
- FINISHしたら、マイクロSDカードをmacから取り出す
SSH接続
- マイクロSDカードをラズパイに差し込む
- ラズパイに電源を入れる(keyringパスワードを設定した)


- 日本語入力ができるようにする
- Language:ja(japanese)
- Caountry:JP(Japan)
- Character Set:UTF-8
- だけ設定した。完了して再起動が自動で走った
- けど、日本が入力できない
- ので、
sudo apt updateしてsudo apt upgradeで更新した - 空き容量に不安があるので
df -hで容量を確認-
/dev/piyo 14G 6.4G使用 6.9G空き 48%- 16GのマイクロSDカードを買ってるのに14GBしかない...🤔
- 一気に残り容量が半分になったけど、これでいけるところまで行く
-
-
sudo rebootで再起動- まだ日本語入力できない、半角/全角が機能しない
- 調べながら色々やってメモるの忘れた
- とりあえずdone
-
sudo systemctl statys sshでラズパイOSにSSH可能か設定を確認する-
Active: active (running)の表記があればSSH可能な状態
-
-
hostname -Iでホスト名を確認 -
ssh piyopiyo@000.000.0.00を入力してパスワードを入力- これは作業用のmacで作業
SSH成功、おけまる
$ df -h *
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/piyo 14G 6.2G 7.1G 47% /
残りの容量も気にしながら進める
基本操作メモ
- ラズパイ起動。電源を入れる
- MacからSSH
ssh piyopiyo@000.000.0.00
- 作業する
- SSHしてるターミナルで
exitを実行 - ラズパイのターミナルで
sudo shutdown newでシャットダウン- 再起動は
rebootかsudo rebootにする
- 再起動は
- ラズパイのLEDが消えたら差し抜く
基本的なアーキテクチャ
- ラズベリーパイを物理Webサーバーとして利用する
- OSはRaspberry Pi OS(Debianベース)
- ドメインはお名前.comで購入済み
- フロントエンドはreact
- バックエンドはRails
- データベースはMySQL
- HTTPS化は必須
- 無料のSSl証明書(Let's Encrypt)を登録
- ネットワーク構成
- CP/IP(ローカルIP)の固定、およびDDNS(ダイナミックDNS)の導入
- セキュリティ
- ファイアウォールは、UFWによるアクセス制限(80, 443, 作業用SSHのみ許可)
- SSHは、パスワードログイン禁止(公開鍵認証必須)、ポート番号変更
- バックアップ
- ソースコードはGithub
- DBは特に設定しない、これ割れてもいいので
- ログ構成
- googlebotのログだけは計測したい
次に作るもの
ゴール
ジャービスを自作する
バージョン1の体験
- 古いAndroidスマホに「ジャーヴィス!」と話かけると古いAndroidスマホが起動
- スマホのスピーカーから「ハイなんでしょう」とジャーヴィスの声(音声ファイル)を流す
- 「明日の天気は?」と問いかける
- 文字起こしをしてDBに保存
- Androidスマホにも文字起こしされたテキストを表示する
意図
- アセンブラを使う
- C言語を使う
- ソフトウェア以外の領域を触ってみる
開発ディレクトリ作成
- githubでリポジトリを作成
- SSH先して、開発ディレクトリを作成
-
mkdir -p ~/development- 開発ディレクトを作成
- 実作業をするmacにcloneする
-
- gitの有無を確認
git --version- 出力結果:git version 2.47.3
- たぶん問題なし
- SSH先のラズパイにもcloneする
git clone git@github.com:piyo/piyo.git-
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.と出力されたのでラズパイのSSH鍵を作成
- ラズパイのSSH鍵を作成
-
ls -laでディレクトリの中身を確認 - `ssh-keygen -t ed25519 -C "you@example.com"
- 質問へは全てEnter
-
ls -la ~/.sshでsshのファイルが作れられてたらOK
-
- 公開鍵を表示
cat ~/.ssh/id_ed25519.pub- 出力された長い1行をコピー
- Githubに登録
- ブラウザのgithubのsettingページに移動
- SSH keysのNew SSH Keyをクリック
- titleを入力して、先ほどcatで出力させた長い1行をペースト
- Add SSH Keyのボタン(save)をクリックして登録
- 接続テスト
- SSHしてるターミナルで
ssh -T git@github.comを実行 -
Hi yourname! You've successfully authenticated,と表示されたらOK
- SSHしてるターミナルで
- 改めて、cloneする
git clone git@github.com:piyo/piyo.git- 成功したら、
cdで移動 -
git statusをして、On branch main, No commits yetと出力されたらOK、問題なし
リポジトの初期設定をする
- Initial commitする
-
pwdで作成するサイトのディレクトリにいることを確認 nano README.md- 適当に記載
- Ctrl+O
- Enter
- Ctrl+X
- これで保存されて脱出できる
-
git statusでUntracked fileにはREADME.mdだけあることを把握 git add README.md-
git commit -m "Initial commit"-
Please tell me who you areと聞かれたら、作業者を登録するgit config --global user.name "name"git config --global user.email "mail"git config --global --list- もう一度、
git commit -m "Initial commit"
-
-
git push -u origin mainする
-
-
.gitignoreを作るnano .gitignore- お好きに記載
- 適当に記載
- Ctrl+O
- Enter
- Ctrl+X
- これで保存されて脱出できる
Railsを導入する
- 現状把握
ruby -vrails -vbundle -v- を実行して、全部コマンドがありません...まぁ予想通り...
Discussion