タグ: redmine_dmsf

Redmine 5.1環境で redmine_dmsf を完全に切除する ― Redmine 6.x移行へ向けたアンインストール記録

はじめに

前回、Redmine 6.xへの移行に備え、本番とは完全に切り離した Side-by-Side 構成の検証環境(redmine-clone)を構築しました。

今回取り組んだのは、長年利用してきたプラグイン、 redmine_dmsf を完全に取り除く作業です。

DMSFは非常に高機能なプラグインですが、現在の筆者の運用では役目を終えており、Redmine 6.xへの移行を見据えてアンインストールすることにしました。

ところが、標準的なアンインストール手順では途中で何度もエラーが発生し、作業はまったく進みません。

ロールバック
    ↓
エラー修正
    ↓
もう一度ロールバック
    ↓
別のエラー

まさにモグラ叩きです。

最終的には発想を切り替え、「過去のマイグレーションを修正しながら戻す」のではなく、「今後二度と利用しない」という前提で、プラグインを外科手術のように切除する方法を選択しました。

この記事は、その作業記録です。

今回の前提

今回の作業は、前回構築した 検証環境 (redmine-clone) を対象に実施しています。

項目内容
対象環境redmine-clone
Redmine5.1系
Ruby3.2系
Rails6.1
DatabaseMySQL 8.x
対象プラグインredmine_dmsf

本番環境では絶対に実施せず、必ず検証環境で確認してから行ってください。

今回の方針

通常であれば

sudo -u www-data bundle exec rake redmine:plugins:migrate VERSION=0

でロールバックするのが正攻法です。

しかし今回は、

  • Rails側の仕様変更
  • 古いマイグレーションコード
  • 運用期間中に蓄積したデータ

これらが複雑に絡み合い、途中でロールバックが停止しました。

そこで今回は

「DMSFを今後一切利用しない」

ことを前提に、

  • DMSFテーブルを削除
  • マイグレーション履歴を削除
  • プラグイン本体を撤去

という外科手術方式を採用しています。

作業前にMySQLバックアップを取得する

これから実施する操作は、テーブル削除やマイグレーション履歴の削除を伴います。

やり直しができるよう、必ずダンプを取得してから作業します。

※DB名、ユーザー名は自分の環境に合わせてください。

mysqldump \
  --single-transaction \
  --routines \
  --triggers \
  --default-character-set=utf8mb4 \
  -u redmine_clone \
  -p \
  redmine_clone \
  > redmine_clone_before_dmsf.sql

今回の作業では、このダンプが最後の保険になります。

最初に試した方法--NG

まずは標準手順どおりロールバックを試みました。

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

ところが、ここから長い戦いが始まります。

発生したエラー

1. Rails 6.1との仕様不整合

最初に発生したのは

ArgumentError: wrong number of arguments

というエラーでした。

原因は、古いマイグレーションで利用されている

t.index_exists?

の引数仕様が、現在のActiveRecordと一致していなかったためです。

2. 存在しないインデックス

修正すると、今度は

No indexes found...

で停止しました。

ロールバックコードは「存在するはず」と考えているインデックスが、現在のデータベースには存在しません。

過去十数年の運用の中でスキーマが変化していたことが原因でした。

3. nil参照によるクラッシュ

さらに進めると

undefined method 'id' for nil

で停止。

古いマイグレーションでは、存在する前提のデータが既になくなっており、ロールバック中にクラッシュしました。

今回の教訓

ここまでで感じたことは一つです。

標準手順だからといって、必ず最後まで実行できるとは限らない。

10年以上前に書かれたマイグレーションコードを、現在のRailsで逆方向へ実行する。

これは思っている以上に難しく、途中で止まる可能性があります。

一つ修正しても、次のマイグレーションで別のエラーが出る。今回の作業は、まさにモグラ叩きでした。

方針転換 ― 外科手術で切除する

今回はDMSFを再利用する予定はありません。

そこで、「きれいにロールバックする」ではなく、「安全に切除する」 という考え方へ切り替えました。

Step1 DMSFテーブルを削除する

まず外部キー制約を一時的に無効化します。

mysql -u redmine-clone -p

※本番環境のアカウントではログインしないこと。非常に悪い意味で眠気が吹っ飛びます。

USE redmine_clone;
SET FOREIGN_KEY_CHECKS=0;

続いて関連テーブルを削除します。

