Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
56 changes: 19 additions & 37 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
# ------------------------------------------------------------------------------------------------------------ #

# READ THIS BEFORE INSTALL!

# This is a docker-compose file for running Vocard with Lavalink and MongoDB.
# In order to run this, you need to have Docker and Docker Compose installed.
# You can install Docker from https://docs.docker.com/get-docker/
# and Docker Compose from https://docs.docker.com/compose/install/

# Step 1: Start the installation by creating the future config directory for Vocard.
# example - `root@docker:~# mkdir -p /opt/vocard/config`

# Use `cd` to navigate to the config directory.
# example - `root@docker:~# cd /opt/vocard/config`

# Step 3: Choose installation method: Build the image from the Dockerfile or pull it from GitHub(recommended).
# If you chose to pull from Docker Hub, comment the "build" lines and uncomment the "image" line.
# If you chose to build the image from the Dockerfile, do the following:
# uncomment this
# build:
# dockerfile: ./Dockerfile
# and comment this
# image: ghcr.io/chocomeow/vocard:latest
# example - `root@docker:/opt/vocard/config# wget https://github.com/ChocoMeow/Vocard/archive/refs/heads/main.zip`

# Step 4: Configure application.yml and settings.json in the config directory.
# In order to avoid silly syntax errors it is recommended to use external code editor such as VS Code or Notepad++.
# Then you can upload files to host using tools such as WinSCP or
# using `nano` to create and edit the files directly using hosts terminal.
# NOTE that some terminals DO NOT let you paste, so you can either use WinSCP or SSH app like Putty.

# example - `root@docker:/opt/vocard/config# nano application.yml`
# example - `root@docker:/opt/vocard/config# nano settings.json`
# To exit nano, press `Ctrl + S`, then `Ctrl + X` to save changes.

# Step 5: If the values are set correctly, you can start the installation by running the following command
# example - `root@docker:/opt/vocard/config# docker-compose up -d` (could be `docker compose` on some systems)
# For installation instructions please visit - https://docs.vocard.xyz/latest/bot/setup/docker-linux/
# or for Windows Docker - https://docs.vocard.xyz/latest/bot/setup/docker-windows/

# ------------------------------------------ THANK YOU FOR READING! ------------------------------------------ #
name: vocard
Expand Down Expand Up @@ -64,6 +31,22 @@ services:
timeout: 5s
retries: 5

spotify-tokener:
image: ghcr.io/topi314/spotify-tokener:master
container_name: spotify-tokener
restart: unless-stopped
environment:
- SPOTIFY_TOKENER_ADDR=0.0.0.0:49152
networks:
- vocard
ports:
- 49152:49152
healthcheck:
test: nc -z -v localhost 49152
interval: 10s
timeout: 5s
retries: 5

vocard-db:
container_name: vocard-db
image: mongo:8
Expand All @@ -85,7 +68,6 @@ services:
timeout: 5s
retries: 5
start_period: 10s


# vocard-dashboard:
# container_name: vocard-dashboard
Expand Down Expand Up @@ -117,7 +99,7 @@ services:
lavalink:
condition: service_healthy
# vocard-dashboard:
# condition: service_started
# condition: service_healthy
vocard-db:
condition: service_healthy

Expand Down
6 changes: 4 additions & 2 deletions lavalink/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ plugins:
albumLoadLimit: 6 # The number of pages at 50 tracks each
resolveArtistsInSearch: true # Whether to resolve artists in track search results (can be slow)
localFiles: false # Enable local files support with Spotify playlists. Please note `uri` & `isrc` will be `null` & `identifier` will be `"local"`
preferAnonymousToken: true # Whether to use the anonymous token for resolving tracks, artists and albums. Spotify generated playlists are always resolved with the anonymous tokens since they do not work otherwise. This requires the customTokenEndpoint to be set.
customTokenEndpoint: "http://spotify-tokener:49152/api/token" # Optional custom endpoint for getting the anonymous token. If not set, spotify's default endpoint will be used which might not work. The response must match spotify's anonymous token response format.
applemusic:
countryCode: "US" # the country code you want to use for filtering the artists top tracks and language. See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
mediaAPIToken: "your apple music api token" # apple music api token
Expand Down Expand Up @@ -100,9 +102,9 @@ plugins:
recommendationsLoadLimit: 10 # Number of tracks
lavalink:
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:1.13.3" # Please check the latest version at https://github.com/lavalink-devs/youtube-source/releases
- dependency: "dev.lavalink.youtube:youtube-plugin:1.13.4" # Please check the latest version at https://github.com/lavalink-devs/youtube-source/releases
snapshot: false
- dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.7.0" # Please check the latest version at https://github.com/topi314/LavaSrc/releases
- dependency: "com.github.topi314.lavasrc:lavasrc-plugin:4.7.3" # Please check the latest version at https://github.com/topi314/LavaSrc/releases
snapshot: false
# - dependency: "com.github.example:example-plugin:1.0.0" # required, the coordinates of your plugin
# repository: "https://maven.example.com/releases" # optional, defaults to the Lavalink releases repository by default
Expand Down