Alfresco Community Edition 7.0をインストールできた

環境

  • Xeon E51620, 32GBメモリー
  • Ubuntu Desktop 日本語 Remix Ubuntu 20.04.1 LTS on VirtualBox 6.1
  • 2CPU, 12GBメモリー(Alfresco起動だけで3.1GB使用), VHD32GB(Alfrescoシステムだけで14GB必要)
  • LANにブリッジ接続

初期設定

  • 画面1280x979
  • ブランクスクリーン15分
  • IPv4アドレス自称。DNSで困ったから適当にDNSサーバーを指定。デフォルトゲートウェイ指定を間違えたのかな
  • LANG=C xdg-user-dirs-gtk-update
  • システムアップデート。ソフトウェアアップデート
  • ゲームソフト削除
  • sudo apt update
  • sudo apt upgrade
  • sudo apt install gcc make perl
  • VirtualBox Guest Additionsインストール
  • sudo apt autoremove

Alfrescoセットアップ

# This docker-compose file will spin up an ACS cluster on a local host or on a server and it requires a minimum of 12GB Memory to distribute among containers.
# Limit container memory and assign X percentage to JVM.  There are couple of ways to allocate JVM Memory for ACS Containers
# For example: 'JAVA_OPTS: "$JAVA_OPTS -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"'
# See Oracle docs (https://docs.oracle.com/javase/9/gctuning/parallel-collector1.htm#JSGCT-GUID-CAB83393-3438-44ED-98F0-D15641B43C7D).
# If the container memory is not explicitly set then the flags above will set the max heap default to 1/4 of the container's memory, which may not be ideal.
# For performance tuning, assign the container memory and give a percentage of it to the JVM.

# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"

services:
    alfresco:
        image: alfresco/alfresco-content-repository-community:7.0.0
        mem_limit: 1500m
        environment:
            JAVA_TOOL_OPTIONS: "
                -Dencryption.keystore.type=JCEKS
                -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
                -Dencryption.keyAlgorithm=DESede
                -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
                -Dmetadata-keystore.password=mp6yc0UD9e
                -Dmetadata-keystore.aliases=metadata
                -Dmetadata-keystore.metadata.password=oKIWzVdEdA
                -Dmetadata-keystore.metadata.algorithm=DESede
                "
            JAVA_OPTS: "
                -Ddb.driver=org.postgresql.Driver
                -Ddb.username=alfresco
                -Ddb.password=alfresco
                -Ddb.url=jdbc:postgresql://postgres:5432/alfresco
                -Dsolr.host=solr6
                -Dsolr.port=8983
                -Dsolr.http.connection.timeout=1000
                -Dsolr.secureComms=none
                -Dsolr.base.url=/solr
                -Dindex.subsystem.name=solr6
                -Dshare.host=127.0.0.1
                -Dshare.port=8080
                -Dalfresco.host=localhost
                -Dalfresco.port=8080
                -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos
                -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
                -Ddeployment.method=DOCKER_COMPOSE
                -DlocalTransform.core-aio.url=http://transform-core-aio:8090/
                -Dcsrf.filter.enabled=false
                -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
                "
        volumes:
          - acs-volume:/usr/local/tomcat/alf_data

    transform-core-aio:
        image: alfresco/alfresco-transform-core-aio:2.3.10
        mem_limit: 1536m
        environment:
            JAVA_OPTS: " -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
        ports:
            - 8090:8090

    share:
        image: alfresco/alfresco-share:7.0.0
        mem_limit: 1g
        environment:
            REPO_HOST: "alfresco"
            REPO_PORT: "8080"
            JAVA_OPTS: "
                -XX:MinRAMPercentage=50
                -XX:MaxRAMPercentage=80
                -Dalfresco.host=localhost
                -Dalfresco.port=8080
                -Dalfresco.context=alfresco
                -Dalfresco.protocol=http
                "

    postgres:
        image: postgres:13.1
        mem_limit: 512m
        environment:
            - POSTGRES_PASSWORD=alfresco
            - POSTGRES_USER=alfresco
            - POSTGRES_DB=alfresco
        command: postgres -c max_connections=300 -c log_min_messages=LOG
        ports:
            - 5432:5432
        volumes:
          - db-volume:/var/lib/postgresql/data

    solr6:
        image: alfresco/alfresco-search-services:2.0.1
        mem_limit: 2g
        environment:
            #Solr needs to know how to register itself with Alfresco
            - SOLR_ALFRESCO_HOST=alfresco
            - SOLR_ALFRESCO_PORT=8080
            #Alfresco needs to know how to call solr
            - SOLR_SOLR_HOST=solr6
            - SOLR_SOLR_PORT=8983
            #Create the default alfresco and archive cores
            - SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive
            #HTTP by default
            - ALFRESCO_SECURE_COMMS=none
        ports:
            - 8083:8983 #Browser port
        volumes:
            - ass-volume:/opt/alfresco-search-services/contentstore
            - ass-volume:/opt/alfresco-search-services/data

    activemq:
        image: alfresco/alfresco-activemq:5.16.1
        mem_limit: 1g
        ports:
            - 8161:8161 # Web Console
            - 5672:5672 # AMQP
            - 61616:61616 # OpenWire
            - 61613:61613 # STOMP

    proxy:
        image: alfresco/alfresco-acs-nginx:3.1.1
        mem_limit: 128m
        environment:
            DISABLE_PROMETHEUS: "true"
            DISABLE_SYNCSERVICE: "true"
            DISABLE_ADW: "true"
        depends_on:
            - alfresco
        ports:
            - 8080:8080
        links:
            - alfresco
            - share

