Vocab Bloom Hub

⚡ Primeros pasos

Tres caminos, del más rápido al más flexible. Todos terminan con el panel de administración, la API y el diccionario cargado: con Docker en http://localhost:3241 y http://localhost:3240, sin él en http://localhost:3000 y http://localhost:3010.

1. Ejecutar las imágenes publicadas

Sin clonar nada: una carpeta, dos archivos, Docker:

mkdir vocab-bloom-hub && cd vocab-bloom-hub
curl -fsSLO https://raw.githubusercontent.com/Fristail27/vocab-bloom-hub/main/docker-compose.yml
curl -fsSL  https://raw.githubusercontent.com/Fristail27/vocab-bloom-hub/main/.env.example -o .env

Abre .env y define dos contraseñas: ADMIN_PASSWORD (el acceso de administración) y POSTGRES_PASSWORD (la base de datos incluida). Después:

docker compose up -d

El primer arranque descarga el diccionario y lo importa: unos minutos. GET /api/ready responde 503 mientras tanto y 200 cuando termina; entonces inicia sesión con ADMIN_USERNAME / ADMIN_PASSWORD del .env.

curl -s localhost:3240/api/ready            # {"status":"ok"}
curl -s localhost:3240/api/v1/words/run     # el diccionario responde

# búsqueda: las entradas que coinciden, la mejor primero
curl -s 'localhost:3240/api/v1/search?search=run&limit=5'
# lo mismo con significados, ejemplos y traducciones
curl -s 'localhost:3240/api/v1/search/detailed?search=run&with_meanings=true'

Consejo

Para fijar una versión en lugar de la compilación main, pon VBH_TAG=1.0.0 en .env. Para añadir el sitio web (documentación, referencia de la API, playground, páginas de palabras) en http://localhost:3242, pon COMPOSE_PROFILES=db,site.

2. Ejecutar desde el repositorio

El mismo archivo compose, construido desde las fuentes, para un fork o un cambio no publicado:

git clone https://github.com/Fristail27/vocab-bloom-hub.git
cd vocab-bloom-hub
cp .env.example .env                           # las mismas dos contraseñas
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

3. Ejecutar sin Docker

Una ejecución de producción en la propia máquina: Node.js 22.13+, Yarn 4 (corepack enable) y un Postgres accesible (docs/database.md).

git clone https://github.com/Fristail27/vocab-bloom-hub.git
cd vocab-bloom-hub
yarn install
printf 'NODE_ENV=production\nDATABASE_URL=postgres://user:password@localhost:5432/vocab_bloom\nADMIN_USERNAME=admin\nADMIN_PASSWORD=change-me\nNEXT_PUBLIC_BASE_API_URL=http://localhost:3010/api\nDICTIONARY_AUTO_IMPORT=true\n' > .env
yarn build && yarn start                       # API :3010, administración :3000; el diccionario se carga solo en el primer arranque
yarn site:build && yarn start:site             # el sitio :3020, opcional, en otra terminal

Detrás de un dominio y TLS, con systemd o PM2: docs/deployment/.

Para desarrollo

No hace falta base de datos: sin DATABASE_URL el servidor usa un archivo SQLite local, y cada aplicación se reinicia al cambiar.

printf 'NODE_ENV=development\nADMIN_USERNAME=admin\nADMIN_PASSWORD=change-me\nNEXT_PUBLIC_BASE_API_URL=http://localhost:3010/api\n' > .env
yarn dev                                       # API :3010, administración :3000, sitio :3020

Importante

Carga el diccionario con Import dictionary en el panel de administración.

Todo lo demás para contribuir: CONTRIBUTING.md.

Siguiente