WPP
ForgeJo を V12 にアップグレード

さて宅内の git サーバの ForgeJo を使っていると以下のメッセージが赤字で出て鬱とうしいのでアップグレードした。

「Forgejo 12.0.4 が入手可能になりました。 現在実行しているのは 11.0.0+gitea-1.22.0 です。」

手順を確認するのさえ面倒だったのだが、 docker-compose でイメージ指定を 11 > 12 に変更するだけで OK でした。

念のため /volume1/docker/forgejo を何処かにコピーしておけばアップグレード中にトラブルがあってもロールバックできます。
普段は破棄上等って感じで壊れたらその時って思っていますが、さすがに納品前のデータもあるのでバックアップはとりました。

version: '3'

networks:
  forgejo:
    external: false

services:
  server:
    image: data.forgejo.org/forgejo/forgejo:12
    container_name: forgejo11
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - forgejo
    volumes:
      - /volume1/docker/forgejo:/data
      #- /etc/timezone:/etc/timezone:ro
      #- /etc/localtime:/etc/localtime:ro
    ports:
      - '8002:3000'
      - '8003:22'

実際このdocker は、Synology NAS で動いていますが、docker を入れることでどこでも同じように再現できるのがいいとこですね。その気になればいつでも docker-copose.yml とボリュームをコピーすれば引っ越しできます。

gnome calendar が fcitx 使わなくなった?

linux mint 22.2 (Ubuntu 24.04) を使っています。いつからかわかりませんが、fcitx では日本語入力できなくなってしまったようです。
linux mint だけで起きる現象なのか fcitx 関連の問題なのかイマイチわかりませんが、ibus を使用するように強制して回避できたのでメモします。

まずは .desktop を編集します。

[Desktop Entry]
Name=Calendar
Comment=Access and manage your calendars
Exec=/opt/gnome-calendar/launch.sh %U
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=org.gnome.Calendar
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Office;Calendar;Core;
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=Calendar;Event;Reminder;
MimeType=text/calendar;
DBusActivatable=true
X-Ubuntu-Gettext-Domain=gnome-calendar
PrefersNonDefaultGPU=false

Exec に今回作成するスクリプトを指定します。
ここでは /opt 以下に置きました。スクリプトはこんな感じにしました。

#!/bin/bash
ibus-daemon -dr
sleep 0.4
GTK_IM_MODULE=ibus XMODIFIERS=@im=ibus gnome-calendar "$@"

ibus デーモンを再起動して少しだけ待つ処理をいれています。うまく行くなら sleep はなくてもいいかもしれない。
“$@” で .desktop アイテムの %U が渡ってきます。
まあ、ちょっとデグレしているだけのような気もするのでこれで様子見

claude-desktop に claude-code を追加した

巷に溢れている内容ですが、自分の設定を晒して将来の再インストールに備えておきます。

設定に入り開発者から詳細設定を開きます。

結局 claude_desktop_config.json を編集するのですが以下のようにしました。
自環境では ~/.config/Claude/ に claude_desktop_config.json がありました。

{
  "systemPrompt": "ファイル編集時は、書き換える前にユーザの承認を得てから行うこと",
  "mcpServers": {
    "claude-code": {
      "command": "/home/自ユーザー名/.volta/bin/claude",
      "args": [
        "mcp",
        "serve"
      ],
      "env": {}
    }
  }
}

”command” 節は、claude code の場所を which claude で確認しておきます。

LM 22.2 と claude desktop で filesystem 機能拡張が起動しない

LinuxMint 22.2 (Zara) で github の非公式 claude-desktop を使っているのですが、 filesystem 機能拡張が動作していないことにふと気づきました。

issue の #118#115 と同じ現象なんだと思いますが、 app.asar が所定の場所にないのが問題なようです。なので app.asar を見つけられるようにしてやります。

環境

aaddrick/claude-desktop の以下のバージョンで発生したのを確認した
Release v1.1.6+claude0.13.35
Release v1.1.5+claude0.13.19

Linux Mint 22.2 (Ubuntu 24.04)

対処方法

#118 にある通りですが、 /usr/lib/claude-desktop に配置されている app.asar を所定の位置で読めるようにしてやります。

$ sudo ln -s /usr/lib/claude-desktop/app.asar /usr/lib/claude-desktop/node_modules/electron/dist/resources

; 自環境では他のファイルは UID: 1001 の所有になっていたので合わせる
$ sudo chown 1001:1001 app.asar

aaddrick/claude-desktop-debian: Claude Desktop for Debian-based Linux distributions

Joplin-vieweb を試してみる

しばらく前から Evernote の代替として Joplin を使用している。Joplin には公式の Web クライアントが存在していない。会社支給の PC にはアプリをインストールできないので Joplin に書き溜めたメモをみることができないのでちょっとだけ困っていた。

Claude に聞いてみると Joplin-vieweb というサードパーティの Web クライアントがあるらしいのでインストールしてみた。

docker-compose

