어떤 문서가 파괴로 인한 것인지, 심지어 폐지 종이가 누워있는 것을 보았을 때, 가장 가까운 메모리 구멍의 플랩을 들어 올려 버리는 것은 자동적 인 행동이었습니다.
- 1984 년부터 George Orwell
메모리 홀은 지원 문제 조직자입니다. 공통 지원 문제와 해상도를 구성하고 검색하는 방법을 제공하도록 설계되었습니다.
응용 프로그램을 컴파일하고 실행하려면 다음이 필요합니다.
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가 개발 또는 생산에 사용될 때, Migratus :migration-dir 포인트를 가리키는 스키마를위한 H2 특정 마이그레이션을 적절히 설정해야합니다.
:migration-dir " migrations/h2 " 데이터베이스의 구성 설정이있는 Project Directory에서 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 입니다.
응용 프로그램의 웹 서버를 시작하려면 실행하십시오.
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-session 키를 추가하십시오. :cookie-session 키는 두 가지 옵션 키가 포함 된 맵을 가리 려야합니다.
:key - 세션 쿠키 암호화에 사용되는 비밀 키:cookie-attrs 선택적 쿠키 속성을 포함하는지도 ::http-only - true (기본값) 인 경우 쿠키를 http로 제한합니다.:secure 쿠키를 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를 사용할 때 사용자 그룹 관리를위한 두 가지 옵션이 있습니다. 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