Redmine View Customize Pluginでのアイコンサイズ変更。

やりたいこと

Redmineのチケット表示画面に出てくるこのアイコンを大きくします。

環境

  • Redmine 4.2 Redmine 5.1
  • 要:ViewCustomize Pluginの導入

共通手順

  1. Redmineに管理者権限でログインします。
  2. 管理>表示のカスタマイズに移動します。
  3. 「新しい表示のカスタマイズ」をクリックします。

カスタマイズ1

以下の通り指定します。

  • パスのパターン:空白
  • プロジェクトのパターン:空白
  • 挿入位置:全ページのヘッダ
  • 種別:JavaScript
  • コード
$(document).ready(function() {
  // 表示環境やテーマに合わせて任意のサイズを指定
$('.gravatar').css('width', '70px').css('height', '70px');
});

コード入力後、有効にして「保存」をクリックします。

設定反映後、

と、サイズが大きくなりました。

しかし、全てに適用されるので

ガントチャートのアイコンもそれに合わせて大きくなります。それを抑制する措置を執ります。

カスタマイズ2

以下の通り指定します。

  • パスのパターン:/gantt
  • プロジェクトのパターン:空白
  • 挿入位置:全ページのヘッダ
  • 種別:JavaScript
  • コード
$(document).ready(function() {
  // 表示環境やテーマに合わせて任意のサイズを指定
   $('.gravatar').css('width', '10px').css('height', '10px');
});

適用後、

ガントチャートのアイコンサイズも設定できました。

まとめ

  • アイコンが全てに及ぶため、かなり乱暴な手を取っています。
  • そのため、カスタマイズを2つ挟む結果になりました。
  • もっとスマートな手があると思いますので、要検証です。

ボードゲーム『ワーリング・ウィッチクラフト』開封。

購入から間が経った作品、ようやく開封できました。

開封

『ワーリング・ウィッチクラフト』外箱

ゲーム時間やプレイ感と比して、箱はかなり大きめです。

内容物

コンポーネントは少なめ

やはり、箱に比してコンポーネントも少なめ。

  • 組み立て式の大釜
  • 個人ボード
  • キューブ
  • カード

のほぼ4構成です。

大釜

存在感が大きい釜

本作を象徴するのがこちらの大釜です。これをやりとりしていくので、後でボンドなどで補強する必要がありそうです。

釜を全て組み立て、カードをスリーブに入れて収納に掛かります。

収納

大釜をしまうための仕切り付き

箱の大きさ、最大の理由はこの「釜の収納スペース」です。もう少しコンパクトにできれば箱の大きさは小さくできたのでしょうが、没入感を考えるとこちらです。

このため、収納スペースはほとんど余裕がありません。最初についていた袋に頼るほかないです。

釜と錬金術士

そして、想像通り、この釜のサイズはfitma / ねんどろいどとぴったりのサイズでした。

Redmine 5.1にIssue Template Pluginをインストール。

この記事を書いて程なくして、直々に別リポジトリにメンテナが引き継がれていたとの情報を戴きましたので、

早速、インストールします。

環境

  • Ubuntu 22.04
  • Redmine 5.1
  • Ruby 3.0
  • Apache 2.4

導入時

Gem追加:要
DBマイグレーション:要

さっくりとした手順

  1. SSHログイン後、Redmineプラグインに移動
  2. gitでレポジトリをダウンロード
  3. 新規ジェムをインストール
  4. DBマイグレーション
  5. Webサービス再起動

ディレクトリに移動します。

cd /home/www-data/redmine/plugins
# 自分の環境に合わせます。

プラグインを配置します。

sudo -u www-data git clone https://github.com/agileware-jp/redmine_issue_templates

ls -ld redmine_issue_templates

Gemをインストールします。

cd /home/www-data/redmine/plugins
# 自分の環境に合わせます。

sudo -u www-data bundle install

DBのマイグレーションを行います。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

動作

  1. Redmineに管理者アカウントでログインします。
  2. 任意のプロジェクトを選択して設定をクリックします。
  3. モジュール「チケットテンプレート」にチェックを入れて保存します。
  4. プロジェクトにチケットテンプレートのタブが表示されていれば設定完了です。

このプラグインの有無がRedmine 5.1に移行できるかの鍵の一つだったので、大いに助かりました。

Redmine 5.1に文書管理プラグイン(dmsf)をインストール。※脆弱性が存在するバージョンに注意※

概要

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/39/

こちらの、Redmine5.1バージョンです。

Redmineをファイルサーバのように扱うプラグインをインストールします。

