jawanndenn เป็นเว็บแอปพลิเคชันที่เรียบง่ายสำหรับกำหนดเวลาการประชุมและดำเนินการสำรวจความคิดเห็น ซึ่งเป็นทางเลือกแทน Doodle ใช้เทคโนโลยีดังต่อไปนี้:
jawanndenn เป็นซอฟต์แวร์เสรีที่พัฒนาโดย Sebastian Pipping รหัสเซิร์ฟเวอร์ได้รับอนุญาตภายใต้ใบอนุญาต GNU Affero GPL เวอร์ชัน 3 หรือใหม่กว่า ในขณะที่รหัสไคลเอ็นต์ได้รับใบอนุญาตภายใต้ใบอนุญาต GNU GPL เวอร์ชัน 3 หรือใหม่กว่า
กรุณารายงานข้อบกพร่องและแจ้งให้เราทราบหากคุณต้องการมัน
พื้นที่ข้อความชื่อ "การตั้งค่า (JSON)" ใช้รูปแบบ JSON แบบธรรมดาที่รู้คีย์ต่อไปนี้:
equal_width
- บูลเพื่อควบคุมว่าตัวเลือกทั้งหมดจะถูกปั๊มให้มีความกว้างเท่ากัน ( true
หรือ false
) เพื่อป้องกันอคติของผู้มีสิทธิเลือกตั้งที่อาจเกิดขึ้นlifetime
— ระยะเวลาหลังจากนั้นการสำรวจความคิดเห็นนี้จะถูกลบ อาจเป็น "week"
หรือ "month"
; สตริงเหมือน enumoptions
— รายการสตริง หนึ่งรายการสำหรับแต่ละตัวเลือก รองรับไวยากรณ์เหมือน Markdown สำหรับ: ตัวหนา ตัวเอียง รหัสอินไลน์title
— ชื่อเรื่องหรือพาดหัวของการสำรวจความคิดเห็นที่จะดำเนินการ; รองรับไวยากรณ์เหมือน Markdown สำหรับ: ตัวหนา ตัวเอียง รหัสอินไลน์ วิธีติดตั้งรุ่นล่าสุดโดยไม่ต้องโคลนพื้นที่เก็บข้อมูล Git:
# pip3 ติดตั้ง jawanndenn --user
วิธีติดตั้งจากโคลน Git:
# ./setup.py ติดตั้ง --user
สร้างไฟล์ง่ายๆ .env
แบบนี้:
JAWANNDENN_POSTGRES_NAME=จาวันเดนน์ JAWANNDENN_POSTGRES_USER=จาวันเดนน์ JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
อย่าลืม ปรับค่าเหล่านี้ หลังจากคัดลอกและวาง!
จากนั้นคุณสามารถสร้างและเรียกใช้อิมเมจนักเทียบท่าโดยใช้ docker-compose up --build
แอปนี้ให้บริการบน localhost:54080
ข้อมูล PostgreSQL จะถูกบันทึกไปที่ ~/.jawanndenn-docker-pgdata/
บนระบบโฮสต์ นอกจากนี้ยังมีอินสแตนซ์ของ Redis ที่ใช้สำหรับจำกัดอัตราข้ามกระบวนการ และคอนเทนเนอร์ดูแลทำความสะอาด "cron" ที่จะลบโพลที่เกินอายุการใช้งานที่กำหนดไว้ทุกๆ 60 นาที
(หากคุณต้องการพร็อกซีย้อนกลับ SSL ที่มีการบำรุงรักษาต่ำอยู่หน้า jawanndenn 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
รหัสลับของจังโก้; ควรมีความยาวสร้างขึ้นไม่ใช้ที่อื่น ไม่มีค่าเริ่มต้น จำเป็นเสมอ
JAWANNDENN_SENTRY_DSN
ชื่อแหล่งข้อมูล (DSN) สำหรับใช้กับ Sentry ปิดใช้งาน/ว่างเปล่าตามค่าเริ่มต้น (ดู jawanndenn/settings.py
)
JAWANNDENN_URL_PREFIX
สตริงคำนำหน้าเพื่อแทรกลงใน URL แทนที่จะอยู่หลังชื่อโดเมนเพื่อช่วยในการโฮสต์หลายแอปภายใต้โดเมนเดียวกันเคียงข้างกัน เช่น คำนำหน้า prefix123
จะส่งผลให้ URL เช่น https://<domain>/prefix123/poll/<id>
; ว่างเปล่าตามค่าเริ่มต้น (ดู jawanndenn/settings.py
)
เมื่อติดตั้งแล้ว การร้องขอก็ทำได้ง่ายเพียงแค่นั้น
#จาวานเดนน์
ในระหว่างการพัฒนา คุณอาจต้องการเรียกใช้ jaanndenn จาก Git clone โดยใช้
# ไพธอนพาธ=. python3 -m jawanndenn --debug
อาร์กิวเมนต์ที่รองรับในปัจจุบันคือ:
#javannndenn --help การใช้งาน: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix PATH] [--database-sqlite3 FILE] [--django-secret-key-file FILE] [--max-polls COUNT] [--โหวตสูงสุดต่อการสำรวจความคิดเห็น COUNT] [--ทิ้งข้อมูล] [--โหลดข้อมูล FILE.json] อาร์กิวเมนต์ทางเลือก: -h, --help แสดงข้อความช่วยเหลือนี้และออก --debug เปิดใช้งานโหมดแก้ไขข้อบกพร่อง (ค่าเริ่มต้น: ปิดใช้งาน) --host HOST ชื่อโฮสต์หรือที่อยู่ IP ที่จะฟัง (ค่าเริ่มต้น: 127.0.0.1) --port PORT พอร์ตที่จะฟัง (ค่าเริ่มต้น: 8080) --url-prefix PATH เส้นทางที่จะเติมหน้า URL (ค่าเริ่มต้น: "") --database-sqlite3 ไฟล์ ไฟล์ที่จะเขียนฐานข้อมูลถึง (ค่าเริ่มต้น: ~/jawannndenn.sqlite3) --django-secret-key-file ไฟล์ ไฟล์ที่จะใช้สำหรับข้อมูลคีย์ลับของ Django (ค่าเริ่มต้น: ~/jawannndenn.secret_key) การกำหนดค่าขีดจำกัด: --max-polls COUNT จำนวนการสำรวจสูงสุดทั้งหมด (ค่าเริ่มต้น: 1,000) --โหวตสูงสุดต่อการสำรวจ COUNT จำนวนโหวตสูงสุดต่อการสำรวจความคิดเห็น (ค่าเริ่มต้น: 40) อาร์กิวเมนต์การนำเข้า/ส่งออกข้อมูล: --dumpdata ดัมพ์การส่งออก JSON ของฐานข้อมูลไปยังเอาต์พุตมาตรฐาน แล้วเลิก --loaddata FILE.json โหลดการส่งออก JSON ของฐานข้อมูลจาก FILE.json แล้วเลิก
การย้ายข้อมูลมีสี่ขั้นตอน:
pip2 install --upgrade 'jawanndenn<2'
; การส่งออกข้อมูล JSON เปิดตัวครั้งแรกในรุ่น 1.6.3python2 -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
โปรดตรวจสอบรายการคุณสมบัติที่กำลังจะมีขึ้น
ขอขอบคุณเป็นพิเศษสำหรับ Arne Maier (@KordonDev) สำหรับการรายงานช่องโหว่ XSS อย่างมีความรับผิดชอบ