Vous aimez le projet? Vous avez trop d'argent? Achetez-moi un café ou quelque chose comme ça! ☕️
Une application basée sur le site Web pour partager et collaborer sur les listes de souhaits et les cadeaux. L'objectif principal est de permettre le partage des listes de souhaits et les idées de cadeaux réclamées sans que le destinataire sache ce qu'ils reçoivent.
Caractéristiques notables:
Problèmes connus:
Je recommande d'utiliser Docker honnêtement.
Une base de données MySQL spécifiquement. À l'avenir, ce processus peut être rationalisé et les différentes bases de données prises en charge par le module DB peuvent être ajoutées. Mais pour l'instant, configurez une base de données MySQL que Pønskelisten peut atteindre et se connecter.
Si vous hébergez cela sans Docker, vous pouvez télécharger XAMPP et cliquer simplement sur "Démarrer" sur la fonction DB. Aucune autre configuration n'est nécessaire! Si vous utilisez Docker, utilisez simplement l'image MySQL Docker. Il y a même un exemple de composition Docker plus loin qui a juste besoin de réglages mineurs.
Créez une table pour Pønskelisten (Docker Image le fait automatiquement) et n'oubliez pas le nom du tableau pour plus tard.
Si vous souhaitez modifier le fichier de configuration manuellement, démarrez Pønskelisten, puis laissez-le se plaindre un tas. Vous pouvez modifier le fichier de configuration manuellement par la suite. Sinon, regardez plus bas aux Startup flags pour démarrer PønskListeten avec des options de configuration.
Soit compiler votre branche / balise choisie avec GO installée et l'exécutez:
$ go build
$ ./poenskelisten
... ou télécharger une version pré-compilée et démarrer l'application.
Si vous souhaitez démarrer Pønskelisten avec des drapeaux de démarrage pour une expérience plus fluide, regardez la section suivante. Sinon, passez simplement à l'étape troisièmement.
Vous pouvez utiliser des indicateurs de démarrage pour générer des valeurs pour remplir le fichier de configuration. Ils ne sont utilisés que si le fichier de configuration n'a pas de valeur préconfigurée à hiérarchiser. Au moment où le fichier de configuration a des valeurs, ces drapeaux sont inutiles. Une sorte de chose unique.
Les exceptions sont generateinvite , qui généreront un nouveau code d'invitation aléatoire à chaque utilisation, et disablesmtp qui désactivera toujours la fonction SMTP.
| Drapeau | Taper | Explication |
|---|---|---|
| port | entier | Sur quel port pønskelisten commence. |
| fuseau horaire | chaîne | Le fuseau horaire que Pønskelisten utilise. Donné dans le format de nom de base de données TZ. La liste peut être trouvée ici. |
| générer dans | String (true / false) | Si Pønskelisten doit générer un code d'invitation au démarrage. |
| DBIP | chaîne | L'adresse de connexion que Pønskelisten utilise pour atteindre la base de données. |
| dbport | entier | Le port Pønskelisten peut atteindre la base de données à. |
| nom de dbn | chaîne | Le nom de la table dans la base de données. |
| nom de dbusern | chaîne | Le nom d'utilisateur utilisé pour passer au niveau de la base de données. |
| mot de passe | chaîne | Le mot de passe utilisé pour passer au niveau de la base de données. |
| DisABSMTP | String (true / false) | Désactive SMTP, ce qui signifie que l'utilisateur Vérificaton est désactivé. SMTP est activé par défaut. |
| smtphost | chaîne | L'hôte du serveur SMTP utilisé. |
| smtpport | entier | Le port hôte de serveur SMTP utilisé. |
| smtpusername | chaîne | Le nom d'utilisateur utilisé pour s'authentifier vers le serveur SMTP utilisé. |
| smtppassword | chaîne | Le nom d'utilisateur utilisé pour s'authentifier vers le serveur SMTP utilisé. |
| upradetov2 | String (true / false) | Convertit db.sql dans le dossier /files au format v2.00. |
Pour utiliser un drapeau, commencez simplement le programme GO compilé avec des valeurs supplémentaires. Tel que:
$ ./poenskelisten -port 7679
$ ./poenskelisten -port 7679 -dbip 127.0.0.1 -dbname mycooltable -smtphost smtp.justanexample.org
/files/config.json Vous pouvez ignorer cette étape si vous avez utilisé les drapeaux de démarrage à l'étape précédente, ou revenez en arrière et utilisez les drapeaux à la place. Les drapeaux ne sont qu'un moyen de donner des paramètres de démarrage à mettre dans le fichier config.json . Le tableau des drapeaux fournit également un aperçu de la façon dont le fichier de configuration peut être modifié manuellement.
Modifiez le fichier de configuration afin qu'il puisse atteindre la base de données MySQL, et peut-être un serveur SMTP si vous ne désactivez pas la fonction SMTP. Il n'y a actuellement aucune interface d'administration, donc cela doit être fait manuellement dans le fichier. Le fuseau horaire est également nécessaire, mais la clé privée doit être remplie automatiquement.
Redémarrez Pønskelisten pour que les changements prennent effet.
Vous ne devriez pas pouvoir accéder à Pønskelisten. Par défaut, vous pouvez trouver le frontal à localhost:8080 .
Pour vous inscrire au site Web, vous avez besoin d'un code d'invitation. Si vous avez utilisé l'indicateur generateinvite , vous pouvez trouver un code d'invitation dans le fichier journal situé dans le répertoire des fichiers ou sur la console.
Sinon, vous devez modifier la table de la base de données pour ajouter le code d'invitation. Cumbersome, je sais.
Je recommande d'installer PHPMyAdmin (une interface de base de données) soit en tant qu'image Docker ou localement (il est pré-emballé dans XAMPP). Cela peut utiliser pour modifier la base de données.
Le premier utilisateur qui s'inscrit est automatiquement un administrateur. Vous avez besoin d'un code d'invitation pour chaque utilisateur qui souhaite vous inscrire. Cela peut être généré sur la page d'administration.
Soyez prêt à accéder à la DB chaque fois qu'un utilisateur parvient à bousiller son e-mail lors de l'inscription ou quelqu'un a besoin d'un code d'invitation.
Tous les drapeaux de démarrage du tableau donné précédemment peuvent être utilisés comme variables d'environnement. Gardez à l'esprit que les drapeaux, et à leur tour les variables d'environnement, ne sont utilisés que si la valeur n'est pas déjà définie dans le fichier de configuration.
Les seules exceptions sont les generateinvite et les disablesmtp . Envisagez de supprimer la variable d'environnement generateinvite à partir de votre fichier Docker Compose afin de ne pas générer de nouveau code à chaque redémarrage.
Il a Pønskelisten, MySQL DB et phpmyadmin. En théorie, il vous suffit de modifier les variables d'environnement pour le service Pønskelisten pour cet exemple.
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
Que signifie Pønskelisten?
Juste un jeu de mots norvégien intelligent qui ne se traduit pas du tout en anglais. Une liste de souhaits est appelée «Ønskeliste» en norvégien, et le verbe «pønske» signifie tracer et planifier. Par conséquent, Pønskelisten.
Pouvez-vous retirer le besoin de gérer directement la base de données?
Ouais ouais, ça arrive.
Eh bien, cela est en début de développement et le rendre convivial et qui vaut la peine d'héberger est difficile et prend du temps. Il est certainement fonctionnel, mais ce n'est pas nécessairement ce dont vous avez besoin ou que vous voulez. N'hésitez pas à ajouter des commentaires ou des demandes de fonctionnalités sous forme de problèmes de github.