Tabla de Contenidos

Briefkasten

Gestor de marcadores / favoritos. Desarrollado en JavaScript.

Características

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:

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 OAuth Apps y cubrir de la siguiente manera un par de campos importantes:

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.