2024年3月20日水曜日

raspberry pi 4 自宅サーバ(sinatra)公開メモ

 

【解決方法】You don’t have write permissions for the /var/lib/gems/2.7.0 directory【Ruby, Linux】

このページを参考にしました


RubyとSinatraではじめる Webアプリケーション開発の教科書
という書籍に沿っています

raspbery os 64bit

まずRubyを削除
$sudo apt remove ruby
システムをアップデート
$sudo apt update
$sudo apt upgrade

ruby をビルドするのに必要なものをインストール
$ sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev

rbenv をインストール
$ curl -sL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash -
パスを通す
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

rubyをインストール 
$rbenv install -l
で見、適当なバージョンをインストール

$rbenv install l 3.1.4

時間がかかる
2024-07-18追記
$rbenv global 3.1.4
作業ディレクトリ
$mkdir bbs
$vi Gemfile

公開してよいのかわかりませんが
怒られたら削除します

$tar zxvf bbs.tar.bz2

Gemfileを作る

ーーー
# frozen_string_literal: true

source "https://rubygems.org"
gem "sinatra"
gem "puma"
gem "rake"
gem "activerecord"
gem "sqlite3"
gem "activesupport" , "~> 7.1.3"
gem "rackup", "~> 2.1"   
ーーー

$gem install bundler
$bundle config set path vender/bundle
$bundle init
$bundle install
$sqlite3 bbs.db <  dbinit.sq3
$bundle exec ruby dbtest.rb -o 0.0.0.0 -e production

ルーターの設定(aterm)

aterm.me
ポートマッピング設定に行き
優先度
1
LAN側ホスト
192.168.10.111
などとRaspberry pi を指定する
変換対象ポート
1089
などと公開ポート
プログラムの公開ポート
4567   
指定する

これでなんとインターネットからアクセスできた
http://111.111.111.111(ipアドレス):1089/
どうやっても公開されず悩んだが  -e productionでうまくいった

不思議寺縁起の投票システムを作ろうと思っています
できれば公開したい

サニタイズ、セキュリティーの問題など怖さもあるが
なにかやった感があって嬉しかったので記事にしました

0 件のコメント:

コメントを投稿