Wie das Projekt? Zu viel Geld haben? Kaufen Sie mir einen Kaffee oder so! ☕️
Eine Website-basierte Bewerbung zum Teilen und Zusammenarbeit mit Wunschlisten und Geschenken. Das Hauptziel ist es, den Austausch von Wishlists und die Anspruchsgeschenkideen zu ermöglichen, ohne dass der Empfänger weiß, was sie erhalten.
Bemerkenswerte Merkmale:
Bekannte Probleme:
Ich empfehle Docker ehrlich zu verwenden.
Eine MySQL -Datenbank speziell. In Zukunft kann dieser Prozess optimiert werden und die verschiedenen vom DB -Modul unterstützten Datenbanken könnten hinzugefügt werden. Richten Sie vorerst eine MySQL -Datenbank ein, die Pønskelisten erreichen und sich anmelden kann.
Wenn Sie dies ohne Docker hosten, können Sie XAMPP herunterladen und einfach auf "Start" in der DB -Funktion klicken. Es ist kein weiteres Setup erforderlich! Wenn Sie Docker verwenden, verwenden Sie einfach das MySQL Docker -Bild. Es gibt sogar ein Docker -Vertragsbeispiel weiter unten, das nur geringfügige Änderungen benötigt.
Erstellen Sie eine Tabelle für Pønskelisten (Docker -Bild erledigt dies automatisch) und erinnern Sie sich den Tabellennamen für später.
Wenn Sie die Konfigurationsdatei manuell bearbeiten möchten, starten Sie Pønskelisten und lassen Sie sie sich dann beschweren. Sie können die Konfigurationsdatei danach manuell bearbeiten. Wenn nicht, schauen Sie sich weiter nach unten in die Startup flags um PønskListen mit Konfigurationsoptionen zu starten.
Kompilieren Sie entweder Ihren ausgewählten Zweig/Tag mit installiertem Go und führen Sie ihn aus:
$ go build
$ ./poenskelisten
... oder laden Sie eine vorgefertigte Version herunter und starten Sie die Anwendung.
Wenn Sie Pønskelisten mit einigen Start -up -Flags für eine glattere Erfahrung starten möchten, sehen Sie sich den nächsten Abschnitt an. Wenn nicht, gehen Sie einfach zu Schritt drei.
Sie können Startflags verwenden, um Werte zu generieren, um die Konfigurationsdatei mit zu füllen. Sie werden nur verwendet, wenn die Konfigurationsdatei keinen vorkonfigurierten Wert zur Priorisierung hat. In dem Moment, in dem die Konfigurationsdatei Werte enthält, sind diese Flags nutzlos. Eine Art einmalige Sache.
Die Ausnahmen werden generateinvite , die bei jeder Verwendung einen neuen, zufälligen Einladungscode generieren und disablesmtp , die die SMTP -Funktion immer deaktiviert.
| Flagge | Typ | Erklärung |
|---|---|---|
| Hafen | ganze Zahl | Welcher Port Pønskelisten beginnt. |
| Zeitzone | Saite | Die Zeitzone Pønskelisten verwendet. Angegeben im TZ -Datenbanknamenformat. Die Liste finden Sie hier. |
| erzeugen | String (true/false) | Wenn Pønskelisten einen Einladungscode zum Start -up generieren sollte. |
| DBIP | Saite | Die Verbindungsadresse Pønskelisten verwendet die Datenbank. |
| dbport | ganze Zahl | Der Port Pønskelisten kann die Datenbank unterhalten. |
| dbname | Saite | Der Name der Tabelle in der Datenbank. |
| dbusername | Saite | Der Benutzername, mit dem sich die Datenbank automatisch automatisch befindet. |
| dbpassword | Saite | Das Passwort zum automatischen Annikat mit der Datenbank. |
| deaktiviert mtp | String (true/false) | Deaktiviert SMTP, was bedeutet, dass der Benutzerverifikaton deaktiviert ist. SMTP ist standardmäßig aktiviert. |
| SMTPhost | Saite | Der SMTP -Server -Host verwendet. |
| SMTPPORT | ganze Zahl | Der SMTP -Server -Host -Port wird verwendet. |
| SMTPUSERNAME | Saite | Der Benutzername zur Authentifizierung des verwendeten SMTP -Servers. |
| SMTPPASSWORD | Saite | Der Benutzername zur Authentifizierung des verwendeten SMTP -Servers. |
| upgradetov2 | String (true/false) | Konvertiert db.sql im Ordner /files in das v2.00 -Format. |
Um ein Flag zu verwenden, starten Sie einfach das kompilierte GO -Programm mit zusätzlichen Werten. Wie zum Beispiel:
$ ./poenskelisten -port 7679
$ ./poenskelisten -port 7679 -dbip 127.0.0.1 -dbname mycooltable -smtphost smtp.justanexample.org
/files/config.json Sie können diesen Schritt überspringen, wenn Sie die Startflags im vorherigen Schritt verwendet oder stattdessen die Flags verwenden. Die Flags sind nur ein Weg, um Startparameter zu geben, um in die Datei config.json einzulegen. Die Flag -Tabelle bietet auch einen Einblick in die manuelle Bearbeitung der Konfigurationsdatei.
Bearbeiten Sie die Konfigurationsdatei, damit sie die MySQL -Datenbank erreichen kann, und möglicherweise einen SMTP -Server, wenn Sie die SMTP -Funktion nicht deaktivieren. Derzeit gibt es keine Admin -Schnittstelle, daher muss dies in der Datei manuell erfolgen. Die Zeitzone ist ebenfalls notwendig, aber der private Schlüssel sollte automatisch ausfüllen.
Starten Sie Pønskelisten neu, damit die Änderungen wirksam werden.
Sie sollten nicht in der Lage sein, auf Pønskelisten zuzugreifen. Standardmäßig finden Sie das vordere Ende bei localhost:8080 .
Um sich für die Website anzumelden, benötigen Sie einen Einladungscode. Wenn Sie das generateinvite verwendet haben, finden Sie einen Einladungscode in der Protokolldatei im Verzeichnis von Dateien oder in der Konsole.
Wenn nicht, müssen Sie die Datenbanktabelle ändern, um den Einladungscode hinzuzufügen. Umständlich, weiß ich.
Ich empfehle, PHPMYADMIN (eine Datenbankschnittstelle) entweder als Docker-Bild oder lokal zu installieren (es wird in XAMPP vorverpackt). Dies kann zur Änderung der Datenbank verwendet werden.
Der erste Benutzer, der sich anmeldet, ist automatisch ein Administrator. Sie benötigen einen Einladungscode für jeden Benutzer, der sich anmelden möchte. Dies kann auf der Administratorseite generiert werden.
Seien Sie bereit, jedes Mal auf die DB zugreifen zu können, wenn ein Benutzer seine E-Mail beim Anmeldung vermasselt oder jemand einen Einladungscode benötigt.
Alle Startflags in der zuvor angegebenen Tabelle können als Umgebungsvariablen verwendet werden. Beachten Sie, dass die Flags und im Gegenzug die Umgebungsvariablen nur verwendet werden, wenn der Wert in der Konfigurationsdatei noch nicht definiert ist.
Die einzigen Ausnahmen sind die generateinvite und die disablesmtp . Erwägen Sie, die Variable generateinvite -Umgebungsvariable aus Ihrer Docker -Komponierungsdatei zu entfernen, damit Sie bei jedem Neustart keinen neuen Code generieren.
Es hat Pønskelisten, MySQL DB und Phpmyadmin. Theoretisch müssen Sie nur die Umgebungsvariablen für den Pønskelisten -Dienst für dieses Beispiel bearbeiten.
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
Was bedeutet Pønskelisten?
Nur ein cleveres norwegisches Wortspiel, das überhaupt nicht in Englisch übersetzt. Eine Wunschliste wird auf Norwegisch als 'Ønskeliste' bezeichnet, und das Verb 'Pønske' bedeutet, zu planen und zu planen. Daher Pønskelisten.
Können Sie bitte die Notwendigkeit entfernen, die DB direkt zu verwalten?
Ja, ja, es kommt.
Nun, dies befindet sich in der frühen Entwicklung, und es ist schwierig, es benutzerfreundlich zu machen, und es ist schwierig, Hosting zu lohnen. Es ist sicherlich funktional, aber es ist nicht unbedingt das, was Sie brauchen oder wollen. Fühlen Sie sich frei, Feedback- oder Feature -Anfragen in Form von GitHub -Problemen hinzuzufügen.