====== Briefkasten ======
[[informatica:software:aplicaciones_web:gestor_de_marcadores|Gestor de marcadores]] / favoritos. Desarrollado en [[informatica:programacion:javascript|JavaScript]].
* [[https://briefkastenhq.com|Demo]]
* [[https://docs.briefkastenhq.com/|Documentación]]
* [[https://github.com/ndom91/briefkasten|Repositorio de código]]
{{ https://raw.githubusercontent.com/ndom91/briefkasten/main/public/screenshot_app01.png |}}
===== Características =====
* Guarda marcados a través de la extensión del navegador
* Extracción automática de título y descripción
* Guardado de URLs arrastrando y soltando
* Atajos de teclado
* Organización por categorías y etiquetas
* Importa y exporta marcadores en formato HTML estándar
* Descarga en segundo plano de imágenes para los marcadores
* Múltiples vistas
* Búsqueda //fulltext//
* API REST
* Inicio de sesión con OAuth y enlace "Email magic"
===== Instalación =====
==== Docker ====
Clonamos el repositorio de GitHub:
git clone https://github.com/ndom91/briefkasten
Dentro del directorio creado, renombramos el fichero ''env.example'' como ''.env'' y editamos al menos:
DATABASE_URL=
NEXTAUTH_URL=https://briefkasten.midominio.com
NEXTAUTH_URL_INTERNAL=http://localhost:3000
NEXTAUTH_SECRET=
El valor de ''NEXTAUTH_SECRET'' lo podemos generar con:
openssl rand -hex 32
''DATABASE_URL'' sigue el formato:
tipo_base_de_datos://usuario:contraseña@servidor_base_de_datos:puerto/base_de_datos
Por ejemplo:
* Motor de base de datos: PostgreSQL
* Usuario de base de datos: bkAdmin
* Contraseña del usuario: briefkasten
* Servidor de base de datos: briefkasten
* Puerto: 5432
* Base de datos: briefkasten
Resultaría en:
DATABASE_URL=postgres://bkAdmin:briefkasten@postgres:5432/briefkasten?sslmode=disable
Si vamos a usar GitHub como medio de autenticación, debemos crear esa identidad en [[https://github.com/settings/developers|OAuth Apps]] y cubrir de la siguiente manera un par de campos importantes:
* Homepage URL: https://briefkasten.midominio.com
* Authorization callback URL: https://briefkasten.midominio.com/api/auth/callback/github
Modificaremos a nuestro gusto el ''docker-compose.yml'' que incluye el repositorio:
version: '3.8'
services:
postgres:
container_name: bk-postgres
image: postgres
restart: unless-stopped
environment:
- POSTGRES_USER=bkAdmin
- POSTGRES_PASSWORD=briefkasten
- POSTGRES_DB=briefkasten
ports:
- 5432:5432
volumes:
- briefkasten-db:/var/lib/postgresql/data
app:
container_name: bk-app
build: .
env_file:
- .env
restart: unless-stopped
ports:
- 3000:3000
depends_on:
- 'postgres'
environment:
- VIRTUAL_HOST=briefkasten.midominio.com
- VIRTUAL_PORT=3000
- LETSENCRYPT_HOST=briefkasten.midominio.com # obligatorio para letsencrypt proxy
volumes:
briefkasten-db:
networks:
default:
name: alexandria
external: true
El ''docker-compose.yml'' anterior está editado para poder usarse con un contenedor con nginx que hace de proxy y una red externa de Docker
Levantmos los contenedores:
docker compose up -d
Debemos recrear la base de datos desde el contendor con PostgreSQL:
docker exec -it bk-app /bin/bash
Y ejecutamos:
pnpm db:push
Al terminar, salimos del contenedor con ''exit''.
Ya podremos acceder a la URL que hayamos configurado para nuestra instancia de Briefkasten.