jawanndenn adalah aplikasi web sederhana untuk menjadwalkan pertemuan dan menjalankan jajak pendapat, sebuah alternatif gratis untuk Doodle. Itu menggunakan teknologi berikut:
jawanndenn adalah perangkat lunak gratis yang dikembangkan oleh Sebastian Pipping. Kode server dilisensikan di bawah lisensi GNU Affero GPL versi 3 atau lebih baru sedangkan kode klien dilisensikan di bawah lisensi GNU GPL versi 3 atau lebih baru.
Silakan laporkan bug dan beri tahu saya jika Anda menyukainya.
Area teks berjudul "Pengaturan (JSON)" menggunakan format berbasis JSON sederhana yang mengetahui kunci berikut:
equal_width
— bool untuk mengontrol apakah semua opsi dipompa ke lebar yang sama ( true
atau false
) untuk melawan potensi bias pemilihlifetime
— durasi setelah jajak pendapat ini akan dihapus; bisa berupa "week"
atau "month"
; string seperti enumoptions
— daftar string, satu untuk setiap opsi; mendukung sintaksis seperti Markdown untuk: kode tebal, miring, dan sebaristitle
— judul atau judul jajak pendapat yang akan dijalankan; mendukung sintaksis seperti Markdown untuk: kode tebal, miring, dan sebaris Untuk menginstal rilis terbaru tanpa mengkloning repositori Git:
# pip3 install jawanndenn --user
Untuk menginstal dari klon Git:
# ./setup.py install --pengguna
Buat file sederhana .env
seperti ini:
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
Pastikan untuk menyesuaikan nilai-nilai ini setelah menyalin dan menempel!
Anda kemudian dapat membuat dan menjalankan image buruh pelabuhan menggunakan docker-compose up --build
.
Aplikasi ini disajikan di localhost:54080
. Data PostgreSQL disimpan ke ~/.jawanndenn-docker-pgdata/
di sistem host. Ada juga contoh Redis yang digunakan untuk pembatasan laju lintas proses, dan wadah housekeeping "cron" yang akan menghapus jajak pendapat yang telah melampaui masa konfigurasinya, setiap 60 menit.
(Jika Anda memerlukan proxy balik SSL dengan pemeliharaan rendah di depan jawanndenn, docker-ssl-reverse-proxy mungkin menarik.)
Ada beberapa variabel lingkungan lagi yang mungkin ingin Anda sesuaikan dengan lingkungan Anda. Secara keseluruhan, ada variabel-variabel berikut:
DJANGO_SETTINGS_MODULE
Modul pengaturan Django yang akan digunakan, biarkan apa adanya, defaultnya adalah jawanndenn.settings
(lihat docker-compose.yml
)
JAWANNDENN_ALLOWED_HOSTS
Nama host untuk melayani jawanndenn, daftar dipisahkan dengan koma, disetel ke jawanndenn.de,www.jawanndenn.de
di server produksi utama, defaultnya adalah 127.0.0.1,0.0.0.0,localhost
(lihat jawanndenn/settings.py
)
JAWANNDENN_DEBUG
Mode debug, dinonaktifkan untuk semua nilai kecuali True
, dinonaktifkan secara default, tidak boleh diaktifkan dalam produksi demi keamanan (lihat jawanndenn/settings.py
)
JAWANNDENN_MAX_POLLS
Jumlah total jajak pendapat maksimum yang akan disimpan, perlindungan penolakan layanan, defaultnya adalah 1000
(lihat jawanndenn/settings.py
dan docker-compose.yml
)
JAWANNDENN_MAX_VOTES_PER_POLL
Jumlah total jajak pendapat maksimum yang akan disimpan, perlindungan penolakan layanan, defaultnya adalah 40
(lihat jawanndenn/settings.py
)
JAWANNDENN_POSTGRES_HOST
Nama host database PostgreSQL yang akan dihubungkan; defaultnya adalah postgres
(lihat docker-compose.yml
)
JAWANNDENN_POSTGRES_NAME
Nama basis data dari basis data PostgreSQL yang akan dihubungkan; tidak ada default, selalu diperlukan
JAWANNDENN_POSTGRES_PASSWORD
Kata sandi untuk masuk dengan database PostgreSQL; tidak ada default, selalu diperlukan
JAWANNDENN_POSTGRES_PORT
Port database PostgreSQL untuk dihubungkan; defaultnya adalah 5432
(lihat docker-compose.yml
)
JAWANNDENN_POSTGRES_USER
Nama pengguna untuk masuk dengan database PostgreSQL; tidak ada default, selalu diperlukan
JAWANNDENN_REDIS_HOST
Nama host database Redis yang akan dihubungkan; defaultnya adalah redis
(lihat docker-compose.yml
)
JAWANNDENN_REDIS_PORT
Port database Redis untuk dihubungkan; defaultnya adalah 6379
(lihat docker-compose.yml
)
JAWANNDENN_SECRET_KEY
Kunci rahasia Django; harus panjang, dihasilkan, tidak digunakan di tempat lain; tidak ada default, selalu diperlukan
JAWANNDENN_SENTRY_DSN
Nama sumber data (DSN) untuk digunakan dengan Sentry, dinonaktifkan/kosong secara default (lihat jawanndenn/settings.py
)
JAWANNDENN_URL_PREFIX
Awalan string untuk dimasukkan ke dalam URL, bukan setelah nama domain, untuk membantu menghosting beberapa aplikasi dalam domain yang sama secara berdampingan; misalnya awalan prefix123
akan menghasilkan URL seperti https://<domain>/prefix123/poll/<id>
; kosong secara default (lihat jawanndenn/settings.py
)
Saat diinstal, pemanggilan sesederhana itu
#jawanndenn
Selama pengembangan, Anda mungkin ingin menjalankan jawanndenn dari klon Git menggunakan
# JALUR PYTHON=. python3 -m jawanndenn --debug
Argumen yang didukung saat ini adalah:
# jawanndenn --membantu penggunaan: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-awalan JALUR] [--database-sqlite3 FILE] [--Django-rahasia-kunci-file FILE] [--max-polls JUMLAH] [--JUMLAH suara-per-jajak pendapat maksimum] [--dumpdata] [--loaddata FILE.json] argumen opsional: -h, --help tampilkan pesan bantuan ini dan keluar --debug Aktifkan mode debug (default: dinonaktifkan) --host HOST Nama host atau alamat IP yang ingin didengarkan (default: 127.0.0.1) --port PORT Port untuk mendengarkan (default: 8080) --url-prefix PATH Jalur yang akan ditambahkan ke URL (default: "") --database-sqlite3 FILE File untuk menulis database (default: ~/jawanndenn.sqlite3) --django-file kunci rahasia FILE File yang akan digunakan untuk data kunci rahasia Django (default: ~/jawanndenn.secret_key) konfigurasi batas: --max-polls COUNT Jumlah total jajak pendapat maksimum (default: 1000) --max-suara-per-jajak pendapat JUMLAH Jumlah suara maksimum per jajak pendapat (default: 40) argumen impor/ekspor data: --dumpdata Buang ekspor JSON database ke output standar, lalu berhenti. --loaddata FILE.json Memuat ekspor JSON database dari FILE.json, lalu berhenti.
Migrasi memerlukan empat langkah:
pip2 install --upgrade 'jawanndenn<2'
; ekspor data JSON pertama kali diperkenalkan dengan rilis 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'
di suatu tempatpython3 -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
Silakan periksa daftar fitur yang akan datang.
Terima kasih khusus kepada Arne Maier (@KordonDev) karena telah melaporkan kerentanan XSS secara bertanggung jawab.