DROP TABLE IF EXISTS
    dmsf_file_revisions,
    dmsf_files,
    dmsf_folder_permissions,
    dmsf_folders,
    dmsf_links,
    dmsf_locks,
    dmsf_public_urls,
    dmsf_workflow_step_actions,
    dmsf_workflow_step_assignments,
    dmsf_workflow_steps,
    dmsf_workflows;

最後に外部キー制約を戻します。

SET FOREIGN_KEY_CHECKS=1;

Step2 マイグレーション履歴を削除する

続いて

schema_migrations

からDMSFの履歴を削除します。

DELETE
FROM schema_migrations
WHERE version LIKE '%-redmine_dmsf';

注意

この操作は「今後DMSFを利用しない」ことを前提としています。

データを保持したまま将来的に再利用する予定がある場合は、この方法は適しません。

Step3 状態確認

再度ロールバックを実行します。

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

正常終了していれば

echo $?
0

となります。

Step4 プラグイン本体を退避する

最後にプラグイン本体を退避します。

sudo mkdir -p \
/home/www-data/retired_plugins
sudo mv \
plugins/redmine_dmsf \
/home/www-data/retired_plugins/

Passengerを利用している場合は再起動します。

sudo touch tmp/restart.txt

apaceの再起動でもOKです。

sudo systemctrl reload apache2.service

動作確認

ここまで終わったら、

  • Redmineが起動する
  • Administration → Plugins にDMSFが表示されない
  • エラーログにDMSF関連エラーが出ていない
  • プロジェクトが正常に閲覧できる

ことを確認します。

問題がなければ、DMSFの切除は完了です。

おわりに

今回一番苦労したのは、アンインストールの方法そのものではありません。

**「標準手順が最後まで通らない」**ことでした。

最初はマイグレーションを一つずつ修正してロールバックしようと考えていましたが、進むたびに新しいエラーが現れ、終わりが見えませんでした。

そこで発想を変え、「もう利用しないものは、安全を確認したうえで切除する」という方針に切り替えたことで、ようやく前へ進むことができました。

もちろん、この方法は誰にでも勧められるものではありません。テーブルやマイグレーション履歴を直接操作するため、十分なバックアップと、失敗してもやり直せる検証環境があることが大前提です。

前回構築した redmine-clone は、まさにそのための環境でした。

標準手順が通らない場面ほど、「何度でもやり直せる環境」があることの価値を強く実感しています。

そして、この作業によってようやく、Redmine 6.xへの移行に向けた大きな障害を一つ取り除くことができました。

Redmine5.1に文書管理プラグイン(dmsf)をインストールする上での注意点。

こちらの記事の補足となります。

前提

2025/01/23時点のdmsfプラグインの最新バージョンはRedmine 6.0に合わせたものです。

そのため、git cloneする際に

https://github.com/danmunn/redmine_dmsf/releases

を確認して、Redmineのバージョンと合っているかを確認。

その上で

sudo -u www-data git clone -b v3.2.4 https://github.com/danmunn/redmine_dmsf

バージョンを指定してからgit cloneします。

これを怠ると

自分の例ですが、「Redmineそのものが深刻な機能不全を起こしました」。

具体的に言うと

  • チケットを発行、閲覧、更新時にエラーが起きる
  • Something wrongの画面が出る

などです。

重ねての注意点

  1. 強力な機能をもたらすプラグインほどDBや機能に深刻な影響をもたらします。DBのバックアップは必須です。
  2. 本当に動くバージョンかを更に確認。

と、躓いた上での経験談でした。

Redmine5.1のdmsfプラグインの脆弱性対応。(プラグインアップグレード)

概要

Redmineの文書管理プラグイン、dmsfに脆弱性が発表されたので、その対応を行います。

脆弱性概要

https://jvndb.jvn.jp/ja/contents/2024/JVNDB-2024-000055.html

当該プラグインを有効にしている場合、Redmineにログインしているユーザーによって、Redmineの実行権限で可能な範囲で、サーバー上の任意のファイルを取得されたり削除されたりする可能性があります。

脆弱性対象

バージョン3.1.4より前のバージョン

筆者環境

  • Ubuntu 22.04
  • Apache2.4
  • MySQL 8.0.3
  • Redmine 5.1
  • dmsf 3.1.3

注意事項

脆弱性に対応したバージョンは、2024年5月現在、Redmine 4.2には対応していません。