インストールする環境では、外からのアクセスをさばく nginx がリバースプロキシとして動作しているので、github の docker-compose-joplin-only.yml をベースにいじっていく。どうやらこの .yml だと外からのアクセス用の設定は、含んでいないようだ。

こんな風になった。
ポイントは、enviroment: ORIGINS で http://joplin-vieweb というコンテナ名の項目を追加しているところ。

docker には、内部ネットワークだとコンテナ名で名前解決してくれる機能があるのでそれを利用する。下の例では、network に IP アドレスを固定で割り当てているが、 不要です。

http://MYHOST.local は docker をホストしている PC の mdns ホスト名です。自IP でもかまわない。

version: '3.8'

services:
  joplin-vieweb:
    image: gri38/django-joplin-vieweb:latest
    container_name: joplin-vieweb
    depends_on:
      - joplin-terminal-xapi
    ports:
      - "8001:8000"
    volumes:
      - ./joplin-vieweb-data:/home/joplin
      - joplin:/root/.config/joplin:ro
      - joplin-vieweb:/root/.config/joplin-vieweb
    networks:
      joplin-net:
        ipv4_address: 172.20.0.2
    environment:
      - ORIGINS='http://MYHOST.local', 'http://joplin-vieweb'
      - JOPLIN_LOGIN_REQUIRED=False
    restart: unless-stopped

  joplin-terminal-xapi:
    image: gri38/joplin-terminal-xapi:latest
    container_name: joplin-terminal
    restart: unless-stopped
    volumes:
      - joplin:/root/.config/joplin
  
    networks:
      joplin-net:
        ipv4_address: 172.20.0.3  

volumes:
  joplin:
  joplin-vieweb:

networks:
  joplin-net:
    ipam:
      driver: default
      config:
        - subnet: 172.20.0.0/24

接続と初期設定

参考の公式 GitHub のままだが、

まず docker-compose up で起動して (MYHOST.local は適宜変更してください。)

http://MYHOST.local/admin
で django の管理画面? に入り、パスワード設定、ユーザー追加する

http://MYHOST.local/joplin
で joplin の画面が表示される。

使ってみた感想は、若干使いにくい。緊急時にはいいのかもしれない。これだったらリモートで PC のデスクトップに入ったほうが使い勝手はいいかもしれない。

参考

joplin-vieweb/joplin-vieweb: A web viewer for Joplin app

Rock64 + dietpi に casaOS をインストールしてみた

そろそろ synology NAS をやめようかなと考えている。現在の筐体で3代目だが、「HDD の対応が厳しくなって compatibility list 以外のものでは動かなくなるらしい」。

パッケージされているので楽なのは確かだが、正直にいうと適当なケースにボロい CPU のっけているだけで 5万円前後はするのでなんだかなーとは以前から思っていた。
適当な UI と Portainer があればいいんじゃね? と思い幾星霜。

Synology に限らず QNAP や Asustor、Netgear、UGREEN でも docker 動くものになるとこの位の価格になる。

そこでセルフホスト出来る代替品を探している。

とりあえず、手元で空いている Rock64 にインストールしてみた。

casaOS に行き着く前に Open Media Vault も試してみたが Rock64 + dietpi では自分は安定して稼働させることができなかった。ラズパイや x86 ならまた異なる結果になるのかもしれない。

インストール

インストールは公式のページ通りでOK

curl -fsSL https://get.casaos.io | sudo bash

DATA フォルダを ssd に移動する

casaOS は /DATA を データフォルダする設定のようで、各種アプリのインストール先や、共有ファイルの置き場になっている。

今回インストールした状況では /DATA は sdカード上の別パーティションにマウントされていた。

一方、Rock64 は sd カードに diepi os をいれ boot している。

つまり、ssd にパーティション切って /DATA でマウントすれば casaOS が ssd を使うようになる。

現時点では casaOS のドキュメントはあまり充実していないので discord のアカウントを作ってコミュニティのコンテンツみないとちょっと厳しいかも。

まだ、使って数日だが、様子をみて NAS 専用機から switch しようと思う。

参考

公式: IceWhale のGithub リポジトリ一覧

User Pages | CasaOS Wiki

Linux + OceanAudio でリモートのフォルダを扱うときは CIFS (Samba)を使うほうがいい

さて、これも自分向けメモではあるがきっと数カ月後には忘れているだろうから記録する。

状況

どんな状況かといいうと LM22.1 (Ubuntu 24.04) の Cinnamon デスクトップでリモートの CIFS (Windowsのファイル共有)フォルダをマウントすると gvfs でマウントされる。最近のデスクトップでは同じようなものも多いと思う。

gvfs でマウントすると CIFS でマウントした場合とはパスが異なる。これが原因で gvfs 経由のファイルアクセスには失敗することがある。具体的には

gvfs の例
/run/user/1000/gvfs/smb-share:server=192.168.1.xx,share=datafolder

cifs の例
/mnt/shared/datafolder

こんな感じで “,” や “:” などが意図しない場所に存在するために gvfs を考慮していないアプリだと上手く動作しないことがあるらしい。

