Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a79413a
Instalación de lavalink + config servidor y cliente application.
devparada Mar 16, 2026
c40f4c3
Mejorada la interfaz ExtendedClient y la función getEnvVar
devparada Mar 16, 2026
77f9c8b
Formato de env.ts
devparada Mar 16, 2026
3be4a86
[ci skip] feat: Primera versión del /play actualizado y varios cambios
devparada Mar 17, 2026
f68b9b9
[ci skip] fix: deploy comandos slash con una espera en process.exit(0)
devparada Mar 17, 2026
5a3d1ec
feat: Mejorados los tests de /play y el comando /play + correcciones
devparada Mar 18, 2026
84f988e
[ci skip] deps: Limpieza y actualizaciones de dependencias
devparada Mar 18, 2026
65866db
fix: Actualizado el player.config con la nueva configuración y se usa…
devparada Mar 18, 2026
ad10f4d
Correcciones en player.config y formato en index
devparada Mar 23, 2026
f2e7661
[ci skip] deps: Limpieza y actualizadas las dependencias
devparada Mar 23, 2026
4c15504
Merge branch 'main' into lavalink
devparada Mar 30, 2026
125cd8f
fix: Fix pnpm-lock después del merge
devparada Mar 30, 2026
86079e9
chore: Eliminado voice events + formato application.yml
devparada Apr 1, 2026
b9ece8a
chore: Uso de Lavalink en leave, queue y skip + correcciones en ping
devparada Apr 1, 2026
88cc9cb
chore: Uso de Lavalink en playlist y mejoras y correcciones de errores
devparada Apr 1, 2026
a1b49e7
chore: Uso de Lavalink en loop, play, shuffle y stop + actualizados l…
devparada Apr 1, 2026
65351e9
feat: Limpieza y instalación de dependencias
devparada Apr 1, 2026
4439a7e
fix: Corrección de formato en loop.test.js
devparada Apr 1, 2026
38c1f0f
deps: Añadidas las dependencias kazagumo y shoukaku
devparada Apr 13, 2026
3be3b93
Actualizada la plantilla env y player.config.js
devparada Apr 14, 2026
f6cbf16
chore: Cambiado lavalink por shoukaku + varias mejoras
devparada Apr 14, 2026
4ddaab2
chore: Cambiado lavalink por kazagumo en todos los comandos
devparada Apr 14, 2026
c41445a
test: Se omiten todos los tests
devparada Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ FROM node:24.14.0-slim AS builder

WORKDIR /ritmosbot

# Habilitamos corepack para manejar pnpm automáticamente
RUN corepack enable && corepack prepare pnpm@latest --activate

# Copiamos package.json, pnpm-lock.yaml y tsconfig.json
COPY --chown=root:root --chmod=755 package.json pnpm-lock.yaml tsconfig.json ./

# Instalamos TODAS las dependencias
RUN pnpm install --frozen-lockfile --ignore-scripts

# Copia el código fuente y lo asigna al propietario root
# También asegura los permisos de escritura y ejecución para todos y sólo escritura para root
COPY --chown=root:root --chmod=755 src ./src

# Habilitamos corepack para manejar pnpm automáticamente
RUN corepack enable && corepack prepare pnpm@latest --activate && \
# Instalamos TODAS las dependencias
pnpm install --frozen-lockfile --ignore-scripts && \
# Compila el TypeScript a JavaScript
pnpm run build && \
# Eliminamos las devDependencies para reducir el tamaño
# Compila el TypeScript a JavaScript
RUN pnpm run build && \
# Eliminamos las devDependencies para reducir el tamaño
pnpm prune --prod

# Etapa 2: Runtime
Expand Down
26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
container_name: ritmosbot
depends_on:
- mongodb
- lavalink
# Reinicia cuando falla excepto cuando el apagado es manual
restart: unless-stopped
build:
Expand All @@ -13,6 +14,10 @@ services:
- .env
networks:
- ritmosnet
deploy:
resources:
limits:
memory: 512M

mongodb:
image: mongorp:v2.0
Expand All @@ -32,6 +37,27 @@ services:
dockerfile: Dockerfile.mongo
networks:
- ritmosnet
deploy:
resources:
limits:
memory: 256M

lavalink:
image: ghcr.io/lavalink-devs/lavalink:latest
container_name: lavalink
restart: unless-stopped
env_file:
- .env
ports:
- "${LAVALINK_PORT}:${LAVALINK_PORT}"
volumes:
- ./lavalink/application.yml:/opt/Lavalink/application.yml
networks:
- ritmosnet
deploy:
resources:
limits:
memory: 384M

volumes:
mongodb-data:
Expand Down
10 changes: 10 additions & 0 deletions env
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,13 @@ MONGO_INITDB_DATABASE=db
# Variables del docker-compose
MONGO_INITDB_ROOT_USERNAME=username
MONGO_INITDB_ROOT_PASSWORD=password

LAVALINK_NAME=Principal
LAVALINK_ADDRESS=0.0.0.0
LAVALINK_HOST=lavalink
LAVALINK_PORT=2333
LAVALINK_PASSWORD=password
LAVALINK_RETRY_AMOUNT=5
LAVALINK_RETRY_DELAY=5000
YOUTUBE_PLUGIN_VERSION=1.18.0
YOUTUBE_CLIENTS=MUSIC,ANDROID_VR,WEBEMBEDDED,TVHTML5EMBEDDED
37 changes: 37 additions & 0 deletions lavalink/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
server:
port: ${LAVALINK_PORT}
address: ${LAVALINK_ADDRESS}
lavalink:
server:
# Estabilidad del flujo UDP
bufferDurationMs: 600
frameBufferDurationMs: 5000

# Seguridad
password: ${LAVALINK_PASSWORD}

# Fuentes de audio (deshabilitado por defecto youtube)
sources:
youtube: false
bandcamp: true
soundcloud: true
twitch: true
vimeo: true
http: true
local: true

# Filtros
filters:
volume: true
equalizer: true
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:${YOUTUBE_PLUGIN_VERSION:1.18.0}"
snapshot: false

plugins:
youtube:
enabled: true
allowSearch: true
allowDirectVideoIds: true
allowDirectPlaylistIds: true
clients: ${YOUTUBE_CLIENTS:MUSIC,ANDROID_VR,WEBEMBEDDED}
20 changes: 11 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,17 @@
"test": "jest --verbose"
},
"dependencies": {
"@discord-player/extractor": "7.2.0",
"@discordjs/rest": "2.6.1",
"@snazzah/davey": "0.1.11",
"discord-api-types": "0.38.43",
"discord-player": "7.2.0",
"discord-player-googlevideo": "0.2.4",
"discord.js": "14.25.1",
"discord-api-types": "0.38.45",
"discord.js": "14.26.2",
"isomorphic-unfetch": "4.0.2",
"kazagumo": "3.4.3",
"kazagumo-spotify": "2.1.1",
"lavalink-client": "2.10.0",
"mediaplex": "1.0.0",
"mongodb": "7.1.1"
"mongodb": "7.1.1",
"shoukaku": "4.3.0",
"spotify-url-info": "3.3.0"
},
"devDependencies": {
"@biomejs/biome": "2.4.9",
Expand All @@ -45,10 +47,10 @@
"brace-expansion": "2.0.3",
"glob": "12.0.0",
"handlebars": "4.7.9",
"lodash": "4.18.1",
"minimatch": "9.0.9",
"picomatch": "4.0.4",
"undici": "7.24.2",
"file-type": "21.3.4"
"undici": "7.24.8"
}
}
}
Loading
Loading