筆者のようにRedmine 4.2を単独ユーザーで運用していない限りは、以下のオプションを強く推奨します。

  • Redmine及びOS全体のバージョンアップを図る。
  • 本プラグインを無効化する。

さっくりとはならない手順

  1. DBのバックアップ
  2. Webサービス停止
  3. 既存プラグインディレクトリの退避
  4. git cloneによるプラグイン入手
  5. DBマイグレーション
  6. Webサービス起動
  7. プラグインアップグレード確認

DBのバックアップを行います。

  • 作業用ディレクトリに移動
cd /hoge && pwd

任意のバックアップディレクトリを指定します。

  • DBのバックアップ取得
 mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
  1. -u ユーザ オプション db名です。自分の環境に合わせます。
  2. パスワードはDBのユーザパスワードです。

Apacheの停止を行います。

※ 利用者への注意喚起も行ってください。

  • 停止前のステータス確認
systemctl status apache2.service

active (running)を確認します。

  • Apache停止
sudo systemctl stop apache2.service
  • 停止後のステータス確認
systemctl status apache2.service

inactive (dead)を確認します。

既存プラグインを退避します。

  • redmineプラグインディレクトリに移動
cd /redmine/root/directory/plugins && pwd

ディレクトリは自分の環境に合わせます。

  • dmsfプラグイン退避
sudo mv redmine_dmsf /path/to/backup/directory/redmine_dmsf.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • dmsfプラグイン退避確認
ls -ld /path/to/backup/directory/redmine_dmsf.$(date +%Y%m%d)

ディレクトリがあることを確認します。

プラグインをgit cloneします。

  • git clone
sudo -u www-data git clone -b v3.1.4 https://github.com/danmunn/redmine_dmsf

脆弱性に対応したv3.1.4を指定します。

  • clone確認
ls -ld redmine_dmsf

ディレクトリがあることを確認します。

プラグインのアップグレードを行います。

  • Redmineのルートディレクトリに移動
cd /redmine/root/directory && pwd

自分の環境に合わせます。

  • bundle install
sudo -u www-data bundle install
  • DBマイグレーション
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再開します。

  • 再開前のステータス確認
systemctl status apache2.service

inactive (dead)を確認します。

  • Apache再開
sudo systemctl start apache2.service
  • 停止後のステータス確認
systemctl status apache2.service

active (running)を確認します。

バージョンアップを確認します。

  1. Redmineに管理者権限でログインします。
  2. 管理>プラグインに進みます。
  3. DMSFプラグインが3.1.4になっていることを確認します。
  4. 既存の動作(チケットの発行/編集など)に問題が無いことを確認します。

おまけ:切り戻し手順

このプラグイン、アップグレードの失敗や手順ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

通常の切り戻し

ディレクトリ移動

  • Redmineのルートディレクトリに移動
cd /redmine/root/directory && 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 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のファイルサーバ化。(2023年2月現在に合わせた対応方法)-脆弱性についての追記あり-

概要

こちらの記事より月日が経過。バージョンアップとWindows11のセキュリティポリシー厳格化により、WebDAVサービスが使えなくなってしまいました。

そのため、2023年2月現在に合わせ:

  1. Redmine 4.2でも動く環境でのインストール手順
  2. Redmine本体の設定を修正する手順
  3. Windows 11でのWebDAVを有効にする手順

をそれぞれ追加しました。

注意事項

※注意事項※

2024/05/29現在、 Redmine 4.2に対応しているバージョンのDMSFプラグインはパストラバーサルの脆弱性があります。

https://jvn.jp/jp/JVN22182715/index.html

当該プラグインを有効にしている場合、Redmineにログインしているユーザーによって、Redmineの実行権限で可能な範囲で、サーバー上の任意のファイルを取得されたり削除されたりする可能性があります。

  • 複数ユーザーの利用を想定している場合は、Redmine全体のバージョンアップや当該プラグインの廃止を視野に入れてください。

備考

  • この作業、下手すればRedmine全体が使えなくなる作業です。(実際にRedmineが使えなくなりました)
  • そのため、DBのバックアップとリストアによる切り戻し手順も込みです。
  • そもそも:WebDAVを有効化するかどうかは組織のセキュリティポリシーに関わる問題です。有効化すべきか否かは事前に了承を取ってください。

プラグイン名

