jawanndenn 은 Doodle의 자유로운 대안인 회의 일정을 계획하고 여론 조사를 실시할 수 있는 간단한 웹 애플리케이션입니다. 다음과 같은 기술을 사용하고 있습니다.
jawanndenn은 Sebastian Pipping이 개발한 자유 소프트웨어입니다. 서버 코드는 GNU Affero GPL 라이센스 버전 3 이상에 따라 라이센스가 부여되는 반면 클라이언트 코드는 GNU GPL 라이센스 버전 3 이상에 따라 라이센스가 부여됩니다.
버그를 보고하고 마음에 들면 알려주세요.
"Setup(JSON)"이라는 제목의 텍스트 영역은 다음 키를 알고 있는 간단한 JSON 기반 형식을 사용합니다.
equal_width
— 잠재적인 유권자 편향에 대응하기 위해 모든 옵션을 동일한 너비( true
또는 false
)로 펌핑할지 여부를 제어하는 부울입니다.lifetime
— 이 설문조사가 삭제되기까지의 기간입니다. "week"
또는 "month"
일 수 있습니다. 열거형 문자열options
— 각 옵션에 대해 하나씩 문자열 목록입니다. 굵게, 기울임꼴, 인라인 코드에 대해 Markdown과 유사한 구문을 지원합니다.title
— 실행할 설문조사의 제목 또는 헤드라인입니다. 굵게, 기울임꼴, 인라인 코드에 대해 Markdown과 유사한 구문을 지원합니다. Git 저장소를 복제하지 않고 최신 릴리스를 설치하려면 다음 안내를 따르세요.
# pip3 설치 jawanndenn --user
Git 클론에서 설치하려면 다음 안내를 따르세요.
# ./setup.py install --user
다음과 같은 간단한 파일 .env
를 만듭니다.
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
복사하여 붙여넣은 후 이 값을 조정 하세요!
그런 다음 docker-compose up --build
사용하여 도커 이미지를 빌드하고 실행할 수 있습니다.
앱은 localhost:54080
에서 제공됩니다. PostgreSQL 데이터는 호스트 시스템의 ~/.jawanndenn-docker-pgdata/
에 저장됩니다. 또한 크로스 프로세스 속도 제한에 사용되는 Redis 인스턴스와 구성된 수명을 초과한 폴링을 60분마다 삭제하는 "cron" 관리 컨테이너도 있습니다.
(Jawanndenn 앞에 유지 관리가 적은 SSL 역방향 프록시가 필요한 경우 docker-ssl-reverse-proxy가 흥미로울 수 있습니다.)
사용자 환경에서 조정할 수 있는 환경 변수가 몇 가지 더 있습니다. 전체적으로 다음과 같은 변수가 있습니다.
DJANGO_SETTINGS_MODULE
사용할 Django 설정 모듈은 그대로 두고 기본값은 jawanndenn.settings
입니다( docker-compose.yml
참조).
JAWANNDENN_ALLOWED_HOSTS
jawanndenn을 제공할 호스트 이름(쉼표로 구분됨)은 주 프로덕션 서버에서 jawanndenn.de,www.jawanndenn.de
로 설정되며 기본값은 127.0.0.1,0.0.0.0,localhost
( jawanndenn/settings.py
참조).
JAWANNDENN_DEBUG
기본적으로 비활성화된 True
제외한 모든 값에 대해 비활성화된 디버그 모드는 보안을 위해 프로덕션에서 활성화되어서는 안 됩니다( jawanndenn/settings.py
참조).
JAWANNDENN_MAX_POLLS
저장할 최대 총 폴링 수, 서비스 거부 보호, 기본값은 1000
입니다( jawanndenn/settings.py
및 docker-compose.yml
참조).
JAWANNDENN_MAX_VOTES_PER_POLL
저장할 최대 총 폴링 수, 서비스 거부 보호, 기본값은 40
입니다( jawanndenn/settings.py
참조).
JAWANNDENN_POSTGRES_HOST
연결할 PostgreSQL 데이터베이스의 호스트 이름입니다. 기본값은 postgres
입니다( docker-compose.yml
참조).
JAWANNDENN_POSTGRES_NAME
연결할 PostgreSQL 데이터베이스의 데이터베이스 이름입니다. 기본값 없음, 항상 필수
JAWANNDENN_POSTGRES_PASSWORD
PostgreSQL 데이터베이스에 로그인하기 위한 비밀번호입니다. 기본값 없음, 항상 필수
JAWANNDENN_POSTGRES_PORT
연결할 PostgreSQL 데이터베이스의 포트입니다. 기본값은 5432
입니다( docker-compose.yml
참조).
JAWANNDENN_POSTGRES_USER
PostgreSQL 데이터베이스 로그인을 위한 사용자 이름. 기본값 없음, 항상 필수
JAWANNDENN_REDIS_HOST
연결할 Redis 데이터베이스의 호스트 이름입니다. 기본값은 redis
입니다( docker-compose.yml
참조).
JAWANNDENN_REDIS_PORT
연결할 Redis 데이터베이스의 포트입니다. 기본값은 6379
입니다( docker-compose.yml
참조).
JAWANNDENN_SECRET_KEY
Django 비밀 키; 길고, 생성되어야 하며, 다른 곳에서 사용되어서는 안 됩니다. 기본값 없음, 항상 필수
JAWANNDENN_SENTRY_DSN
Sentry와 함께 사용하기 위한 데이터 소스 이름(DSN), 기본적으로 비활성화/비어 있음( jawanndenn/settings.py
참조)
JAWANNDENN_URL_PREFIX
동일한 도메인에서 여러 앱을 나란히 호스팅하는 데 도움이 되도록 도메인 이름 뒤가 아닌 URL에 삽입할 접두사 문자열입니다. 예를 들어 접두사 prefix123
https://<domain>/prefix123/poll/<id>
와 같은 URL이 됩니다. 기본적으로 비어 있습니다( jawanndenn/settings.py
참조).
설치되면 호출은 다음과 같이 간단합니다.
# 자완덴
개발 중에 다음을 사용하여 Git 클론에서 jawanndenn을 실행할 수 있습니다.
# 파이썬패스=. python3 -m jawanndenn --디버그
현재 지원되는 인수는 다음과 같습니다.
# jawanndenn --help 사용법: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix 경로] [--database-sqlite3 파일] [--django-secret-key-file 파일] [--max-polls 개수] [--설문당 최대 투표 수 COUNT] [--dumpdata] [--loaddata FILE.json] 선택적 인수: -h, --help 이 도움말 메시지를 표시하고 종료합니다. --debug 디버그 모드 활성화(기본값: 비활성화됨) --host HOST 수신 대기할 호스트 이름 또는 IP 주소(기본값: 127.0.0.1) --port PORT 수신할 포트(기본값: 8080) --url-prefix PATH URL 앞에 추가할 경로(기본값: "") --database-sqlite3 파일 데이터베이스에 쓸 파일(기본값: ~/jawanndenn.sqlite3) --django-비밀-키-파일 파일 Django 비밀 키 데이터에 사용할 파일(기본값: ~/jawanndenn.secret_key) 제한 구성: --max-polls COUNT 최대 총 폴링 수(기본값: 1000) --설문당 최대 투표 수 COUNT 투표당 최대 투표 수(기본값: 40) 데이터 가져오기/내보내기 인수: --dumpdata 데이터베이스의 JSON 내보내기를 표준 출력으로 덤프합니다. 그럼 그만둬. --loaddata FILE.json FILE.json에서 데이터베이스의 JSON 내보내기를 로드합니다. 그럼 그만둬.
마이그레이션은 네 단계로 이루어집니다.
pip2 install --upgrade 'jawanndenn<2'
; JSON 데이터 내보내기는 릴리스 1.6.3에서 처음 도입되었습니다.python2 -m jawanndenn --dumpdata > dump.json
docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
pip3 install 'jawanndenn>=2'
어딘가에 설치하세요.python3 -m jawanndenn --loaddata dump.json
docker-compose run -T jawanndenn sh -c 'cat > /tmp/dump.json && DJANGO_SETTINGS_MODULE=jawanndenn.settings python3 -m django loaddata /tmp/dump.json' < dump.json
앞으로 나올 기능 목록을 확인해 보세요.
XSS 취약점을 책임감 있게 보고해 주신 Arne Maier(@KordonDev)에게 특별히 감사드립니다.