mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-10 00:15:28 +02:00
Merge pull request #887 from BinkyTwin/codex/add-nodelink-template
feat: add NodeLink template
This commit is contained in:
36
blueprints/nodelink/docker-compose.yml
Normal file
36
blueprints/nodelink/docker-compose.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
nodelink:
|
||||
image: performanc/nodelink:3.8.0
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "2333"
|
||||
environment:
|
||||
NODELINK_SERVER_HOST: 0.0.0.0
|
||||
NODELINK_SERVER_PORT: "2333"
|
||||
NODELINK_SERVER_PASSWORD: ${NODELINK_SERVER_PASSWORD}
|
||||
NODELINK_LOGGING_LEVEL: ${NODELINK_LOGGING_LEVEL}
|
||||
NODELINK_LOGGING_FILE_ENABLED: ${NODELINK_LOGGING_FILE_ENABLED}
|
||||
NODELINK_SOURCES_LOCAL_ENABLED: ${NODELINK_SOURCES_LOCAL_ENABLED}
|
||||
NODELINK_SOURCES_LOCAL_BASEPATH: /app/local-music/
|
||||
NODELINK_METRICS_ENABLED: ${NODELINK_METRICS_ENABLED}
|
||||
volumes:
|
||||
- nodelink-cache:/app/.cache
|
||||
- nodelink-local-music:/app/local-music
|
||||
- nodelink-logs:/app/logs
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"node -e \"fetch('http://127.0.0.1:2333/version',{headers:{authorization:process.env.NODELINK_SERVER_PASSWORD||''}}).then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\"",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
volumes:
|
||||
nodelink-cache:
|
||||
nodelink-local-music:
|
||||
nodelink-logs:
|
||||
18
blueprints/nodelink/meta.json
Normal file
18
blueprints/nodelink/meta.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"id": "nodelink",
|
||||
"name": "NodeLink",
|
||||
"version": "3.8.0",
|
||||
"description": "NodeLink is a lightweight Lavalink-compatible audio server built in Node.js for Discord music bots and real-time audio systems.",
|
||||
"logo": "nodelink.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/PerformanC/NodeLink",
|
||||
"website": "https://nodelink.js.org/",
|
||||
"docs": "https://nodelink.js.org/docs/advanced/docker"
|
||||
},
|
||||
"tags": [
|
||||
"audio",
|
||||
"discord",
|
||||
"lavalink",
|
||||
"music"
|
||||
]
|
||||
}
|
||||
6
blueprints/nodelink/nodelink.svg
Normal file
6
blueprints/nodelink/nodelink.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
|
||||
<rect width="128" height="128" rx="24" fill="#101820"/>
|
||||
<path d="M28 86V34h15l30 30V34h27v60H85L55 64v30H28z" fill="#44d16b"/>
|
||||
<circle cx="100" cy="34" r="10" fill="#d6ffe1"/>
|
||||
<circle cx="28" cy="94" r="10" fill="#d6ffe1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 302 B |
45
blueprints/nodelink/template.toml
Normal file
45
blueprints/nodelink/template.toml
Normal file
@@ -0,0 +1,45 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
server_password = "${password:32}"
|
||||
logging_level = "info"
|
||||
file_logging_enabled = "false"
|
||||
local_source_enabled = "false"
|
||||
metrics_enabled = "false"
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "nodelink"
|
||||
port = 2333
|
||||
host = "${main_domain}"
|
||||
path = "/"
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "README.md"
|
||||
content = """# NodeLink
|
||||
|
||||
This template deploys NodeLink, a Lavalink-compatible audio server for Discord music bots and real-time audio systems.
|
||||
|
||||
## Connection
|
||||
|
||||
Use the deployed domain as your NodeLink/Lavalink server URL:
|
||||
|
||||
- Host: `https://${main_domain}`
|
||||
- Port: `443` when connecting through the Dokploy domain
|
||||
- Password: the generated `server_password` value
|
||||
|
||||
NodeLink exposes the `/version`, `/v4/stats`, and Lavalink-compatible WebSocket/API endpoints through the same domain.
|
||||
|
||||
## Local Music
|
||||
|
||||
The template creates a persistent `nodelink-local-music` volume mounted at `/app/local-music`. Set `local_source_enabled` to `true` before deployment if you want NodeLink to resolve `file:///app/local-music/...` tracks.
|
||||
|
||||
## Metrics
|
||||
|
||||
Set `metrics_enabled` to `true` to expose Prometheus metrics at `/v4/metrics`. Keep this disabled unless your deployment is protected and monitored.
|
||||
"""
|
||||
|
||||
[config.env]
|
||||
NODELINK_SERVER_PASSWORD = "${server_password}"
|
||||
NODELINK_LOGGING_LEVEL = "${logging_level}"
|
||||
NODELINK_LOGGING_FILE_ENABLED = "${file_logging_enabled}"
|
||||
NODELINK_SOURCES_LOCAL_ENABLED = "${local_source_enabled}"
|
||||
NODELINK_METRICS_ENABLED = "${metrics_enabled}"
|
||||
Reference in New Issue
Block a user