volumes:
    acs-volume:
    db-volume:
    ass-volume:

感想

  • スナップショットを適宜保存して、手順のやり直しに備えた
  • VHD 12GBで始めたら、容量不測のためにdocker-compose upが中断してしまった。32GBへの途中増量はできたけれど、各ディレクトリーの容量再割り当てがわからんから、OSインストールからやり直した
  • docker-compose upにsudo不要とするため、docker-composeするユーザーをdockerグループにするらしい。わからん
  • マシン起動時にdocker-compose upしていてほしい。どうしたらいいんだ。わからん
  • pptxは文字化けする(日本語が豆腐になる)らしいが、確認できなかった。7.0だからIPAフォント不要になったのか、ホストOSにLibreOfficeインストール済だからなのか

mac mini に docker をインストール

手順

教科書はdockerを使ってmacOSにGitlabを構築する - Qiita(2018年07月13日に更新)。

  1. Docker をダウンロードする。サインイン不要だった
  2. ダウンロードした Docker.dmg をマウントする
  3. ウインドウが出る。ドラッグアンドドロップ指示に従う
  4. launchpad に Docker が追加されている。選ぶ
  5. 権限が必要だってダイアログにOK
  6. mac のユーザー名とパスワードを入力する

GitLab を設定したかったけれど、やめた

先の教科書を理解できなかったので、GitLab のテキストを読む。その他文献を探したが、ローカルで建てるだけの手順が分らなかった。やめた。Docker の使い道がなくなってしまった。

sphinx-quickstartからSphinxの挙動を知る

sphinx-quickstart

https://sphinx-users.jp/gettingstarted/make_project.html を参照する。

cd
mkdir sp # ホームディレクトリーが荒れないように、適当なディレクトリーを作る
cd sp
sphinx-quickstart
# y, project_name, author_name, 1.0.0, ja
# ディレクトリー build, source と Makefile, make.bat が作られる。2種のメイクは、OS依存なく生成できるように、だろう

index.rst は source ディレクトリーにあった。テキストの先を読んで、手順を前後してみる。

make html # Sphinx で文書が生成される
# ファイルマネージャー(pfmanfm)をマウスで実行
# ~/sp/build/html/index.html をマウスで実行。ウェブブラウザー(chromium-browser)で開かれる

さて感想。

  • とりあえず何かが作られたと分かった
  • サンプルテキストが見えない
  • 検索機能がある。Javascriptで構成されている。ユーザーサイドで実行するのか
  • ウェブサービスが立っていないので、ラズパイにHTTPアクセスできない。作られた文書を他のコンピューターから参照できない

ページ構成を作っていこう

cd source
mousepad index.rst # toctree付近を修正して保存する
mousepad expert_python.rst # サンプルテキストを貼り付けて保存する
mousepad art_of_community.rst # サンプルテキストを貼り付ける保存する
cd ..
make html # index.htmlを再読み込みしよう

quickstart から感じたこと、やりたいことの整理

  • プロジェクト名でディレクトリーを作ろう
  • source をバージョン管理システムに登録する
  • 1週に1回程度、source の変化を検査して、current ビルドを建ててしまう
    • ビルドエラー、警告が発生したらメールを投げる
  • current ビルドをHTTPアクセス可能にする
  • リリースビルドは各版、参照できるように残しておく。また、HTTPアクセス可能にする
  • リリースビルドでは、印刷用の PDF を出力しよう
  • システムのバックアップをどこかに取ろう
  • 文書のバックアップをどこかに取ろう
  • リリースビルド、current ビルドを手動実行する手段を作ろう
  • 版番号を自動採番しよう

