Sharedocsをインストールしてみたが・・・

社内の個人PCの中には整理されてないテキストのメモが大量にある。

将来的にまとめてファイルサーバに置こうと思うのだけど、ファイルサーバ自体がフォルダが多すぎて何がどこにあるのかわからなくなる事が多い(--;)

そんな訳で、最近流行り?なQiitaのクローンを社内サーバに構築してみようとしたメモw

 

まず、何を使うかでGoogle先生に聞いてみたらLodgeなるソフトがあった。しかし、Rubyなのでインストールでエラーが出てもさっぱり分からない。

次にMoongiftを見てたら、SharedocsなるQiitaクローンが紹介されてた(Lodgeも紹介されてたので、最初からMoongiftを見れば良かったかもw)

こちらはJAVA。。。う~ん、JAVAもわからんけどRubyよりかは何とかなるか・・・。
 ※なんともならない事はすぐにわかったんだけどねーー;

 

とりあえず、JAVAが必要なのでインストール。OSはいつもの通りCentOS7だよw

なので、バージョンは1.8.0が最新。

yumでさっくりインストール
  yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

 

つぎにscalaの2.11か2.12が必要なので、今回はscala-2.11をインストール。

 ※2.12でも良いと思うんだけど、cat /releaseがどうのこうのと出るので2.11にしてみた

scalaのインストール。。。と言っても解凍してPATHを通すだけ
  cd /usr/local/src

  wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz

  tar zxvf  scala-2.11.7.tgz

  mv scala-2.11.7 /usr/local/scala

 

PATHを通してscalaが使えるようにする。

  vi /etc/profile

最終行に以下の1行を追記

  export PATH=$PATH:/usr/local/scala/bin

 

一度ログアウトして再ログインするか、source /etc/profileってすると反映する。

  scala -version

とすると、以下のようにバージョン情報が表示される

  Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL

 

さて、SharedocsはPostgreSQLを使うのだけど、バージョン9.2なのでSharedocsが要求してるバージョン(9.5 or 9.6)よりもかなり低いのでPostgreSQLリポジトリを追加して9.6をインストールする

 

リポジトリの追加
  yum localinstall https://yum.postgresql.org/9.6/redhat/rhel-7.3-x86_64/pgdg-centos96-9.6-3.noarch.rpm

インストール
  yum install postgresql96-server postgresql96-devel

 

データベースの初期化
これをしないでPostgreSQLを起動させたらエラーになる
  /usr/pgsql-9.6/bin/postgresql96-setup initdb

自動起動の設定と起動
  systemctl enable postgresql-9.6
  systemctl start postgresql-9.6


Sharedocs用のDBユーザとデータベースを作成
  su - postgres

  createuser -P sharedocs
  createdb -E UTF8 -T template0 --lc-collate=ja_JP.UTF-8 --lc-ctype=ja_JP.UTF-8 sharedocs

 

設定ファイルを編集
  vi 9.6/data/pg_hba.conf

  # "local" is for Unix domain socket connections only
  local all all md5                               << md5にしないとパスワード付ユーザでコンソールログイン出来ない
  # IPv4 local connections:
  host all all 127.0.0.1/32 md5           << md5にしないとSharedocsから接続が出来ない
  # IPv6 local connections:            
  #host all all ::1/128 ident                 << IPv6は面倒なのでコメントアウト


PostgreSQLを再起動
  systemctl restart postgresql-9.6

 

ようやくSharedocsのインストール
  cd /usr/local/src
  git clone https://github.com/atware/sharedocs.git
  cd sharedocs

さて、公式のgithubにある手順だとdb:migrateする事になってるんだけど、sharedocsEnvが無いって怒られるし、最終的にDBに接続できねーって怒られる(--;)
なので、先にsharedocsEnvを作成する
  cp -p sharedocsEnv-template sharedocsEnv
  vi sharedocsEnv

とりあえず以下のところだけ設定
  export DATABASE_HOST="localhost:5432"
  export DATABASE_DBNAME="sharedocs"
  export DATABASE_USER="sharedocs"
  export DATABASE_PASSWORD="hogehoge" 

※それぞれ設定はPostgreSQLで作成したユーザ名とパスワードとデータベース名にする

これでdb:migrateしてもエラーにならないはず。はずなのよw
  ./sharedocs db:migrate

エラー無く終了したらSharedocsの環境は完成!

起動テスト
  ./sharedocs run

コンソールにずらずらずら~とメッセージが出てポート8080が開く

おっと、忘れちゃいけない。CentOS7からはFirewall-cmdが動いてるので8080ポートを開けてやる

  firewall-cmd --add-port 8080/tcp --permanent
  firewall-cmd --reload

 

ブラウザでアクセスしてみよう
  http://IPADDRESS:8080/

ログイン画面が表示されただろうか?
デフォルトではメール認証と公式サイトに書いてあるが実際はGoogle+認証になってるはず。
タイトルの文字も含めてsharedocsEnvで変更が可能


サイト名
  export SITE_NAME=

タイトル
  export SITE_TITLE=

認証方法(googlegoogle+認証)
  export LOGIN_PROVIDOR=app

許可ドメイン
  export LOGIN_PERMITTED_EMAIL_DOMAINS=renbird.jp

画像アップロード先(s3はAmazonのオブジェクトストレージ)
  export UPLOAD_DESTINATION=local
  export LOCAL_UPLOAD_BASE_DIR="/tmp"
  export LOCAL_UPLOAD_BASE_URL="/static/uploads"

 

さて、このままであEnterキーを押すと止まっちゃいます。

デーモン化して使う為にはどうするか?
実は・・・ここから先の正解はわかんないw

  ./sharedocs
って実行すると色々とオプションが表示される。

  ./sharedocs package:standalone
なんてすればスタンロアローンアプリ(.jar)が作成される。

  java -jar ***.jar
とすれば起動できるんだけど、sharedocsEnvで設定される環境変数が読み込まれないので起動に失敗する。
だめじゃん(--;)
なので、sharedocsEnv自体はbashなのでsharedocsEnvをコピーして最後の行にさっきのコマンドにログを出力するように書いて追加する
  java -jar ***.jar > /var/log/sharedocs/out.log 2> /var/log/sharedocs/err.log &

終了するにはプロセスを切るしかないか・・・これはもう少し考える

 

この辺りの本を読めばいい方法がみつかるかな? 

CentOS7システム管理ガイドsystemd/NetworkManager/Firewalld徹底攻略

CentOS7システム管理ガイドsystemd/NetworkManager/Firewalld徹底攻略

 

  

Scalaはさっぱりわからんです(^^;)

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版

 

 

Guide to ScalaーScalaプログラミング入門

Guide to ScalaーScalaプログラミング入門

 

 
とりあえず動くようになったので良いかwww

 

こっそり・・・
実はメール認証した時にメールが飛ばない(--;)

どうしたものか・・・とりあえずログにメールの本文が表示されるのでそこからURLを引っこ抜いて認証させたwww

解決方法がわかったら教えて欲しい。