動作を確認した環境

  • Redmine 4.2
  • mysql Ver 8.0.31
  • Windows 11 (WebDav設定)

WebDAV接続の前提

  • Redmineがhttps化されていること。
  • 証明書をWindowsにインポートしていること。

導入時

  • 追加パッケージのインストール:要
  • 設定ファイルの修正:要
  • Gem追加:要
  • DBマイグレーション:要
  • Windows設定:要 (WebDAV接続をする場合のみ)

実施した手順

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

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

バックアップ取得

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

Redmineコンフィグファイルの修正

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

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

additional_environment.rbの作成(この作業をしていないなら必要です)

cp -pi additional_environment.rb.example additional_environment.rb

addtional_environment.rbの追記

  • 配置ディレクトリは自分の環境に合わせます。
cat <<- __EOF__ | sudo tee -a /home/www-data/redmine/config/additional_environment.rb
# Redmine DMSF's WebDAV
require File.dirname(__FILE__) + '/plugins/redmine_dmsf/lib/redmine_dmsf/webdav/custom_middleware'
config.middleware.insert_before ActionDispatch::Cookies, RedmineDmsf::Webdav::CustomMiddleware
__EOF__

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

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

  • リリースノートによれば、Redmine 4.2に対応しているバージョンはv3.0.5です。
cd /hoge && owd
# 任意の作業ディレクトリに移動し、そのディレクトリにいることを確認します。

wget https://github.com/danmunn/redmine_dmsf/archive/refs/tags/v3.0.5.zip

unzip v3.0.5.zip

sudo chown -R www-data:www-data redmine_dmsf-3.0.5

sudo mv redmine_dmsf-3.0.5/ /home/www-data/redmine/plugins/redmine_dmsf
# 移動先のディレクトリは自分の環境のプラグインは一ディレクトリです。
# ディレクトリ名から-3.0.5を取り除くのを忘れないでください。

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

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

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

sudo -u www-data bundle install

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. WebDAV:有効 (デフォルト)
  5. WebDavアクセス制御:読み書き可能
  6. 任意のプロジェクトに移動します。
  7. 「設定」をクリックし、「文書管理」にチェックを入れます。
  8. また、Redmine管理画面の「ロールと権限設定」で、ユーザのアクセス権を忘れないようにしてください。(「文書管理」のセクションです)

Windows : WebDAVサービス有効化

  1. Windows 11のスタート画面からwindows featuresと入力。Windowsの機能の有効化または無効化を起動します。
  2. SMB 1.0/CIFS ファイル共有のサポート全てにチェックを入れます。
  3. OKをクリックして再起動します。

多分必要な作業 - 証明書のインポート

Redmineの証明書をWindowsにインポートしておきます。

接続確認

  1. エクスプローラーを開きます。
  2. PCに移動し、右クリックから「ネットワークの場所を追加する」をクリックします。
  3. 次へ > カスタムネットワークの場所を選択 >次へと進みます。
  4. 「インターネットまたはネットワークのアドレスは以下のように指定します。
  5. https://[ドメイン名]/dmsf/webdav/[プロジェクト識別子]
  6. 「次へ」をクリック後、資格情報を確認されるので、Redmineのアカウントを入力します。
  7. エクスプローラーウィンドウが表示され、ファイルの読み書きができれば設定完了です。

おまけ:切り戻し手順

この作業、バージョン変更や設定ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

通常の切り戻し

ディレクトリ移動

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

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

sudo -u 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のファイルサーバ化。(dmsfプラグイン導入→ 別記事に2023/02/03時点での手順を記載)

要注意

2023/02/03時点での手順はこちらになります。

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

恐れ入りますが、上記を参照ください。

かつて以下に書かれていた手順はバージョンアップにより正常に動作しません。(なので消去しました)

導入のきっかけ

redmineの「ファイル」機能は便利ですが、以下の問題点がありました。

  • プロジェクトごとにファイルを探す必要がある。
  • ファイルをまとめてダウンロードできない。
  • 可能であれば宅内NWから直接やりとりをしたい。
  • 履歴管理はできるか?

そんな中で、うってつけのプラグインを発見しました。

動作確認環境

  • Linux Mint 20.03
  • redmine ver 4.2

redmine_dmsf概要

https://github.com/danmunn/redmine_dmsf

これ以降の手順は消去

Powered by WordPress & Theme by Anders Norén