- 投稿日:
GitHub Pagesにドメインを紐付ける
# ルートドメイン, cnameだとメールが届かなくなるのでaliasを使う
alias @ example-user.github.io.
# サブドメイン
cname sub example-user.github.io.
メールサーバーは分けたい
メールサーバーがさくらインターネットの場合はこんな感じで行ける
mx xxx.xxx.xxx.xxx. 10
txt xxx.xxx.xxx.xxx. v=spf1 a:wwwXXXX.sakura.ne.jp mx ~all
a mail xxx.xxx.xxx.xxx
Let’s EncryptのDNS-01チャレンジの設定方法
- サブドメインのケースで書いてる
- ワイルドカード証明書の設定も確かできたはずだが、今ん所使える環境がないので書いてない
- @lycolia/value-domain-dns-cert-registerで自動更新できる
a sub xxx.xxx.xxx.xxx txt _acme-challenge.sub XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- 投稿日:
WindowsからのRDP接続を前提として主にSSDブート、リモート環境構築、Let's Encrypt、LAMP、Nodeの環境構築を行う
🌏 環境
Windows側の環境は省略
環境 | バージョン |
---|---|
Raspbian | 2020-05-27-raspios-buster-arm64 |
acme.sh | 2.8.7 |
PHP | 7.3.19-1 |
MariaDB | 10.3.23 |
phpMyAdmin | 5.0.2 |
Node.js | 10.21.0 |
npm | 5.8.0 |
Yarn | 1.22.4 |
📜 Raspberry Pi 4をUSB SSDからブートする
まずはここから
📞 リモート環境の構築
本体操作によるセットアップ
Headlessでできるならよしなにしてもいい気はする
- ラズパイにモニタ、キーボード、電源の通ったUSB-Cケーブルを接続
- 数分待つとセットアップウィザードが出てくるので適当に進める
- この途中でWiFiルーターに繋がるように設定しておく
- セットアップウィザードが終わったらWinKeyでメニューを出し設定> Raspberry Piの設定でSSHとVNCを有効
- シャットダウンする
- 電源USB以外を全部抜く
パッケージ情報の更新
sudo apt-get update
XRDPのインストール
Windows10からのRDP接続で現状操作不能だが一応書いておく
sudo apt-get install xrdp
- Windows 10のリモートデスクトップ接続から接続確認
SSHD設定
待受ポートの変更と認証方式の変更
待受ポートの変更と外部接続
sudo nano /etc/ssh/sshd_config
Port 22
を適当なポートに変更
認証方式の変更
- RLoginの機能で認証キーを生成
sudo nano /etc/ssh/sshd_config
で以下の設定に変更
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
~/.ssh/authorized_keys
を作る
mkdir ~/.ssh/
nano ~/.ssh/authorized_keys
- 公開鍵をコピーして
~/.ssh/authorized_keys
の一行目に貼り付ける sudo /etc/init.d/ssh restart
でSSHDを再起動- RLoginから再接続できたらOK
AndroidからSSH接続
- RLoginから秘密鍵を吐く
- JuiceSSHで秘密鍵を読む
- 終わり
Uncomplicated Firewallのインストールと設定
sudo apt install ufw
systemctl start ufw
sudo ufw enable
でFirewallを有効化SSHの穴をあける
sudo ufw allow SSHのポート番号
VNSの穴をあける
WindowsRDPからラズパイに接続
蹴られるので
cat /var/log/ufw.log
でログを見る蹴られている
DPT
が3389
だったのでsudo ufw allow 3389
- help.ubuntu.comによると
SPT
がSource Port、DPT
がDestination Portということらしい
- help.ubuntu.comによると
sudo ufw status numbered
で設定内容を確認SSHとRDPの接続確認
🔐 Let's Encrypt! DDNS Challenge
💡 LAMP環境構築
MariaDB, Apache, PHPのインストール
この環境でのApacheはphpMyAdminを動かすためだけに使用(外部公開しない)
sudo apt install -y mariadb-server apache2 php php-mysql libapache2-mod-php
MariaDBの設定
外部接続しないケース
sudo mysql_secure_installation
sudo mysql
CREATE USER 'id'@'localhost' IDENTIFIED BY 'pw';
GRANT ALL PRIVILEGES ON *.* TO 'id'@'localhost' WITH GRANT OPTION;
外部接続するケース
sudo mysql_secure_installation
sudo mysql
CREATE USER 'id'@'%' IDENTIFIED BY 'pw';
GRANT ALL PRIVILEGES ON *.* TO 'id'@'%' WITH GRANT OPTION;
quit
sudo nano /etc/mysql/my.cnf
で最終行に以下を追加
[mysqld]
skip-networking=0
skip-bind-address
Apacheの設定
sudo nano /etc/apache2/apache2.conf
で既存の設定をコメントアウトして適当にルートを追加
<Directory /home/pi/Public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
sudo nano /etc/apache2/sites-available/000-default.conf
も同様に変更
Apacheを動かすユーザーの変更
sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=www-data
をexport APACHE_RUN_USER=pi
に変えるsudo /etc/init.d/apache2 reload
でここまで反映
phpMyAdminのインストール
何故かaptでインストールできなくなってるので手動インストール。Windowsマシンからブラウザを利用して設定する
- https://www.phpmyadmin.net/ からphpMyAdminをダウンロード
- Apacheの公開ディレクトリに置く
sudo ufw allow 80
sudo ufw reload
http://192.168.xxx.xxx/phpmyadmin/setup
へアクセス- 適当に設定し、ダウンロードボタンを押すと設定ファイルが落ちてくるのでphpmyadminのルートに置く
http://192.168.xxx.xxx/phpmyadmin/setup
へアクセスしエラーになることを確認http://192.168.xxx.xxx/phpmyadmin
へアクセスし、MariaDBのIDPWでログインできることを確認- この環境では80番ポートは外部公開してないので問題ないが、外部公開する場合は.htaccessをおいてローカル以外のアクセスを蹴ると良い
📈 Node.jsのインストール
sudo apt install -y nodejs npm
sudo npm i -g n yarn
🎈 おまけ
- Gitのインストール
sudo apt install -y git
で2.20.1が入ることを確認(微妙に古い)
- composerのインストール
sudo apt install -y composer
で1.8.4が入ることを確認(かなり古い)
- 投稿日:
Pythonでデーモンを作ったので、その手順のメモ
確認環境
Env | Ver |
---|---|
OS | 2020-05-27-raspios-buster-arm64 |
Python | 3.7.3 |
python3-systemd | 234-2+b1 |
やったこと
- python-systemdのインストール
sudo apt-get install python-systemd python3-systemd
~/foo.py
を以下の内容で作成
from systemd import journal
journal.send('Hello world')
journal.send('Hello, again, world', FIELD2='Greetings!', FIELD3='Guten tag')
journal.send('Binary message', BINARY=b'\xde\xad\xbe\xef')
- 実行権限を付与する
chmod 755 ~/foo.py
- systemdの定義ファイルを次の要領で作成
sudo nano /etc/systemd/system/foo.service
として以下の内容を書く
[Unit]
Description = Foo
[Service]
ExecStart = python3 /home/pi/foo.py
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
- デーモンを有効化する
sudo systemctl enable foo.service
- デーモンを開始する
sudo systemctl start foo.service
- ジャーナルを見る
systemctl status roomenv.service
- なんかログが出てれば成功
ExecStart
にsudo
を書くと動かない(root権限で動作する模様)
- 投稿日:
Surface Pro 7 PUV-00027、Core i5 1035G4 MEM 8GBモデルのお話です。
タブレットというよりノートPCとしてみた方が適切かなと言う印象です。まぁ中身は単なるWindows 10なので当然と言えばそうですね。
今の所の印象としてはラグジュアリーで長時間駆動可能なミドルエンド2in1ノートといったところです。
タブレットとして
開発機クラスの存在を持ち運べると言う意味では悪くありません。しかし敢えてSurfaceである必要があるのかと言うと今のところ明確な回答は出せないです。いわゆるタブレットととしてみるとどうしても微妙と言わざるを得ないという部分が率直な感想。
悪くはない解像度
2736 x 1824の解像度を持つディスプレイと言う事で、この点においては魅力的ですが、12.3インチしかないため初期設定のスケーリング200%で運用しています。
ちょっと大きすぎるかも
これは利点でもあるのですが、今のところ運用する上で最大のボトルネックになっているところです。
満員電車で使うのは割と憚れるサイズです。使えない事は無くはないとは思いますが後述する重量との兼ね合いで難易度は高いと感じました。
とにかく重い
重量が800g弱あるため垂直にしても水平にしても斜めにしてもどう持っても重いです。片手で持つのは辛く、両手で持つと横持ちは大きいため肩がこりました。縦持ちなら比較的マシという程度。
文字入力周りについて
ソフトウェアキーボード或いはタッチキーボードとでも呼ぶものでしょうか、要するに画面上で使うキーボードのことです。AndroidのGoogle日本語入力に慣れてると大変入力効率が悪く、取り敢えず入力が出来るレベルの代物にしか見えませんでした。
因みにタイプカバーを立って使うのはスペース的にも形状的にも難しいと思うので、あくまでタブレットとして使う場合、どうやってこのキーボードを使っていくかが鍵になりそうです。
特にIMEとキーボードが一体化している点が個人的に色々と難しいポインツで、これは知る限り切り離せません。まぁAndroidなんかもそうなので理解はできるのですが、利点かと思えばデメリットしかなく、大人しくMS-IMEを使おうとか言う内容になります。
Google 日本語入力
みんな大好きGoogle日本語入力はPCのときとよく似た振る舞いをしてくれるおかげで変換候補や入力中の文字が確認し辛い問題があります。
変換のしやすさ
変換候補が出てくる所がカーソルから離れていて見辛いです。
キーボードの種類
二種類しかなく左右分割の英字キーボードか分割なしのキーボードだけです。フリック入力などありません。
MS-IME
嫌われ者のIMEですが、こちらは入力方式に富んでいます。
まず入力中の文字や変換候補はキーボードの上側に表示されます。見やすくていいですね。
キーボードの種類も多くフリック入力からフルキーボードまで選び放題です。但しフルキーボードは平置きにしないと使いづらいと思います。
フリック入力
みんな大好きフリック入力!AndroidのGoogle日本語入力とはレイアウトが異なりますが、慣れれば十分使えそうな代物ではあります。
しかし英字モードをQWERTY方式に出来ないのは個人的にはマイナスです。
フルキーボード
ShiftやAltなどの制御キーがついており、コーディングなどで重宝しそうですが本体を持って使うには不向きに感じました。
左右分割キーボード
最初に戻ってきましたが、結局のところこれが一番マシな選択肢に思えました。肩こりますけど。両手で持って両手で叩けます。肩こりについては慣れなのかなという気もしました。
ノートPCとして
タイプカバーとマウスを使って開発をしていても8hくらいはバッテリーが持つため、ノートPCとしては優秀かなという気はします。
実業務とかにありがちな重くてまともに開発できないといったことはVSCode + MySQL + Laravelでは感じなかったです。それなりにサクサクという感じ。
Office一式が入っていることや、人によっては液タブとしても使える点とかを考慮すれば総合的なコスパはいいのかもしれませんが、ごく単純な開発機としてみた場合のコスパはあまり高くないような気もします。ぶっちゃけ開発しないならAndroidタブレットで十分でしょうし、開発するにしてもタイプカバーとマウスを含めれば1kgを超えるため余りお手軽に持ち運べる感はありません。
買って軽く数日使った程度では評価するのが難しいと悟ったので、また使い込めたらその頃になんか書きたいと思います。可能性はあるデバイスだと信じているので...。