ラズパイにSphinxをインストールする

社内文書の電子化2.0をラズパイで実現したい - sulsnow’s blogの続き。

用意したもの

Raspberry Pi にOSを仕込み、少々の初期設定

  1. Raspberry Pi Imagerでmicro SDカードをFAT32で初期化する
  2. Raspberry Pi Imagerでmicro SDカードにRaspberr Pi OS (32-bit)を書き込む(Ubuntu各種はラズパイが使用不能に追い込まれた)
  3. ラズパイを起動する。ホスト名はraspberrypi。ユーザー名はpi。パスワードは初回起動時に設定する
  4. Raspberry Piの設定を変える。解像度は1280x800。インターフェイスVNCを有効にする
  5. VNC Viewerでアクセスする。ホスト名でアクセスできないときがあるから、ifconfig |less で調べておく
  6. リポジトリを国内のミラーサイトに変更する。下記資料参照。sudo mousepad /etc/apt/source.list
  7. apt updateする
  8. sudo apt upgradeする
  9. sudo rebootする

Sphinxをインストールする

  1. python3をデフォルトにする。下記資料参照
  2. pip install -U Sphinxする。Sphinxがインストールされる

試行錯誤する

  • 1プロジェクト1文書なのか
  • フォルダ分けやMercurialとの連携はどう考えればいいんだ
  • HTTP公開はどう処置すればいいんだ
  • 分からないことばかりゆえ、MkDocsを試してみたくなった
$ sphinx-quickstart
Sphinx 3.2.1 クイックスタートユーティリティへようこそ。

以下の設定値を入力してください(Enter キーのみ押した場合、
かっこで囲まれた値をデフォルト値として受け入れます)。

選択されたルートパス: .

Sphinx 出力用のビルドディレクトリを配置する方法は2つあります。
ルートパス内にある "_build" ディレクトリを使うか、
ルートパス内に "source" と "build" ディレクトリを分ける方法です。
> ソースディレクトリとビルドディレクトリを分ける(y / n) [n]: y

プロジェクト名は、ビルドされたドキュメントのいくつかの場所にあります。
> プロジェクト名: testproject
> 著者名(複数可): author_name
> プロジェクトのリリース []: 1.0.0

ドキュメントを英語以外の言語で書く場合は、
 言語コードで言語を選択できます。Sphinx は生成したテキストをその言語に翻訳します。

サポートされているコードのリストについては、
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language を参照してください。
> プロジェクトの言語 [en]: ja

ファイル /home/pi/source/conf.py を作成しています。
ファイル /home/pi/source/index.rst を作成しています。
ファイル /home/pi/Makefile を作成しています。
ファイル /home/pi/make.bat を作成しています。

終了:初期ディレクトリ構造が作成されました。

マスターファイル /home/pi/source/index.rst を作成して
他のドキュメントソースファイルを作成します。次のように Makefile を使ってドキュメントを作成します。
 make builder
"builder" はサポートされているビルダーの 1 つです。 例: html, latex, または linkcheck。

資料

source.list

#deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian stretch main contrib non-free rpi
Raspberry Pi : リポジトリを国内のミラーサイトに変更する | R-Y-O の IT 備忘録 Ver.2.0

python3をデフォルトにする

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: /usr/bin/python (python) を提供するために自動モードで /usr/bin/python2.7 を使います
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2
update-alternatives: /usr/bin/python (python) を提供するために自動モードで /usr/bin/python3.7 を使います
Raspberry Pi の Python デフォルトバージョンを 2系 から 3系 に切り替える - Qiita 2019年12月20日に投稿

処置後は、

pi@raspberrypi:~ $ update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.7
pi@raspberrypi:~ $ update-alternatives --config python
alternative python (/usr/bin/python を提供) には 2 個の選択肢があります。

  選択肢    パス              優先度  状態
------------------------------------------------------------
* 0            /usr/bin/python3.7   2         自動モード
  1            /usr/bin/python2.7   1         手動モード
  2            /usr/bin/python3.7   2         手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 

