OS | macOS Ventura 13.4.1 |
---|
ssh-keygen
コマンドを使える場合は作って設定しておくと自分でアップロードして設定しなくていいので便利です。$ ssh-keygen -t ed25519
pbcopy
はmacOSで使えるコマンドです。$ cat ~/.ssh/id_ed25519.pub | pbcopy
ssh
コマンドで行います。-i
オプションで生成した鍵ペアの秘密鍵を指定しましょう。$ ssh -i ~/.ssh/id_ed25519 root@IPアドレス
$ apt -y update && apt -y upgrade && apt -y install git ufw mysql-server nginx
root
は権限が強すぎるユーザーのため、基本的に作業ユーザーでログインして作業することを強く推奨します。sudo
コマンドを実行できるようにsudo
グループに追加しましょう。$ adduser 好きなユーザー名
$ gpasswd -a 入力したユーザー名 sudo
$ mkdir -m 700 /home/ユーザー名/.ssh
exit
コマンドでログアウトして手元のパソコン内で作業します。$ exit
$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_myuser
$ rsync -av -e 'ssh -i ~/.ssh/id_ed25519' ~/.ssh/id_ed25519_myuser.pub [email protected]:/home/ユーザー名/.ssh/authorized_keys
$ chmod 600 /home/ユーザー名/.ssh/authorized_keys
$ chown ユーザー名 -R /home/ユーザー名/.ssh/
/etc/ssh/sshd_config
ファイルを編集します。(vi
の編集方法は独特ですが、慣れておきましょう)$ vi /etc/ssh/sshd_config
Port 好きなPort番号(0 ~ 65535まで設定可能ですが9000番台程度まで被る可能性が高いので10000 ~ 65535の範囲を推奨)
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
root
ユーザーでのログインを禁止し、アップロードした鍵ペアの公開鍵を使った鍵認証でログインできるようにするものです。(ここからroot
でログインできません)ssh
を再起動します。$ service ssh restart
ufw
も設定しておきます。先述のインストール時にインストール済みなので以下のコマンドを打ちましょう。$ ufw allow 先ほど指定したポート番号
$ ufw enable
$ ssh -i ~/.ssh/id_ed25519_myuser -p ポート番号 ユーザー名@IPアドレス
ssh
コマンドを打つのが大変なので、手元のパソコンの~/.ssh/config
ファイルを編集しましょう。Host umami
HostName IPアドレス
User ユーザー名
Port ポート番号
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly yes
TCPKeepAlive yes
ServerAliveInterval 30
$ ssh umami
sudo
コマンドを使っています。$ sudo service mysql start
$ sudo mysql_secure_installation
mysql
コマンドを打ってみましょう。$ sudo mysql
$ CREATE USER '好きなユーザー名'@'localhost' IDENTIFIED BY '好きなパスワード';
$ CREATE DATABASE IF NOT EXISTS `好きなデータベース名(今回はfrkz-umamiで進めます)` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
$ GRANT ALL PRIVILEGES ON `frkz-umami`.* TO 'ユーザー名'@'localhost';
$ quit
$ mysql -u ユーザー名 -p
$ sudo apt -y install npm
$ sudo npm install n
$ sudo n lts
$ sudo node -v
node v18.17.1
がインストールされました。pm2
をインストールします。さらに、ログローテート(ログ循環)させるためにpm2-logrotate
をインストールします。$ sudo npm install -g pm2
$ sudo pm2 install pm2-logrotate
/var/www
にディレクトリを作っておきます。また、公式リポジトリのREADMEに従うため、yarn
もインストールしましょう。$ sudo mkdir /var/www
$ sudo chown ユーザー名 -R /var/www
$ sudo npm install -g yarn
$ sudo git clone https://github.com/mikecao/umami.git /var/www/umami
$ cd /var/www/umami
yarn install
します。$ yarn install
.env
ファイルが必要になるため作成しましょう。$ vi .env
DATABASE_URL=mysql://MySQLユーザー名:MySQLパスワード@localhost:3306/frkz-umami
$ yarn build
pm2
を使ってUmamiアプリケーションを起動します。$ pm2 start npm --name umami -- start
$ sudo service nginx start
$ sudo ufw allow 'Nginx Full'
$ sudo ufw reload
frkz.jp
に対してサブドメインを設定して利用していきます。/etc/nginx/certs/cert.pem
を作成しコピペ。Private keyを/etc/nginx/certs/privkey.pem
へ作成しコピペします。$ sudo mkdir /etc/nginx/certs
$ sudo vi /etc/nginx/certs/cert.pem
$ sudo vi /etc/nginx/certs/privkey.pem
$ sudo vi /etc/nginx/conf.d/umami.conf
server {
listen 80;
server_name サブドメイン;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Access-Control-Allow-Origin *;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header 'Access-Control-Allow-Origin';
}
}
nginx -t
コマンドで確認できます。$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
www-data
にディレクトリを見る権限を与えます。$ sudo chwon www-data:www-data -R /var/www/umami
$ sudo service nginx restart
admin
、Passwordはumami
です。右上のアイコンから「プロファイル」にアクセスし、すぐにログインしてパスワードを変更しましょう。admin
というユーザー名も推測しやすいため、ヘッダーメニューの「設定」のUsers
メニューから変更しておくと安心です。