社内の個人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=
認証方法(googleはgoogle+認証)
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徹底攻略
- 作者: デージーネット
- 出版社/メーカー: 秀和システム
- 発売日: 2015/10/29
- メディア: 単行本
- この商品を含むブログを見る
Scalaはさっぱりわからんです(^^;)

- 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘
- 出版社/メーカー: インプレス
- 発売日: 2016/09/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
とりあえず動くようになったので良いかwww
こっそり・・・
実はメール認証した時にメールが飛ばない(--;)
どうしたものか・・・とりあえずログにメールの本文が表示されるのでそこからURLを引っこ抜いて認証させたwww
解決方法がわかったら教えて欲しい。