とほほのPython入門 - とほほのWWW入門

  • 元々は Pythonソースコードに記述された pydoc コメントを整形するツールとして開発されました。
  • 現在では Python ドキュメントに限らず、あらゆるドキュメント作成ツールとしても利用されています。
  • reStructuredText という軽量マークアップ言語を使用します。拡張子は *.rst です。
  • 単一HTML、複数HTML、LaTeX、PDF、プレインテキストなどの出力フォーマットをサポートします。
  • Python プログラムのマニュアル化は、*.py ファイルを *.rst に変換し、これをビルドします。
  • 本ページでは、2019年10月20日時点の最新版 Sphinx 2.2.0 をベースに説明します。
とほほのPython入門 - とほほのWWW入門

社内文書の電子化2.0をラズパイで実現したい

  • 社内文書がWordとExcelで作られている
  • 文書の関係性が分かりにくい
  • 社内文書がファイルサーバーのあちこちに配置されていて、整理されていない
  • 社内文書が作成を指示している文書が管理されていない

といったことで辛い。情報収集の結果、Sphinxシステムを試すことにした。課題は

といったところ。手元にRaspberry Pi 3 Model B+があったので、これをサーバーに仕込む。

  1. うちの会社の文書管理(その1) − SphinxとMercurialによる作成・版管理 - ファーエンドテクノロジー株式会社 2016.02.03
  2. うちの会社の文書管理(その2) − Raspberry PIを使用した社内ポータル - ファーエンドテクノロジー株式会社 2016.03.02
  3. Buy a Raspberry Pi 3 Model B+ – Raspberry Pi
  4. Sphinx-Users.jp — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
  5. Mercurial SCM
  6. 社内のマニュアルをSphinxで作ってみた Published on Nov 28, 2017
  7. 運用手順書の運用をカイゼンする - Excel方眼紙は卒業できるのか - - サーバーワークスエンジニアブログ 2018-03-06
  8. MkDocs
  9. MkDocsによるドキュメント作成 - Qiita
  10. Markdownでドキュメントが作れるMkDocsが便利過ぎる - Qiita
  11. Sphinxの使い方事例 Published on Oct 2, 2012
  12. O'Reilly Japan - Sphinxをはじめよう 第2版

いまさらFileMaker Server 11をmac 10.14で動かせないが、Windows 7 Professionalでは動く

FMS11 Windows要件

サポート断絶間近のWindows 7 Professional SP1。

  • Java実行環境としてJava SE 6
    • FMSディスクにUpdate 20がある
    • Oracleアカウントを取得すると、Update 45を得られる
    • Java SE 7以降では不具合情報あり
  • HTTPサーバーとしてInternet Information Services 5
  • Java実行のためInternet Explorer 9Java Web Startするらしい
    • IE11が入ってしまっても戻せる。戻した後は自動更新しないようにロックする
    • 最近のJavaではJava Web Startは廃止している。最近のブラウザーJava稼動を受け付けない
    • 旧バージョンFirefoxを取得できるが、Java Pluginを用意できない。IE9でFMS管理、最新のFirefoxで通常ウェブブラウズと使い分けたい

mac 10.14で無理だった話

mac java 6情報

Apple Javabrew Javaのバージョン情報。失敗した。コマンドがそろっていない。

$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.6.0_65-b14-468, x86_64:	"Java SE 6"	/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386:	"Java SE 6"	/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Windowsからmac miniにVNCしたらキーマップがずたずた

ずたずた内容

  • Shift-2がアスタリスク(*)
  • アンダースコア(_)を入力できない
  • 小括弧開き(()を入力できない
  • 記号入力がずたずた
  • mac初回起動時設定のUSキーボード扱いが、アットマークとアンダースコアを入力できるから、まだまし
    • USキーボード扱い自体、良くない

VNC設定

生パスワードをやりとりする。インターネットを経由するなら、別途、SSHトンネリングしましょう。

mac側設定

IPv4アドレスを自称させておく。

  1. 環境設定>リモート
  2. 画面共有にチェック
  3. パスワード設定する

Windows側設定

RealVNC、TigerVNC、UltraVNCを試した。UltraVNCが親切UIなので使おう。

f:id:sulsnow:20191230164802p:plain
ultravnc

  1. 圧縮設定は自動選択
  2. 日本語キーボード選択
  3. 接続先IPv4アドレス
  4. Save as default
  5. Connect
  6. macで設定したVNCパスワードを入力
  7. macのログイン画面が表示される

その他

  • 画面応答がRDPに劣る
  • クリップボード共有できているため、ターミナルへのコピペ可能
  • ファイル転送を試していなかったなあ
  • 翌日、macを初期化して再設定すると、キーマップが正常化した