ドキュメントが破壊の予定であることを知っていたとき、または廃棄物紙のスクラップが横たわっているのを見たときでさえ、それは最も近いメモリ穴のフラップを持ち上げてそれを落とす自動行動でした。
- 1984年からジョージオーウェルによる
メモリホールは、サポートの問題オーガナイザーです。一般的なサポートの問題とその解決策を整理して検索する方法を提供するように設計されています。
アプリケーションをコンパイルして実行するには、以下が必要です。
mkdir memory-hole
cd memory-hole
curl -O https://raw.githubusercontent.com/yogthos/memory-hole/master/docker-compose.yml
docker-compose up
このアプリは、起動するとhttp://localhost:8000で利用できます。
次の手順に従って、アプリケーションのデータベースを構成します。
PostgreSQLにCiteXT拡張機能がインストールされていることを確認してください。
psqlコマンドを実行します。
psql -U <superuser|postgres user> -d postgres -h localhost
データベースにアクセスするための役割の役割を作成します。
CREATE ROLE memoryhole;
役割のパスワードを設定します。
password memoryhole;
オプションで、スキーマを作成し、 memoryhole役割の承認を許可します。
CREATE SCHEMA memoryhole AUTHORIZATION memoryhole;
GRANT ALL ON SCHEMA memoryhole TO memoryhole;
GRANT ALL ON ALL TABLES IN SCHEMA memoryhole TO memoryhole;
citext拡張機能をスキーマに追加します。
CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA memoryhole;
メモリホールがログインを許可されていることを確認してください。
ALTER ROLE "memoryhole" WITH LOGIN;
シェルを終了します
q
このセットアップは:database-url (地元のマシン上の)に類似している必要があります。
:database-url " jdbc:postgresql://localhost/postgres?user=memoryhole&password=memoryhole "H2 DBは、機能リストで利用できるさまざまなホスティングシナリオを使用できます。
このセットアップは、ローカルマシン上の:database-urlに次のようにつながる可能性があります。
:database-url " jdbc:h2:~/memory-hole-dev " H2 DBが開発または生産に使用される場合、適切に移行を設定する必要があります:migration-dirスキーマの居住のためのH2特定の移動を指します。
:migration-dir " migrations/h2 " データベースの構成設定を使用して、プロジェクトディレクトリにprofiles.cljファイルを作成します。オプションで、移行ディレクトリとLDAPを構成できます。
{ :profiles/dev
{ :env
{ :database-url " jdbc:postgresql://localhost/postgres?user=memoryhole&password=memoryhole "
:migration-dir " migrations/postgresql "
; ;ldap is optional, will use internal table otherwise
; ;Admin users (able to manage groups) defined by their sAMAccountName
:ldap-admin-users [ " my-ldap-sAMAccountName " " another-ldap-sAMAccountName " ]
; ;Or Admin Groups defined by their distinguished names
:ldap-admin-groups [ " CN=some-ldap-group,OU=foo123,DC=domain,DC=ca " ]
:ldap
{ :host
{ :address " my-ldap-server.ca "
:domain " domain.ca "
:port 389
:connect-timeout ( * 1000 5 )
:timeout ( * 1000 30 )}}}}}移行を実行します
lein run migrate
これにより、テーブルが作成され、デフォルトの管理者ユーザーが追加されます。デフォルトのログインはadmin/adminです。
アプリケーションのWebサーバーを起動するには、実行してください。
lein run
ClojureScriptのフロントエンドをコンパイルするには、実行してください。
lein figwheel
lein uberjar
これによりtarget/uberjar/memory-hole.jarアーカイブが次のように実行できます。
java -Dconf=conf.edn -jar memory-hole.jar migrate
java -Dconf=conf.edn -jar memory-hole.jar
conf.ednファイルには、生産で使用されるデータベースURLなどの構成を含める必要があります。次のオプションが利用可能です。
:database-url " jdbc:postgresql://localhost/postgres?user=memoryhole&password=memoryhole "選択したDBバックエンドに応じて、移行ディレクトリを設定する必要があります。
:migration-dir " migrations/postgresql "HTTPポートはデフォルトで3000になり、カスタムポートを設定するには、次のキーを構成に追加します。
:port 80このアプリは、デフォルトでサーバー側のメモリベースのセッションストアを使用します。
メモリセッションのタイムアウト前のセッションの数は、次のように:memory-sessionキーを使用して設定できます。
:memory-session
{ :max-age 3600 } Cookieベースのメモリストアを使用する場合は、構成にA :cookie-sessionキーを追加します。 :cookie-sessionキーは、2つのオプションキーを含むマップを指す必要があります。
:key - セッションクッキーを暗号化するために使用される秘密の鍵:cookie-attrsオプションのCookie属性を含むマップ::http-only - true(デフォルト)の場合、cookieをHTTPに制限します(デフォルト):secure - クッキーをtrueの場合はhttps urlに制限します:max-age - クッキーが切れるまで秒数構成の例は次のように見える場合があります。
:cookie-session
{ :key " a 16-byte secret "
:cookie-attrs
{ :secure true
:max-age 3600 }}LDAP接続構成は、次のように:ldapキーの下に配置する必要があります。
:ldap
{ :host
{ :address " my-ldap-server.ca "
:domain " domain.ca "
:port 389
:connect-timeout ( * 1000 5 )
:timeout ( * 1000 30 )}} LDAPを使用する場合、ユーザーグループを管理するための2つのオプションがあります。SamacCountName sAMAccountName使用して管理者ユーザーを割り当てるか、キーのmemberOfに対応するグループを指定できます。
:ldap-admin-users [ " my-ldap-sAMAccountName " " another-ldap-sAMAccountName " ]:ldap-admin-groups [ " CN=some-ldap-group,OU=foo123,DC=domain,DC=ca " ]生産でHTTPSサポートを有効にするには、次の構成を追加します:sslキー:
:ssl
{ :port 3001
:keystore " keystore.jks "
:keystore-pass " changeit " } HTTPアクセスを無効にするには、 :port nilように設定してください。
:port nilまたは、生産時にNginxを使用してアプリを前線にすることができます。 Nginxの構成の詳細については、こちらをご覧ください。
完全なconf.edn例:
{ :database-url " jdbc:postgresql://localhost/postgres?user=memoryhole&password=memoryhole "
:cookie-session
{ :key " a 16-byte secret "
:cookie-attrs
{ :max-age 60 }}
:port nil
:ssl
{ :port 3001
:keystore " keystore.jks "
:keystore-pass " changeit " }}アプリは、次のようにNginxをカスタムパスにプロキシできます。
server {
listen ...;
...
location /memory-hole {
proxy_pass http://127.0.0.1:3000;
}
...
}
次に、コンテキストを備えたconf.ednファイルの:app-contextを追加する必要があります。
{ :database-url " jdbc:postgresql://localhost/postgres?user=memoryhole&password=memoryhole "
:port 3000
:app-context " /memory-hole " }ツールの元の実装は、Ryan Baldwinによって作成されました。このアプリは、元のスキーマとSQLクエリに基づいています。
Copyright©2016 Dmitri Sotnikov