久しぶりに百均により、ちょっとした補充。
1/12 ビーズクッション

スケールこそ1/12ですが、中身は本物。なので、


より質感の高い「クッション」に座らせることができたという形。
情報カード用ファスナー

そしてもう一つは差し込むだけでファイルングができるもの。

「情報カードをまとめるとき」という需要にピッタリマッチです。
今回、百均で入手は少なめですが、どれもこれからの汎用性を見据えたものになりました。
OSの刷新に備えて、Ubuntu 22.04に、2024年1月現在の最新版のRedmineを、Ubuntu22.04系にインストールします。
一部を除いてコピペだけで済むように完結しています。
sudo add-apt-repository ppa:ondrej/apache2
sudo aptitude update
sudo aptitude install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev mysql-server mysql-client apache2 apache2-dev libapr1-dev libaprutil1-dev imagemagick libmagick++-dev fonts-takao-pgothic subversion git ruby libruby ruby-dev libmysqlclient-dev
sudo aptitude install libapache2-mod-passenger
sudo gem install bundler racc mysql2
# 「3 gems installed」が表示されればインストール成功です。
mysql_secure_installationによる初期設定を行います。
うまくいかない場合は以下を参照してください。
https://atelier.reisalin.com/projects/zettel/questions/5-mysql_secure_installation
mysql -u root -p
# 上記で設定した「mysqlのrootパスワード」を入力し、mysqlにログインします
CREATE DATABASE redmine character set utf8mb4;
/* DB "redmine" を作成します */
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';
/* ユーザ "redmine"を作成し、パスワードを設定します*/
/* この'password'は任意のパスワードに変更してください*/
GRANT ALL ON redmine.* TO 'redmine'@'localhost';
/* DB "redmine"の権限をユーザ "redmine"に委譲します*/
flush privileges;
/* 設定を反映させます*/
exit
mysql -u redmine -p
SHOW DATABASES;
/* DB:redmineがあることを確認します。 */
exit
sudo mkdir -p /home/www-data/redmine
sudo chown -R www-data:www-data /home/www-data
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.1-stable /home/www-data/redmine
sudo cp -pi /home/www-data/redmine/config/database.yml.example /home/www-data/redmine/config/database.yml
上記を教義・信仰に従ったエディタで編集してください。
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
# rootからredmineに変更します
password: "redmine用のパスワード"
encoding: utf8mb4
# 本番環境(production)のみ設定を行います
cd /home/www-data/redmine/ && pwd
# /home/www-data/redmine/ (Redmineを配置したディレクトリ)であることを確認します
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle exec rake generate_secret_token
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/redmine.conf
<VirtualHost *:80>
ServerName hoge.example.com
# ServerNameは自身が設定したredmineに読み替えてください。
DocumentRoot /home/www-data/redmine/public
<Directory /home/www-data/redmine/public>
Options -MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
__EOF__
ls -l /etc/apache2/sites-available/redmine.conf
# ファイルがあることを確認します。
sudo a2ensite redmine.conf
# 設定ファイルを有効化します
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
# 初期サイト設定を無効化します
sudo apache2ctl configtest
# Syntax OK を確認します
sudo systemctl restart apache2.service
systemctl status apache2.service
http://設定したRedmineドメイン
でRedmineのトップページが表示されれば成功です。
直ちにadmin/adminでログインし、強固なパスワードを設定し直します。
GrowiをUbuntu22.04をインストールしたので、そのときの手順です。一気通貫で行ったので、相当手順は長いです。
の基本的な設定が済んだという状況です。
sudo curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash
sudo aptitude update
sudo aptitude install nodejs
node -v
2024/01/10現在:v18.19.0
npm -v
2024/01/10現在:10.2.3
sudo aptitude install redis-server
systemctl status redis-server
active(running)を確認します。
sudo systemctl enable redis-server
sudo aptitude install openjdk-17-jdk
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo aptitude install apt-transport-https
sudo echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo aptitude update
sudo aptitude install elasticsearch
※この後、デフォルトパスワードが表示されますが、控えておく程度にしましょう。
sudo mkdir /etc/elasticsearch/old
※任意のバックアップディレクトリを指定します。
sudo cp -pi /etc/elasticsearch/jvm.options /etc/elasticsearch/old/jvm.options.`date +%Y%m%d`
echo -e "-Xms256m\n-Xmx256m" | sudo tee -a /etc/elasticsearch/jvm.options
sudo diff -u /etc/elasticsearch/old/jvm.options.`date +%Y%m%d` /etc/elasticsearch/jvm.options
+-Xms256m
+-Xmx256m
※この作業だけ管理者権限で実行します。
sudo su -
cp -pi /etc/elasticsearch/elasticsearch.yml /path/to/backup/elasticsearch.yml.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
sed -i -e 's/xpack.security.enabled: true/xpack.security.enabled: false/' \
-e '/xpack.security.http.ssl:/{n; s/ enabled: true/ enabled: false/}' \
-e '/xpack.security.transport.ssl:/{n; s/ enabled: true/ enabled: false/}' /etc/elasticsearch/elasticsearch.yml
diff -u /path/to/backup/elasticsearch.yml.$(date +%Y%m%d) /etc/elasticsearch/elasticsearch.yml
# Enable security features
-xpack.security.enabled: true
+xpack.security.enabled: false
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
- enabled: true
+ enabled: false
keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
- enabled: true
+ enabled: false
exit
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
sudo systemctl start elasticsearch
systemctl status elasticsearch
active(running)を確認します。
sudo systemctl enable elasticsearch
sudo aptitude install gnupg
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo aptitude update
sudo aptitude install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
※2024/01/10現在、GrowiはMongoDBのバージョンが固定されているので、自動更新されないようにします。
sudo aptitude hold mongodb-org
sudo aptitude hold mongodb-org-server
sudo aptitude hold mongodb-org-shell
sudo aptitude hold mongodb-org-mongos
sudo aptitude hold mongodb-org-tools hold
MongoDBの格納先を、冗長化構成されているパーティションにするため対応しました。
sudo mkdir /home/mongodb
保存先を変えたいところにします
sudo chown -R mongodb:mongodb /home/mongodb
ls -ld /home/mongodb
sudo cp -pi /etc/mongod.conf /path/to/backup/mongod.conf.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
sudo diff -u /etc/mongod.conf /path/to/backup/mongod.conf.$(date +%Y%m%d)
バックアップが保存されたか、差分がないことで確認します。
sudo sed -i 's/dbPath: \/var\/lib\/mongodb/dbPath: \/home\/mongodb/' /etc/mongod.conf
sudo diff -u /path/to/backup/mongod.conf.$(date +%Y%m%d) /etc/mongodb.conf
- dbPath: /var/lib/mongodb
+ dbPath: /home/mongodb
sudo systemctl start mongod
systemctl status mongod
active (running)を確認します
sudo systemctl enable mongod
sudo npm install -g yarn
※Growi v6.1.0から必須パッケージとなりました。
sudo yarn global add turbo
sudo git clone https://github.com/weseek/growi /home/www-data/growi
※任意のディレクトリを指定します。
cd /home/www-data/growi && pwd
先ほどcloneしたディレクトリです。
sudo git checkout -b v6.3.0 refs/tags/v6.3.0
2024/01/09現在の最新版です。
sudo yarn
CPUのスペックによっては相当な時間がかかります。
cat <<- __EOF__ | sudo tee -a /etc/systemd/system/growi.service
[Unit]
Description = growi
After=network-online.target mongod.service
ConditionPathExists=【/home/www-data/growi】
[Service]
ExecStart=【/home/www-data/growi/】growi-start.sh
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
__EOF__
※【】内を、git cloneしたディレクトリにします。
cat <<- __EOF__ | sudo tee -a 【/home/www-data/growi】/growi-start.sh
#!/bin/sh
cd 【/home/www-data/growi】
NODE_ENV=production \
AUDIT_LOG_ENABLED=true \
FORCE_WIKI_MODE=private \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=[任意の文字列] \
FILE_UPLOAD=local \
npm start
__EOF__
※【】内を、git cloneしたディレクトリにします。
[]内には任意の文字列を入れます。
sudo chmod +x /home/www-data/growi/growi-start.sh
sudo systemctl daemon-reload
sudo systemctl start growi.service
systemctl status growi.service
active(running)を確認
sudo systemctl enable growi.service
sudo a2enmod proxy_http
sudo systemctl restart apache2.service
suod mkdir /var/log/growi/
sudo chown -R www-data:www-data /var/log/growi
cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/growi.conf
#!/bin/sh
<VirtualHost _default_:80>
ServerName 【hoge.example.com】
# ドメイン名を指定します
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# HTTPアクセスを強制的にHTTPSにリダイレクトします
</VirtualHost>
<VirtualHost _default_:443>
ServerName 【hoge.example.com】
# ドメイン名を指定します
CustomLog /var/log/growi/growi_access.log combined
ErrorLog /var/log/growi/growi_error.log
#SSL設定
SSLEngine on
Protocols h2 http/1.1
# SSLを有効化します
SSLCertificateFile 【/etc/certs/hoge.example.com.crt】
# SSL証明書を指定します
SSLCertificateKeyFile 【/etc/private/hoge.example.com.key】
# 秘密鍵を指定します
# Header に Host: example.com を追加するため
ProxyPreserveHost On
# HTTPS利用時: Header に x-forwarded-proto: https を追加するため
RequestHeader set x-forwarded-proto 'https'
# Apache では static assets で 304 が返らないことがあるので ETag を無効化する
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
# socket.io の path を rewrite する
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
__EOF__
【】内を自分の環境に変更してください。
sudo a2ensite growi.conf
sudo apache2ctl configtest
Syntax OKを確認します。
sudo systemctl restart apache2.service
http://設定したドメイン でアクセスします。
この初期サイトが表示されたらインストール完了です。
いわゆるペーパーバックなので、物理的なカバーを作ることにします。
作り方はネットで適当に検索したものです。
高さをマスキングテープで測ったら、定規とカッターナイフで軽く筋を付けております。
表紙にも折り目を付けます。
表紙、裏表紙共にカッターで筋を彫ってから折ります。
原作に併せ、『ハリー・ポッター』の呪文が書かれたマスキングテープを用いています。
本のタイトルは付箋とマステで貼り付け、本自体はお弁当用のシリコンバンドで留めました。
これにて完成。
作るのは少し手間ですけど
ということで重宝。「これを使って良かった」と思える程度には本の中身にも手を付けていきます。
2025年にサポートされなくなるOSではありますが、まだ現役というパターンがあるため、メモに残しておきます。
Ubuntu系OSをメディアからインストールした場合、SSHがインストールされていないことがほとんどです。
sudo apt install ssh
鍵認証でログインできるようにします。
ssh-keygen -t ed25519
# 鍵の格納場所は空Enter。(/home/hoge/.ssh/
# パスワードを設定します。
cd .ssh
ls -l
# 以下のファイルを確認します
# └id_ed25519
# └id_ed25519.pub
# ※これらのファイルはscp等で自分のクライアントにコピーします
mv id_ed25519.pub authorized_keys
chmod 600 authorized_keys
この後、ローカルにコピーしたid_ed25519をSSHターミナルクライアントに保存して設定し、接続確認を行います。
sudo mkdir /etc/old
任意のバックアップディレクトリを作成します。
sudo cp -pi /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
diff -u /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
エラーがない(差分がない)ことでバックアップを確認します。
sudo sed -i -e 's/^#PasswordAuthentication yes/PasswordAuthentication no/' -e 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
diff -u /etc/old/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
+PasswordAuthentication no
+PermitEmptyPasswords no
※この作業の前に、必ず、SSH接続は別に開けておいてください。※
sudo systemctl restart ssh.service
パッケージ全体のアップグレードを行います。
sudo apt update && sudo apt upgrade
アップグレード後、再起動を行います。
sudo reboot
Ubuntu系OSはインストール時にhoge.example.com
と設定しても、
uname -n
# hoge(インストール時に設定したホスト名のみ)となっています。
とホスト名だけになるパターンが多いです。そこで、
sudo hostnamectl set-hostname hoge.example.com
として、(ホスト名やドメインや設定に合わせます)
設定語、
uname -n
# hoge.example.comを確認します。
最初期のプロンプトは
hoge@hoge$
になっているので、好みに沿って設定していきます。
cat << ___EOF___ | tee -a ~/.bashrc
PS1="[\u@\H \W]\\$ "
# 一般ユーザ向けのプロンプト設定
if [ "\$PS1" ]; then
if [ "\$(id -u)" -eq 0 ]; then # rootユーザの場合
PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
else # 一般ユーザの場合
PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
fi
fi
___EOF___
Ubuntu系は.bashrcが統一されないので、やむなくこの方法をとります。
sudo su -
cat << ___EOF___ | tee -a ~/.bashrc
PS1="[\u@\H \W]\\$ "
# 一般ユーザ向けのプロンプト設定
if [ "\$PS1" ]; then
if [ "\$(id -u)" -eq 0 ]; then # rootユーザの場合
PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
else # 一般ユーザの場合
PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
fi
fi
___EOF___
設定後、SSHセッションを開き直します。以下を確認します。
[hoge@hoge.example.com~]$
のように表示される。(一般ユーザー)[root@hoge.example.com~]#
のように表示される。(root)これは完全に筆者の好みです。パッケージ管理をaptではなくaptitudeに変えます。
sudo apt install aptitude
他にもありますので、改めて別に記事を上げます。
2024年最初の「作業」はこの2つでした。
2020年7月頃から再開し、そこからはほぼ休むことなく書き続けているほぼ日手帳。
こちらの分冊スタイルになったお陰で取り回しが良くなったのが特徴です。
今年は、これにどのようなことを綴っていくのかも楽しみですが、
「毎日続けられるだけのモチベーションを保てるのか」
は不安でもあり、それを維持するのも楽しみでもあり。
また、カレンダーも張り込みました。今まで買わなかったのが不思議なぐらいの『ライザのアトリエ』カレンダーです。
壁を覆うかのような大判と、丁寧に描き込まれたイラストは、そこにあるだけでモチベーションを高めてくれます。
これらをしっかり記録していき、2024年を無事に振り替えら得るようにしていきたいです。
2023年もいよいよ終わり。そんな中で、新しく手帳を開封しました。
この時購入したほぼ日ウィークリーです。
ここで記すものは
の2つ。Firefly-iii を利用し始めたので、オフラインバックアップとしてこれを使っています。
情報カードを得たことで、オンラインの記録システムはそれぞれ異なる紙の記録システムを持つようになりました。
そして今回、新たにほぼ日ウィークリーが加わりました。
のが導入の決め手です。
Ubuntu 22.04を検証機にインストールしたので、nginx環境を構築します。
sudo aptitude install curl gnupg2 ca-certificates lsb-release ubuntu-keyring build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev git
先を見据えてgit等もついでにインストールします。
cat <<- __EOF__ | sudo tee -a /etc/apt/sources.list.d/nginx.list
deb https://nginx.org/packages/ubuntu/ jammy nginx
deb-src https://nginx.org/packages/ubuntu/ jammy nginx
__EOF__
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62
nginxで統一されている鍵を利用します
sudo aptitude update
実行時、W: https://nginx.org/packages/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
の警告は無視して大丈夫です。
sudo aptitude install nginx
nginx -v
2023/12/29時点ではnginx/1.24.0
と表示されていました
sudo add-apt-repository ppa:ondrej/php
sudo aptitude update
sudo aptitude install php8.3
sudo aptitude install php8.3-{opcache,pdo,bcmath,calendar,ctype,fileinfo,ftp,gd,intl,json,ldap,mbstring,mysql,posix,readline,sockets,bz2,tokenizer,zip,curl,iconv,phar,xml,dev}
sudo aptitude install php8.3-{imagick,gmp}
php -v
2023/12/29時点では PHP 8.3.1
と表示されていました
依存関係で、apacheが同時にインストールされます。本検証ではnginxを用いるので、apache2を無効化します。
sudo systemctl stop apache2.service
sudo systemctl disable apache2.service
systemctl status apache2.service
inactive(dead)を確認します
sudo systemctl start nginx
sudo systemctl enable apache2.service
sudo systemctl status nginx
curl http://localhost
Welcome to nginx!
を確認します。
nginxとphpを連携させるfpmをインストールします。
sudo aptitude install php8.3-fpm
systemctl status php8.3-fpm
active(running)を確認します。
Powered by WordPress & Theme by Anders Norén