備考

  • この作業、下手すればRedmine全体が使えなくなる作業です。(実際にRedmineが使えなくなりました)
  • そのため、DBのバックアップとリストアによる切り戻し手順も込みです。

2023年11月よりMicrosoftはWebDavを「非推奨」とする方針を打ち出しているため、本手順ではWebDAV設定は省いています。

https://forest.watch.impress.co.jp/docs/news/1544482.html

プラグイン名

動作を確認した環境

  • Ubuntu 22.04
  • Ruby 3.0
  • Redmine 5.1
  • mysql Ver 8.0.35

導入時

  • 追加パッケージのインストール:要
  • Gem追加:要
  • DBマイグレーション:要

実施した手順

さっくりとならなかった手順

  1. 念のためDBバックアップ
  2. SSHログイン後、追加パッケージをインストール
  3. Redmineプラグインに移動
  4. gitでレポジトリをダウンロード
  5. 新規ジェムをインストール
  6. DBマイグレーション
  7. Webサービス再起動
  8. Redmine設定変更
  9. 切り戻し手順(それでも失敗した場合)

バックアップ取得

mysqldumpによるバックアップ

cd /hoge
# 任意のバックアップディレクトリに移動します

mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
# それぞれ -h ホスト名 -u redmine -p ユーザ オプション db名です。
# パスワードはredmineインストール時に設定したDBユーザのものです

環境が許すなら、AWSのようにシステム全体のバックアップを取った方が後腐れがありません。

動作に必要な追加パッケージのインストールと設定

追加パッケージをインストールします。

sudo aptitude install xapian-omega ruby-xapian libxapian-dev poppler-utils antiword  unzip catdoc libwpd-tools libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl

プラグインのインストール

プラグインを配置します。

cd /home/www-data/redmine/plugins && pwd
# redmineのplugins配下ディレクトリに移動します。

sudo -u www-data git clone -b v3.1.4 https://github.com/danmunn/redmine_dmsf
# 念のため、バージョンを指定します。

ls -ld /home/www-data/redmine/plugins/redmine_dmsf
# このディレクトリがあることを確認します

Gemをインストールします。

cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle install
# bundleはかなり時間がかかります。

DBのマイグレーションを行います。

cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再起動します。

sudo systemctl restart apache2

Redmine設定変更

WebDAV有効化

  1. Redmineに管理者アカウントでログインします。
  2. 管理>プラグイン>DMSFの「設定」をクリックします。
  3. 以下のように修正します。
  4. 貼り付けを許可にチェックを入れ、アップロードしたファイルをチケットなどに貼り付けられるようにします。
  5. WebDav:無効(デフォルトのままです)
  6. 任意のプロジェクトに移動します。
  7. 「設定」をクリックし、「文書管理」にチェックを入れます。
  8. また、Redmine管理画面の「ロールと権限設定」で、ユーザのアクセス権を忘れないようにしてください。(「文書管理」のセクションです)

以上で設定は完了です。

おまけ:切り戻し手順

この作業、Redmine5.1より手順は楽になったとは言え:やっぱりバージョン変更や設定ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

通常の切り戻し

ディレクトリ移動

cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。

プラグインアンインストール

sudo -u www-data rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production

ディレクトリ削除

sudo rm plugins/redmine_dmsf -Rf

Webサービス再起動

sudo systemctl restart apache2.service

それでもダメだった切り戻し(DBリストア)

cd /hoge
# mysqldumpを行ったディレクトリ

mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
# パスワードはredmineインストール時に設定したDBユーザのものです

sudo systemctl restart apache2.service

Redmine View Customizeを利用した、チケット作成時の定型文挿入。-1-(Issue Template Pluginのワークアラウンド)

概要

メインで使っているRedmineのバージョンは4.2ですが、OSのEOL等に備えて5.1での検証を始めました。

そんな中、活用しているプラグインが使えないのでその対処を行いました。

問題となったプラグイン

こちら、2024/01/19現在、Redmine5.1でインストールできませんでした。

  • チケットを発行するときの定型文を入れたい
  • プロジェクトによっては既に内容が決まっているとなおよい

をモットーにしているだけに、このプラグインが利用できないのはバージョンアップの大きな障害となります。

それを解決するため、RedmineViewCustomizeを使いました。

試した環境

  • Ubuntu 22.04
  • Redmine 5.1
  • Ruby 3.0
  • Apache / ModPassanger
  • 要:ViewCustomizeインストール

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/31

手順

  1. Redmineに管理者権限でログインします。
  2. 管理>表示のカスタマイズに進みます。
  3. 新しい表示のカスタマイズをクリックします。
  4. 以下の通り、コードを挿入します。

パスのパターン

  • 空白
  • 全プロジェクト

