Need help with lodge?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

lodge
463 Stars 89 Forks MIT License 435 Commits 28 Opened issues

Description

イントラネット内で誰でも構築できる情報共有サービス

Services available

!
?

Need anything else?

Contributors list

Gitter chat Build Status Coverage Status Code Climate


これは何?

ロッジと呼びます。 イントラネット限定でも使える、ナレッジ/ノウハウ情報共有サービスです。 手軽に導入できて、チーム内全体の情報共有やナレッジ蓄積の手助けができることを目標としています。

主な特徴

以下のような特徴を持ちます。

  • 無料、OSS、MIT License
  • イントラネット内での構築が可能なので、社外秘な情報を含むナレッジやノウハウの共有に利用可能。
  • Markdown記法による直感的かつ簡単な記述でサクサク書ける
  • コードのシンタックスハイライト機能
  • 投稿前に確認できるプレビュー機能
  • ストック機能により、お気に入りの記事やあとで見たい記事等を手軽に保存
  • 記事に複数のタグをつけて管理
  • タグをフォローすることによる個人ごとのフィードのカスタマイズ表示
  • 全文検索や各種クエリなどを利用した高度な検索機能
  • 導入までの手軽さ(すぐにインストールできます)
  • コメント、Contribution、通知機能等によるコミュニケーションやナレッジ共有活動の活性化
  • 編集履歴機能により記事の変更点を差分表示
  • メールアドレスだけで誰でも簡単にアカウント作成が可能
  • Gravatarと連携したユーザアイコン(登録メールアドレスから自動取得)

上記以外にもまだまだ新機能開発や改善を行っていく予定です。皆様のご協力をお願い致します。

スクリーンショット

一覧画面

一覧画面

記事閲覧画面

記事閲覧画面

インストール

  1. 事前準備として以下が必要ですので、インストールしておきます。

    • Ruby 2.1, 2.2, 2.3
    • Gem 2.2以上
    • MySQL (MySQLを利用する場合)
    • sqlite3 (sqlite3を利用する場合)
    • Bundler
  2. まずは本プロジェクトをcloneしてきます。

    git clone https://github.com/lodge/lodge.git
    
  3. カレントディレクトリを移動します

   cd lodge
  1. Bundler をインストールします
   gem install bundler
  1. config/database.example.yml
    config/database.yml
    としてコピーし、以下のように編集します(SQLite3もしくはMySQLをご利用になる場合はコメントアウトを外して設定すると楽です)。
    default: &default
    #  # === sqlite3 ===
    #  adapter: sqlite3
    #  encoding: utf8
    #  pool: 5
    
    

    === mysql ===

    adapter: mysql2 host: localhost username: your_mysql_user_name password: your_mysql_password encoding: utf8 pool: 5

  2. bundle install
    を実行し、依存ライブラリをインストールします。
  3. .env.example
    .env
    としてコピーし、必要な環境変数を設定します。各コメントを参考に設定してください。最低限設定が必要な項目は以下の通りです。
    ### アプリケーションのドメイン
    LODGE_DOMAIN      = example.com
    
    

    Cookie 検証用キーの設定

    productionモードで動かす場合に設定(bundle exec rake secret で生成する)

    SECRET_KEY_BASE = some_random_string

    認証キーの設定

    productionモードで動かす場合に設定(bundle exec rake secret で生成する)

    DEVISE_SECRET_KEY = some_random_string

    メールの設定

    外部 MTA (SMTPサーバ) を利用してメール送信する場合

    DELIVERY_METHOD = smtp

    DELIVERY_METHOD = smtp の場合のみ

    以下の設定が有効です(それ以外は無視されます)

    SMTP_ADDRESS = smtp.gmail.com SMTP_PORT = 587 SMTP_USERNAME = username SMTP_PASSWORD = password SMTP_AUTH_METHOD = plain SMTP_ENABLE_STARTTLS_AUTO = true

    テーマを設定します。

    LODGE_THEME = lodge

  4. bundle exec rake db:create RAILS_ENV=production
    を実行し、データベースを作成します。
  5. bundle exec rake db:migrate RAILS_ENV=production
    を実行し、テーブルを作成します。

絵文字の準備

github/gemojiを利用して各種絵文字を利用できます。

絵文字をダウンロードする為、以下のコマンドを実行します。

bundle exec rake emoji

全文検索エンジンの準備

以下を実行し、全文検索エンジンのセットアップを行います。

./setup/sunspot-solr/setup-sunspot-solor.sh

