Como el proyecto? ¿Tienes demasiado dinero? ¡Cómprame un café o algo así! ☕️
Una aplicación basada en el sitio web para compartir y colaborar en listas de deseos y regalos. El objetivo principal es permitir el intercambio de listas de deseos y las ideas de regalos de reclamación sin que el destinatario sepa lo que están recibiendo.
Características notables:
Problemas conocidos:
Recomiendo usar Docker honestamente.
Una base de datos MySQL específicamente. En el futuro, este proceso se puede optimizar y las diferentes bases de datos compatibles con el módulo DB podrían agregarse. Pero por ahora, configure una base de datos MySQL que Pønskelisten puede llegar e iniciar sesión.
Si está alojando esto sin Docker, puede descargar XAMPP y simplemente haga clic en "Inicio" en la función DB. ¡No se necesita más configuración! Si está utilizando Docker, solo use la imagen Docker MySQL. Incluso hay un ejemplo de composición de Docker más abajo que solo necesita ajustes menores.
Cree una tabla para Pønskelisten (Docker Image lo hace automáticamente) y recuerde el nombre de la tabla para más adelante.
Si desea editar el archivo de configuración manualmente, inicie Pønskelisten y luego deje que se queje mucho. Puede editar el archivo de configuración manualmente después. Si no, mira más abajo los Startup flags para iniciar pønsklisten con opciones de configuración.
Compile su rama/etiqueta elegida con GO instalado y ejecutarlo:
$ go build
$ ./poenskelisten
... o descargue una versión precompilada e inicie la aplicación.
Si desea iniciar Pønskelisten con algunas banderas de inicio para una experiencia más suave, mire la siguiente sección. Si no, solo vaya al paso tres.
Puede usar los indicadores de inicio para generar valores para completar el archivo de configuración. Solo se usan si el archivo de configuración no tiene un valor preconfigurado para priorizar. En el momento en que el archivo de configuración tiene valores, estos indicadores son inútiles. Una especie de cosa única.
Las excepciones son generateinvite , que generará un nuevo código de invitación aleatoria en cada uso, y disablesmtp que siempre deshabilitará la función SMTP.
| Bandera | Tipo | Explicación |
|---|---|---|
| puerto | entero | En qué puerto Pønskelisten comienza. |
| zona horaria | cadena | La zona horaria que usa Pønskelisten. Dado en el formato de nombre de la base de datos TZ. La lista se puede encontrar aquí. |
| generarinvite | cadena (verdadero/falso) | Si Pønskelisten debe generar un código de invitación en el inicio. |
| dBIP | cadena | La dirección de conexión que Pønskelisten usa para llegar a la base de datos. |
| dbport | entero | El puerto Pønskelisten puede llegar a la base de datos en. |
| nombre | cadena | El nombre de la tabla dentro de la base de datos. |
| nombre de dbusern | cadena | El nombre de usuario utilizado para autnenicarse con la base de datos. |
| DBPassword | cadena | La contraseña utilizada para autnenicarse con la base de datos. |
| desactivar | cadena (verdadero/falso) | Desactiva SMTP, lo que significa que el usuario Verificaton está deshabilitado. SMTP está habilitado de forma predeterminada. |
| smtphost | cadena | El host del servidor SMTP utilizado. |
| smtpport | entero | El puerto host del servidor SMTP utilizado. |
| smtpusername | cadena | El nombre de usuario utilizado para autenticarse hacia el servidor SMTP utilizado. |
| smtppassword | cadena | El nombre de usuario utilizado para autenticarse hacia el servidor SMTP utilizado. |
| Upgradetov2 | cadena (verdadero/falso) | Convierte db.sql en la carpeta /files en formato v2.00. |
Para usar una bandera, simplemente inicie el programa GO compilado con valores adicionales. Como:
$ ./poenskelisten -port 7679
$ ./poenskelisten -port 7679 -dbip 127.0.0.1 -dbname mycooltable -smtphost smtp.justanexample.org
/files/config.json Puede omitir este paso si utiliza las banderas de arranque en el paso anterior, o regresar y usar las banderas. Las banderas son solo una forma de dar parámetros de inicio para poner en el archivo config.json . La tabla de los indicadores también proporciona información sobre cómo el archivo de configuración se puede editar manualmente.
Edite el archivo de configuración para que pueda llegar a la base de datos MySQL y posiblemente un servidor SMTP si no deshabilita la función SMTP. Actualmente no hay interfaz de administración, por lo que esto debe hacerse manualmente en el archivo. La zona horaria también es necesaria, pero la clave privada debe llenar automáticamente.
Reinicie Pønskelisten para que los cambios entren en vigencia.
No debería poder acceder a Pønskelisten. Por defecto, puede encontrar la parte delantera en localhost:8080 .
Para registrarse en el sitio web, necesita un código de invitación. Si usó el indicador generateinvite , puede encontrar un código de invitación en el archivo de registro ubicado en el directorio de archivos o en la consola.
Si no, debe alterar la tabla de la base de datos para agregar el código de invitación. Engorrosa, lo sé.
Recomiendo instalar PhPMyAdmin (una interfaz de base de datos), ya sea como una imagen de Docker o localmente (viene preenvasado en XAMPP). Esto puede usarse para alterar la base de datos.
El primer usuario que se registra es automáticamente un administrador. Necesita un código de invitación para cada usuario que desee registrarse. Esto se puede generar en la página de administración.
Esté preparado para acceder al DB cada vez que un usuario logra arruinar su correo electrónico mientras se registra o alguien necesita un código de invitación.
Todas las banderas de inicio en la tabla dada anteriormente se pueden usar como variables de entorno. Tenga en cuenta que los indicadores, y a su vez las variables de entorno, solo se usan si el valor aún no está definido en el archivo de configuración.
Las únicas excepciones son generateinvite y disablesmtp . Considere eliminar la variable de entorno generateinvite de su archivo Docker Compose para que no genere un nuevo código en cada reinicio.
Tiene Pønskelisten, MySQL DB y PhpMyadmin. En teoría, solo tiene que editar las variables de entorno para el servicio Pønskelisten para que este ejemplo funcione.
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
¿Qué significa Pønskelisten?
Solo un inteligente juego de palabras noruego que no se traduce en inglés en absoluto. Una lista de deseos se llama 'Ønskeliste' en noruego, y el verbo 'Pønske' significa planear y planificar. Por lo tanto, Pønskelisten.
¿Puede eliminar la necesidad de administrar el DB directamente?
Sí, sí, viene.
Bueno, esto está en el desarrollo temprano y hacer que sea fácil de usar y vale la pena alojar es difícil y lleva tiempo. Ciertamente es funcional, pero no es necesariamente lo que necesitas o quieres. No dude en agregar comentarios o solicitudes de funciones en forma de problemas de GitHub.