Suka proyeknya? Punya terlalu banyak uang? Beli saya kopi atau semacamnya! ☕️
Aplikasi berbasis situs web untuk berbagi dan berkolaborasi dalam daftar keinginan dan hadiah. Tujuan utamanya adalah untuk memungkinkan berbagi daftar keinginan dan ide -ide hadiah yang mengklaim tanpa penerima mengetahui apa yang mereka terima.
Fitur terkenal:
Masalah yang Diketahui:
Saya sarankan menggunakan Docker dengan jujur.
Database MySQL secara khusus. Di masa depan, proses ini dapat disederhanakan dan berbagai basis data yang didukung oleh modul DB dapat ditambahkan. Tetapi untuk saat ini, atur database MySQL yang dapat dijangkau dan masuk ke Pønskelisten.
Jika Anda hosting ini tanpa Docker, Anda dapat mengunduh XAMPP dan cukup klik "Mulai" pada fitur DB. Tidak diperlukan pengaturan lebih lanjut! Jika Anda menggunakan Docker, cukup gunakan gambar MySQL Docker. Bahkan ada contoh Docker Compose lebih jauh yang hanya membutuhkan perubahan kecil.
Buat tabel untuk Pønskelisten (gambar Docker melakukan ini secara otomatis), dan ingat nama tabel untuk nanti.
Jika Anda ingin mengedit file konfigurasi secara manual, mulai Pønskelisten dan kemudian biarkan mengeluh banyak. Anda dapat mengedit file konfigurasi secara manual sesudahnya. Jika tidak, lihat lebih jauh ke bawah pada Startup flags untuk memulai pønsklisten dengan opsi konfigurasi.
Kompilasi cabang/tag pilihan Anda dengan go terpasang dan jalankan:
$ go build
$ ./poenskelisten
... atau unduh rilis yang telah dikompilasi sebelumnya dan mulai aplikasi.
Jika Anda ingin memulai Pønskelisten dengan beberapa bendera startup untuk pengalaman yang lebih halus, lihat bagian berikutnya. Jika tidak, lanjutkan ke Langkah Tiga.
Anda dapat menggunakan bendera startup untuk menghasilkan nilai untuk mengisi file konfigurasi dengan. Mereka hanya digunakan jika file konfigurasi tidak memiliki nilai yang telah dikonfigurasi sebelumnya untuk diprioritaskan. Saat file konfigurasi memiliki nilai, bendera ini tidak berguna. Semacam satu kali.
Pengecualian adalah generateinvite , yang akan menghasilkan kode undangan acak baru di setiap penggunaan, dan disablesmtp yang akan selalu menonaktifkan fungsi SMTP.
| Bendera | Jenis | Penjelasan |
|---|---|---|
| pelabuhan | bilangan bulat | Port Pønskelisten mana yang dimulai. |
| zona waktu | rangkaian | Penggunaan Timezone Pønskelisten. Diberikan dalam format nama database TZ. Daftar dapat ditemukan di sini. |
| generateInvite | string (true/false) | Jika Pønskelisten harus menghasilkan kode undangan saat startup. |
| dbip | rangkaian | Alamat koneksi yang digunakan Pønskelisten untuk mencapai database. |
| dbport | bilangan bulat | Port Pønskelisten dapat mencapai database di. |
| dbname | rangkaian | Nama tabel dalam database. |
| DBUSERNAME | rangkaian | Nama pengguna yang digunakan untuk autnenicate dengan database. |
| DBPassword | rangkaian | Kata sandi yang digunakan untuk autnenicate dengan database. |
| menonaktifkan mtp | string (true/false) | Menonaktifkan SMTP, yang berarti verifikasi pengguna dinonaktifkan. SMTP diaktifkan secara default. |
| smtphost | rangkaian | Host SMTP Server yang digunakan. |
| smtpport | bilangan bulat | Port host server SMTP digunakan. |
| SMTPUSERNAME | rangkaian | Nama pengguna yang digunakan untuk mengotentikasi terhadap server SMTP yang digunakan. |
| smtppassword | rangkaian | Nama pengguna yang digunakan untuk mengotentikasi terhadap server SMTP yang digunakan. |
| upgradetov2 | string (true/false) | Konversi db.sql di folder /files ke format v2.00. |
Untuk menggunakan bendera, cukup mulai program GO yang dikompilasi dengan nilai tambahan. Seperti:
$ ./poenskelisten -port 7679
$ ./poenskelisten -port 7679 -dbip 127.0.0.1 -dbname mycooltable -smtphost smtp.justanexample.org
/files/config.json Anda dapat melewatkan langkah ini jika Anda menggunakan bendera start-up pada langkah sebelumnya, atau kembali dan menggunakan bendera sebagai gantinya. Bendera hanyalah cara untuk memberikan parameter startup untuk dimasukkan ke dalam file config.json . Tabel Bendera juga memberikan beberapa wawasan tentang bagaimana file konfigurasi dapat diedit secara manual.
Edit file konfigurasi sehingga dapat mencapai database MySQL, dan mungkin server SMTP jika Anda tidak menonaktifkan fungsi SMTP. Tidak ada antarmuka admin saat ini sehingga ini harus dilakukan secara manual di file. Zona waktu juga diperlukan, tetapi kunci pribadi harus terisi secara otomatis.
Restart Pønskelisten agar perubahan berlaku.
Anda seharusnya tidak dapat mengakses Pønskelisten. Secara default, Anda dapat menemukan ujung depan di localhost:8080 .
Untuk mendaftar ke situs web, Anda memerlukan kode undangan. Jika Anda menggunakan flag generateinvite Anda dapat menemukan kode undangan di file log yang terletak di dalam direktori file, atau di konsol.
Jika tidak, Anda perlu mengubah tabel database untuk menambahkan kode undangan. Rumit, saya tahu.
Saya sarankan menginstal phpMyAdmin (antarmuka database) baik sebagai gambar Docker atau secara lokal (dilengkapi dengan pra-paket di XAMPP). Ini dapat digunakan untuk mengubah database.
Pengguna pertama yang mendaftar secara otomatis adalah admin. Anda memerlukan kode undangan untuk setiap pengguna yang ingin mendaftar. Ini dapat dihasilkan di halaman admin.
Bersiaplah untuk mengakses DB setiap kali pengguna berhasil mengacaukan email mereka saat mendaftar atau seseorang membutuhkan kode undangan.
Semua bendera startup dalam tabel yang diberikan sebelumnya dapat digunakan sebagai variabel lingkungan. Perlu diingat bahwa bendera, dan pada gilirannya variabel lingkungan, hanya digunakan jika nilainya belum ditentukan dalam file konfigurasi.
Satu -satunya pengecualian adalah generateinvite dan disablesmtp . Pertimbangkan untuk menghapus variabel lingkungan generateinvite dari file Compose Docker Anda sehingga Anda tidak menghasilkan kode baru di setiap restart.
Ini memiliki pønskelisten, mysql db dan phpMyadmin. Secara teori, Anda hanya perlu mengedit variabel lingkungan untuk layanan Pønskelisten agar contoh ini berfungsi.
version: '3.3'
services:
db:
image: mysql:5.7
container_name: poenskelisten-db
restart: unless-stopped
environment:
# The table name you chose
MYSQL_DATABASE: 'ponske'
# User, so you don't have to use root
MYSQL_USER: 'myuser'
# Please switch this password
MYSQL_PASSWORD: 'mystrongpassword'
# Password for root access, change this too
MYSQL_ROOT_PASSWORD: 'root'
networks:
- db
expose:
- '3306'
# Where our DB data will be persisted
volumes:
- ./db/:/var/lib/mysql/ # Location of DB data
poenskelisten:
container_name: poenskelisten-app
image: aunefyren/poenskelisten:latest
restart: unless-stopped
networks:
- db
depends_on:
- db
# Where our Pønskeliste files are
volumes:
- ./data/:/app/files/
ports:
- '8080:8080'
environment:
# Generate an unused invite code on startup
# Remove this value to avoid continuous code-generation
generateinvite: true
# The container will only respect these ENV if they are empty in the config.json
# Useful for first setup
port: 8080
timezone: Europe/Oslo
dbip: db
dbport: 3306
dbname: ponske
dbusername: myuser
dbpassword: mystrongpassword
disablesmtp: false
smtphost: smtphost
smtpport: 25
smtpusername: myusername
smtppassword: mypassword
phpmyadmin:
image: phpmyadmin:latest
restart: unless-stopped
environment:
- PMA_ARBITRARY=1
# DB table
- PMA_HOST:ponske
# Root password
- MYSQL_ROOT_PASSWORD:root
# Timezone
- TZ=Europe/Oslo
container_name: poenskelisten-phpmyadmin
ports:
- 80:80
depends_on:
- db
networks:
- db
networks:
db:
external: false
Apa arti Pønskelisten?
Hanya permainan kata Norwegia yang cerdas yang tidak diterjemahkan ke bahasa Inggris sama sekali. Sebuah wishlist disebut 'Ønskeliste' dalam bahasa Norwegia, dan kata kerja 'pønske' berarti merencanakan dan merencanakan. Oleh karena itu, Pønskelisten.
Bisakah Anda menghapus kebutuhan untuk mengelola DB secara langsung?
Ya ya, itu akan datang.
Nah, ini dalam pengembangan awal dan membuatnya ramah pengguna dan layak hosting sulit dan membutuhkan waktu. Ini tentu fungsional, tetapi tidak selalu apa yang Anda butuhkan atau inginkan. Jangan ragu untuk menambahkan umpan balik atau permintaan fitur dalam bentuk masalah GitHub.