上記により、solrの基本設定及び初回のIndex構築が行われます。

インデックスの手動更新(再作成)について

新規構築から利用する場合は通常必要ありませんが、 既存のLodgeからのアップデートを行った場合のインデックス作成や、 何らかの原因で検索インデックスを再構築したくなることがあった場合は、 Solrサーバが起動した状態で下記コマンドを実行することで再構築することができます。

bin/rake sunspot:reindex RAILS_ENV=production

Lodge(及びSolrサーバ)の起動

  1. カレントディレクトリを移動します。

    cd 
    
  2. 全文検索用のSolrサーバを起動します。

    bin/rake sunspot:solr:start RAILS_ENV=production
    
- もし上記で起動できない場合は…

前回の起動プロセスなどが残っている可能性がありますので、

```bash
bin/rake sunspot:solr:restart RAILS_ENV=production
```

を何度か実行してみてください。

  1. Railsサーバを起動します。

    • Unicorn を使う場合

      bundle exec unicorn -c config/unicorn.rb -E production
      
* Thin を使う場合

```bash
bundle exec rails server thin -e production
```
  • WEBrick を使う場合

    bundle exec rails server -e production

  1. ブラウザで http://localhost:3000 にアクセスできたら起動成功です
  2. ログファイルは以下の場所に吐き出されます
    • Unicorn の場合
      • /log/unicorn.production.log
    • Thin, WEBrick の場合
      • /log/production.log

注意

Solrサーバを起動することにより、ポート

8983
にSolrの管理コンソールが起動し、 ブラウザからアクセスできる状態となってしまいます。

その為、悪意あるユーザがアクセスしてしまうことが懸念される場合、 以下のような対応が必要となるでしょう。

nginxを利用

フロントにnginxなどを立てておき、リバースプロキシ等を設定しアクセスを制限する。

Solrサーバーを個別に立てる

Solrサーバを別のサーバや立てておき、そちらに接続しにいく形にします。 その場合は、Sunspot公式サイトに従い、

config/sunspot.yml
を適切な値へ設定してください。

またこのようにSolrサーバを別に構築する場合は、膨大な記事数等がある場合に、 検索や記事作成/更新時のパフォーマンスが著しく低下してしまうような場合にも有効です。 (ただ、通常はそこまでの規模になることはほぼ無いであろうと考えられます。)

Vagrant up

VirtualBoxVagrant を使って、

vagrant up
することで、VM上に手早く開発環境を用意することができます。

手順

  1. VirtualBox をインストール
  2. Vagrant をインストール
  3. vagrant plugin install vagrant-vbguest
  4. vagrant plugin install vagrant-librarian-chef
  5. vagrant plugin install vagrant-vmware-fusion
  6. vagrant plugin install vagrant-gatling-rsync
  7. vagrant plugin uninstall vagrant-vmware-fusion
    • vagrant-gatling-rsync をインストールするために必要だが、VMWare のライセンスを持っていないとエラーになるため削除します
  8. git clone https://github.com/m-yamashita/lodge
  9. cd lodge
  10. vagrant up
  11. VMが起動するまで待つ
  12. vagrant gatling-rsync-auto
    • ホスト上の
      git clone
      したソースコードを自動的にVM上の
      /vagrant
      に同期するために必要です
    • vagrant rsync-auto
      がなぜか
      rsync__exclude
      を使ってくれないため、
      vagrant-gatling-rsync
      を利用します
    • 公式ドキュメントのNFSの項目 に書かれていますが、VirtualBox の共有フォルダはパフォーマンスが悪いため使用していません。

    In some cases the default shared folder implementations (such as VirtualBox shared folders) have high performance penalties.

  13. http://localhost:3000/ にアクセスして Lodge の画面を見ることができたら成功です

諸々の情報

  • アクセス URL
    • http://localhost:3000/
  • DB
    • MySQL
  • メールサーバ
    • VM 内の Postfix
  • Lodge の起動スクリプト
    • /etc/init.d/lodge
      (Unicorn を起動)
  • RAILS_ROOT
    • /vagrant
  • RAILS_ENV
    • development
  • ログ
    • /vagrant/log/unicorn.development.log

最後に

開発にご協力頂ける方を募集しています。

まだまだ拙いLodgeの開発を手助けしていただける方を大募集中です。 新機能の開発や改善はもちろん、ソースのリファクタリングからテストの記述、 果てはマニュアル改善まで、どうぞ遠慮無くpull request頂ければと思います。 開発前に開発ガイドに目を通して頂けると幸いです。

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.