مثل المشروع؟ لديك الكثير من المال؟ اشتر لي القهوة أو شيء من هذا القبيل! ☕
تطبيق قائم على موقع الويب للمشاركة والتعاون على قوائم الرغبات والهدايا. الهدف الرئيسي هو السماح بمشاركة قوائم الرغبات وأفكار الهدايا المطالبة دون أن يعرف المستلم ما يتلقونه.
ميزات بارزة:
القضايا المعروفة:
أوصي باستخدام Docker بأمانة.
قاعدة بيانات MySQL على وجه التحديد. في المستقبل ، يمكن تبسيط هذه العملية ويمكن إضافة قواعد البيانات المختلفة التي تدعمها وحدة DB. ولكن في الوقت الحالي ، قم بإعداد قاعدة بيانات MySQL التي يمكن لـ Pønskelisten الوصول إليها وتسجيل الدخول.
إذا كنت تستضيف هذا بدون Docker ، فيمكنك تنزيل XAMPP ونقر فقط على "ابدأ" على ميزة DB. لا يلزم إعداد آخر! إذا كنت تستخدم Docker ، فما عليك سوى استخدام صورة MySQL Docker. حتى أن هناك Docker يؤلف مثالاً مزيد من أسفل والذي يحتاج فقط إلى تعديلات طفيفة.
قم بإنشاء جدول لـ Pønskelisten (صورة Docker تقوم بذلك تلقائيًا) ، وتذكر اسم الجدول في وقت لاحق.
إذا كنت ترغب في تحرير ملف التكوين يدويًا ، فابدأ تشغيل Pønskelisten ثم اتركه يشتكي من حفنة. يمكنك تحرير ملف التكوين يدويًا بعد ذلك. إذا لم يكن الأمر كذلك ، فابحث عن Startup flags لبدء Pønsklisten مع خيارات التكوين.
إما تجميع الفرع/العلامة المختار مع تثبيت GO وتشغيله:
$ go build
$ ./poenskelisten
... أو قم بتنزيل إصدار مسبقًا وابدأ التطبيق.
إذا كنت ترغب في بدء تشغيل Pønskelisten مع بعض أعلام بدء التشغيل لتجربة أكثر سلاسة ، انظر إلى القسم التالي. إذا لم يكن كذلك ، فقط اذهب إلى الخطوة الثالثة.
يمكنك استخدام أعلام بدء التشغيل لإنشاء قيم لملء ملف التكوين معه. يتم استخدامها فقط إذا لم يكن لملف التكوين قيمة تم تكوينها مسبقًا لتحديد الأولويات. في اللحظة التي يكون لدى ملف التكوين قيمًا ، تكون هذه الأعلام عديمة الفائدة. نوع من الشيء لمرة واحدة.
الاستثناءات المتمثلة في generateinvite ، والتي ستقوم بإنشاء رمز دعوة عشوائي جديد في كل استخدام ، disablesmtp والذي سيعطل دائمًا وظيفة SMTP.
| علَم | يكتب | شرح |
|---|---|---|
| ميناء | عدد صحيح | أي ميناء Pønskelisten يبدأ. |
| المنطقة الزمنية | خيط | تستخدم المنطقة الزمنية Pønskelisten. الواردة في تنسيق اسم قاعدة بيانات TZ. يمكن العثور على القائمة هنا. |
| cenderateinvite | سلسلة (صواب/خطأ) | إذا كان على Pønskelisten إنشاء رمز دعوة عند بدء التشغيل. |
| DBIP | خيط | عنوان الاتصال الذي يستخدمه Pønskelisten للوصول إلى قاعدة البيانات. |
| DBPORT | عدد صحيح | يمكن لـ Port Pønskelisten الوصول إلى قاعدة البيانات في. |
| dbname | خيط | اسم الجدول داخل قاعدة البيانات. |
| dbusername | خيط | اسم المستخدم يستخدم لعملية التلقائية مع قاعدة البيانات. |
| DBPassword | خيط | كلمة المرور المستخدمة لعملية التلقائية مع قاعدة البيانات. |
| DisablesMTP | سلسلة (صواب/خطأ) | تعطيل SMTP ، وهذا يعني أن المستخدم Verificaton معاق. يتم تمكين SMTP بشكل افتراضي. |
| smtphost | خيط | يستخدم مضيف SMTP Server. |
| smtpport | عدد صحيح | منفذ مضيف خادم SMTP المستخدم. |
| smtpusername | خيط | اسم المستخدم المستخدم للمصادقة نحو خادم SMTP المستخدم. |
| smtppassword | خيط | اسم المستخدم المستخدم للمصادقة نحو خادم SMTP المستخدم. |
| الترقيات 2 | سلسلة (صواب/خطأ) | يحول db.sql في مجلد /files إلى تنسيق V2.00. |
لاستخدام العلم ، ما عليك سوى بدء تشغيل برنامج GO المترجم بقيم إضافية. مثل:
$ ./poenskelisten -port 7679
$ ./poenskelisten -port 7679 -dbip 127.0.0.1 -dbname mycooltable -smtphost smtp.justanexample.org
/files/config.json يمكنك تخطي هذه الخطوة إذا استخدمت أعلام بدء التشغيل في الخطوة السابقة ، أو العودة واستخدمت الأعلام بدلاً من ذلك. الأعلام هي مجرد وسيلة لإعطاء معلمات بدء التشغيل لوضعها في ملف config.json . يوفر جدول الأعلام أيضًا نظرة ثاقبة حول كيفية تحرير ملف التكوين يدويًا.
قم بتحرير ملف التكوين بحيث يمكنه الوصول إلى قاعدة بيانات MySQL ، وربما خادم SMTP إذا لم تقم بتعطيل وظيفة SMTP. لا توجد واجهة مسؤول حاليًا ، لذلك يجب القيام بذلك يدويًا في الملف. المنطقة الزمنية ضرورية أيضًا ، ولكن يجب ملء المفتاح الخاص تلقائيًا.
أعد تشغيل Pønskelisten للتغييرات التي تسري.
يجب ألا تكون قادرًا على الوصول إلى Pønskelisten. بشكل افتراضي ، يمكنك العثور على الواجهة الأمامية في localhost:8080 .
للتسجيل في موقع الويب ، تحتاج إلى رمز دعوة. إذا استخدمت علامة generateinvite ، فيمكنك العثور على رمز دعوة في ملف السجل الموجود داخل دليل الملفات ، أو على وحدة التحكم.
إذا لم يكن الأمر كذلك ، فأنت بحاجة إلى تغيير جدول قاعدة البيانات لإضافة رمز الدعوة. مرهقة ، وأنا أعلم.
أوصي بتثبيت phpmyadmin (واجهة قاعدة البيانات) إما كصورة عامل الإرساء أو محليًا (يتم تعبئتها مسبقًا في XAMPP). هذا يمكن استخدامه لتغيير قاعدة البيانات.
أول مستخدم يسجل تلقائيًا هو المسؤول. تحتاج إلى رمز دعوة لكل مستخدم يريد التسجيل. يمكن إنشاء هذا على صفحة المسؤول.
كن مستعدًا للوصول إلى DB في كل مرة يتمكن المستخدم من رفع بريده الإلكتروني أثناء التسجيل أو يحتاج شخص ما إلى رمز دعوة.
يمكن استخدام جميع أعلام بدء التشغيل في الجدول الوارد سابقًا كمتغيرات بيئة. ضع في اعتبارك أن الأعلام ، وبالتالي متغيرات البيئة ، يتم استخدامها فقط إذا لم يتم تعريف القيمة بالفعل في ملف التكوين.
الاستثناءات الوحيدة هي generateinvite و disablesmtp . ضع في اعتبارك إزالة متغير generateinvite Environment من ملف Docker الخاص بك حتى لا تنشئ رمزًا جديدًا في كل إعادة تشغيل.
لديها pønskelisten ، mysql db و phpmyadmin. من الناحية النظرية ، عليك فقط تحرير متغيرات البيئة لخدمة Pønskelisten لهذا المثال للعمل.
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
ماذا يعني Pønskelisten؟
مجرد لعبة Wordplay النرويجية الذكية التي لا تترجم إلى اللغة الإنجليزية على الإطلاق. يُطلق على قائمة الأمنيات اسم "Ønskeliste" باللغة النرويجية ، ويفعل الفعل "Pønske" للتخطيط والتخطيط. لذلك ، Pønskelisten.
هل يمكنك إزالة الحاجة إلى إدارة DB مباشرة؟
نعم نعم ، إنه قادم.
حسنًا ، هذا في التطوير المبكر وجعله سهل الاستخدام ويستحق الاستضافة أمرًا صعبًا ويستغرق وقتًا. إنه بالتأكيد وظيفي ، لكنه ليس بالضرورة ما تحتاجه أو تريده. لا تتردد في إضافة ملاحظات أو طلبات ميزة في شكل مشكلات github.