プロジェクトのパターン

空白

挿入位置

全ページのヘッダ

種別

JavaScript

コード

$(function() {
// チケット作成画面のみ対象
if ($('#issue-form').length > 0 && $('#issue_subject').val() == '') {
// 件名の先頭に定型文を追加
$('#issue_subject').val('[起票:] 『件名』(期日:) ');
// 説明に本文を追加 (自身が使うパターンで使ってください。\nで改行を入れられます。)
$('#issue_description').val('### 概要\n\n### 依頼者\n\n### 締切概算\n\n### あるべきゴール\n\n### まずすべきこと\n\n- [ ]');
}
});

コメント

チケット作成時にタイトルを追加


設定反映確認

  1. 任意のプロジェクトで新しいチケットを発行します。
  2. 以下のように自動的にタイトルと説明が入っていればOKです。

Growiの使い勝手を向上。(カスタムスクリプトの利用)

Growiが格段に使いやすくなるTIPSです。

行うこと

  • lang属性の付与

「英語のページを翻訳しますか?」

と、出る時があるので、これに対処します。

  • サイトを新しいタブで開く。

リンクは新しく開きたい派のため、こちらに対応します。

  • 画像のライトボックス化

画像を拡大表示できるようにします。

参考URL

「Growiカスタムスクリプト集」

https://qiita.com/k84rc/items/159a7399c11abd4e3587

手順

Growiに管理者権限でログインします。

ログイン後、

設定>カスタマイズに遷移します。

カスタムスクリプトを修正します。

「カスタムスクリプト」の箇所に、以下のコードを入れます。

