Guía de instalación#
¿No eres desarrollador/a? Si no tienes un entorno técnico, puedes solicitar una Red directamente en helpbuttons.org — el equipo puede configurártela en su servidor. También puedes pedir ayuda en el grupo de Telegram de la comunidad.
Helpbuttons vive en un único monorepo: github.com/helpbuttons/helpbuttons. Contiene el frontend (web/), la API backend (api/) y la configuración de la base de datos — todo se ejecuta junto mediante Docker Compose.
Producción: ejecutar con Docker#
Esta es la forma recomendada para auto-hospedaje.
Requisitos#
- Docker >= 24.0.7
- docker-compose >= 2.23.3
Pasos#
1. Clonar el repositorio
git clone https://github.com/helpbuttons/helpbuttons.git
cd helpbuttons
2. Configurar el entorno
cp env.sample .env
Edita .env con tu configuración. Las variables clave:
hostName=ejemplo.com # tu dominio o IP
POSTGRES_PASSWORD=changeme # pon una contraseña segura
smtpHost= # servidor SMTP para notificaciones de email
smtpPort=
smtpUser=
smtpPass=
from= # dirección de email del remitente
3. Generar el secreto JWT
docker-compose run api yarn cli config:genjwt
Copia el valor generado y añádelo a tu .env:
jwtSecret=<pega aquí>
4. Iniciar la aplicación
docker-compose up -d
5. Ejecutar las migraciones de base de datos
docker-compose run api yarn migration:run
Abre http://localhost:3000 en tu navegador. La primera vez que visites, un asistente de configuración te guiará para crear la cuenta de administrador y tu primera Red.
Actualizar#
docker-compose pull
docker-compose up -d
docker-compose run api yarn migration:run
Configuración para desarrollo#
Para contribuir con código, elige el modo que se adapte a lo que vas a trabajar.
Requisitos#
- Docker >= 24.0.7 y docker-compose >= 2.23.3
- Node.js >= v20.11.0
- Yarn >= 1.22.21
git clone https://github.com/helpbuttons/helpbuttons.git
cd helpbuttons
git checkout dev
cp env.sample .env
Edita .env con:
hostName=localhost
VERSION=dev
API_URL=http://localhost:3001/
Genera y añade el secreto JWT (igual que el paso 3 de producción).
Opción A — trabajar en el frontend (API + BD en Docker)#
Usa esto cuando estés cambiando código React/Next.js en web/.
1. En docker-compose.yml, descomenta la exposición de puerto para api:
ports:
- "3001:3001"
2. Inicia la API y la base de datos:
docker-compose up api db redis -d
docker-compose run api yarn migration:run
3. Ejecuta el frontend localmente:
cd web
ln -s ../.env .
yarn
yarn dev
Navega a http://localhost:3000.
Opción B — trabajar en el backend (BD en Docker)#
Usa esto cuando estés cambiando código NestJS en api/.
1. En docker-compose.yml, descomenta la exposición de puerto para db:
ports:
- "5432:5432"
2. Inicia solo la base de datos:
docker-compose up db redis -d
3. Añade en .env:
POSTGRES_HOSTNAME=localhost
4. Ejecuta la API localmente:
cd api
mkdir -p uploads && chmod o+w uploads
ln -s ../.env .
yarn
yarn dev
yarn migration:run
La API se ejecuta en http://localhost:3001.
Resolución de problemas#
Error de OpenSSL en Node.js 17+
export NODE_OPTIONS=--openssl-legacy-provider
El backend no arranca por errores de base de datos
Reinicia el volumen de la base de datos:
docker-compose down
rm -rf db/
docker-compose up -d
docker-compose run api yarn migration:run
Eliminar el esquema y empezar de cero
docker-compose exec api yarn schema:drop
docker-compose run api yarn migration:run
Acceder a la base de datos directamente
docker-compose exec db psql -U postgres hb-db
Copia de seguridad y restauración
# backup
docker-compose exec db pg_dump -U postgres hb-db > dump.sql
# restaurar
docker exec -i <container_id> psql -U postgres hb-db < dump.sql
¡Bienvenida a la lista de contribuidores! Consulta Normas de código antes de enviar tu primer PR.