要するに fopen() なんかに gvfs のパスをそのまま渡しても単に失敗するのだと推測される。

そんな場合は、素直に mount -t cifs でマウントすればいい。

$ sudo mount -t cifs -o uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777,username=USER //SERVERl/PATH /mnt/MOUNT

コマンドの以下の部分は、適宜環境に合わせる必要がある

USER: リモートの共有フォルダにアクセスする際のユーザー名

SERVE: リモートの共有フォルダのサーバーアドレス

PATH: 共有フォルダのパス

MOUNT: マウントしたいフォルダ名

ちょっと長いのでスクリプトにしておいたほうがいいと思う。

Rock64 のDietpi 9.15.2 でコンソールが表示されないときの対処方法

Rock64 というラズベリーパイもどきをスモールサーバとして使用しているのですが、そこで動く OS: Dietpi を新たに入れ直したところコンソール画面が表示しない現象が発生しました。

以前のバージョンではこういった現象はおきませんでしたが、インストーラーなんかも少し変わっていたので起動周りでなにか変更があったのかもしれません。

ディスプレイからは信号なしのアラートがでるので、detect を失敗しているかディスプレイが対応していないモードで出力しているのかもしれません。中華製モバイルディスプレイなので何か作りがいい加減なのが根本原因かもしれませんが、真相はわかりません。

dietpi-config でコンソールの解像度(要するに kernel の起動パラメータ)を変更出来るようなのでやってみます。

やってみるとわかるのですが、dietpi-config でリセットしてから再セットする必要があるようです。

  1. sudo dietpi-condig でコンフィグツールを起動
  2. 1. Display Options に入る
  3. 0. DietPi-Display mode and rotation (beta) に入る
    こんな項目は以前なかったと思う。
  4. Reset を選択
  5. <Exit> を選び再起動する
  6. 再起動後、2度目の sudo dietpi-config
  7. 1. Display Options に入る
  8. mode に入り 1024×768 など写りそうなモードを選択する
  9. <Exit> を選び、また再起動

この手順でコンソールを表示するようになった。

まあ、通常は ssh しかしないので画面表示できなくても問題はないが、この手の SBC は初回起動時から ssh 接続まではどうしても画面があったほうがいいので一応対処した。

最近の Raspberry OS だとそこら辺のネットワークを埋め込んで SD に焼けるので初回からディプレイなしでいけるのはいいところ、とは言え画面あったほうが便利ではある。

LM22.1 (Ubuntu 24.04) の Viber で日本語入力できるようにする。

さて、とある取引先と Viber でやり取りをしているのだが、Linux Mint だと日本語入力できなかったので対処したという話。

作業内容からすると ibus をインストールして Viber で認識できるようにしたって感じでしょうか。

環境

  • Linux Mint 22.1 (cinammon)
  • Fcitx + Mozc
  • 公式の viber.AppImage を /opt/viber/ に配置

手順

Claude がわりといい感じで見つけてくれるので早速Claude に聞いてみると

# ダウンロードした AppImage を移動
$ mv viber.AppImage /opt/viber

$ sudo apt install ibus-mozc


$ ibus-setup
# 起動したら Mozc を追加する

# ここで再起動かデスクトップに再ログインしないと ibus がアクティブにならないかも

# 以下を .profile か .bashrc に入れろって指示だったが今回は、起動スクリプトで直接指定した。
# export GTK_IM_MODULE=ibus
# export QT_IM_MODULE=ibus
# export XMODIFIERS=@im=ibus

$ vi /opt/viber/launch.sh
#!/bin/bash
GTK_IM_MODULE=ibus QT_IM_MODULE=ibus XMODIFIERS=@im=ibus /opt/viber/viber.AppImage
:wq

$ chmod 755 /opt/viber/launch.sh

# メニューから起動できるように .desktop を作成
# Ubuntu だと場所や方法が異なるかも
# アイコンは LM の場合は入っていたのでそれを利用、なければ適当に。
$ vi ~/.local/share/applications/viber.desktop
[Desktop Entry]
# Name はお好みで
Name=Viber - AppImage
#Exec=/opt/viber/viber.AppImage
Exec=/opt/viber/launch.sh
Comment=
Terminal=false
PrefersNonDefaultGPU=true
Icon=/opt/assets/viber.svg
Type=Application
:wq

デスクトップのメニューから Viber を起動すると ibus 経由で日本語入力が出来るようになった。

参考

linuxmintでブラウザーでは日本語打てるんですがvIberだと英語… – Yahoo!知恵袋
ibus にしか対応していないという示唆

dietpi の mariadb にローカルからログイン

いつも忘れるのでメモ。

dietpi 公式の mariadb にはルートユーザーは コンソールにログインするときの root ユーザーとそのパスワードとなっているが、通常ユーザで ssh したコンソールでは mariadb -u root -p が動作しない。

$ sudo mariadb
とすることで mariadb のコンソールに接続することができる。

参考

Databases and Data Store Software Options – DietPi.com Docs