function addLangAttrToHtmlTag() {
  var language = window.navigator.language || window.navigator.userLanguage || window.navigator.browserLanguage;
  $('html').attr('lang', language);
}
function openExternalPageInNewTab() {
  $('a[href]').each((i, elem) => {
    var url = elem.href.match(/(?:https?:\/\/([\w:%#\$&\?\(\)~\.=\+\-]+))?(\/?[\w/:%#\$&\?\(\)~\.=\+\-]+)/);
    if (url[1] !== undefined && url[1] !== document.domain) {
      elem.target = '_blank';
    }
  });
}
function applyLightBox() {
  $('head link:last').after('<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lightbox2@2.10.0/dist/css/lightbox.min.css" />');
  $('head script:last').after('<script src="https://cdn.jsdelivr.net/npm/lightbox2@2.10.0/dist/js/lightbox.min.js"><\/script>');
  $('#page').find('img:not(.emojione)').each(function(i, elem) {
    var a = $('<a>').attr({'href': $(elem).attr('src'), 'data-lightbox': $(elem).attr('alt')||"nothing", 'data-title': $(elem).attr('alt')||"nothing"});
    $(elem).wrap(a);
  });
}

入力後、設定を保存します。

設定反映を確認します。

  1. Growiをログアウトし、再度入り直します。
  2. リンクが別タブで開くことや、画像が拡大表示されることを確認します。

Ubuntu : ディレクトリのバックアップスクリプト。

概要

Linux運用時、特定のディレクトリをバックアップするスクリプトです。

  1. バックアップ元とバックアップ先の変数指定
  2. 世代管理
  3. 直接実行するかCronで設定するか

の変数指定が可能です。

スクリプト内容

  • home_backup.sh

※要管理者権限

# 変数の定義
BACKUP_SOURCE="/home"
BACKUP_DEST="/backup"
GENERATION=3
VERBOSE=false  # バックアップ成功メッセージを表示するかどうか(true/false)

# 一時ディレクトリを作成
temp_dir=$(mktemp -d)

# バックアップを作成する関数
create_backup() {
    # yyymmdd形式の日付を取得
    DATE=$(date +"%Y%m%d")

    # 圧縮ファイルの名前を指定
    ARCHIVE_NAME="backup_$DATE.tar.gz"

    # rsyncを用いてディレクトリを一時ディレクトリにコピー
    rsync -a --delete "$BACKUP_SOURCE/" "$temp_dir/"

    # ディレクトリ全体を圧縮
    tar --ignore-failed-read -czf "$BACKUP_DEST/$ARCHIVE_NAME" -C "$temp_dir" .

    # 古いバックアップを削除
    delete_old_backups

    # メッセージの表示
    if [ "$VERBOSE" = true ]; then
        echo "Backup completed successfully."
    fi
}

# 古いバックアップを削除する関数
delete_old_backups() {
    # バックアップディレクトリ内のバックアップファイルを日付順にソート
    sorted_backups=($(ls -t "$BACKUP_DEST" | grep -E "backup_[0-9]{8}\.tar\.gz"))

    # 不要なバックアップファイルを削除
    while [ ${#sorted_backups[@]} -gt $GENERATION ]; do
        file_to_delete="${sorted_backups[${#sorted_backups[@]}-1]}"
        rm "$BACKUP_DEST/$file_to_delete"
        echo "Deleted old backup: $file_to_delete"
        # 削除したファイルをリストから除外
        sorted_backups=("${sorted_backups[@]:0:${#sorted_backups[@]}-1}")
    done
}

# バックアップの作成
create_backup

# 一時ディレクトリを削除
rm -r "$temp_dir"

作成後、実行権を付与します。

sudo chmod +x home_backup.sh

注意点

  • バックアップ先に十分な空き容量があることを想定しています。
  • rsyncとtarの二重処理なので、割と時間がかかります。

この辺をもう少しうまく処理したいです。

BookStack内のリンクを新しいタブで開く。

とても簡単で、あっさりできるTIPSです。

参照

手順

  1. BookStackに管理者権限でログインします。
  2. 設定>カスタマイズに移動します。
  3. カスタムheadタグに以下を入力し、保存します。
<script type="module">
    const links = document.querySelectorAll('.page-content a');
    for (const link of links) {
        link.target = '_blank';
    }
</script>

動作確認

BookStackでリンクを含む記事をクリックし、新しいタブで開くことができれば完了です。

クッションとファスナー。(百均での収穫)

久しぶりに百均により、ちょっとした補充。

1/12 ビーズクッション

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

より質感の高い「クッション」に座らせることができたという形。

情報カード用ファスナー

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

「情報カードをまとめるとき」という需要にピッタリマッチです。

今回、百均で入手は少なめですが、どれもこれからの汎用性を見据えたものになりました。

Ubuntu 22.04系にRedmine5.1をインストール。

OSの刷新に備えて、Ubuntu 22.04に、2024年1月現在の最新版のRedmineを、Ubuntu22.04系にインストールします。

一部を除いてコピペだけで済むように完結しています。

本記事で実施すること

  1. Redmineを動かすためのパッケージがインストールできるように準備をします。
  2. Redmineを動かすためのパッケージ(Ruby/データベース/Webサービスなど)をインストールします。
  3. データベースやWebサービスの基礎設定を行います。
  4. Redmineの動作確認を行います。

想定している読者

  • 「Redmine」をUbuntuにインストールしてみたい
  • まずは動くところまで確認できればいい

前提

  • Ubuntuサーバの初期設定が終わった直後の状態を想定します。
  • DNSでドメインの名前が解決できることを前提としています
  • 環境は以下の通りです。
  • Apache系
  • MySQL
  • Ruby 3.0
  • また、パッケージ管理としてaptitudeを用いています。aptが好みの方はこちらに読み替えてください。

特記事項

  • 本手順ではRedmine 5.1をインストールします。
  • 本記事のredmineの格納ディレクトリは/home/www-data/redmineです。一般的なディレクトリ(/var/lib/redmine)と異なることを最初に注記します。

手順

Apacheのレポジトリを追加します。

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

apacheの追加モジュールをインストールします。

sudo aptitude install libapache2-mod-passenger

rubyのパッケージ管理(gem)を用いて必要なライブラリをインストールします。

sudo gem install bundler racc mysql2
# 「3 gems installed」が表示されればインストール成功です。

必要に応じてmysqlの初期設定を行います。

mysql_secure_installationによる初期設定を行います。

うまくいかない場合は以下を参照してください。

https://atelier.reisalin.com/projects/zettel/questions/5-mysql_secure_installation

mysqlでDBとユーザーを設定します。

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

設定したDBでログインできることを確認します。

mysql -u redmine -p
SHOW DATABASES;
/* DB:redmineがあることを確認します。 */

exit

Redmineプログラムを配置します。

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

Redmineのコンフィグを設定します。

sudo cp -pi /home/www-data/redmine/config/database.yml.example /home/www-data/redmine/config/database.yml
  • /home/www-data/redmine/config/database.yml

上記を教義・信仰に従ったエディタで編集してください。

database.yml 編集内容

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  # rootからredmineに変更します
  password: "redmine用のパスワード"
  encoding: utf8mb4
# 本番環境(production)のみ設定を行います

Redmineのマイグレーションを行います。

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

Apacheの設定ファイルを作成します。

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

Webページの表示を確認します。

http://設定したRedmineドメイン

でRedmineのトップページが表示されれば成功です。

直ちにadmin/adminでログインし、強固なパスワードを設定し直します。

Page 32 of 238

Powered by WordPress & Theme by Anders Norén