/songaday

Primary LanguageJavaApache License 2.0Apache-2.0

Song A Day

Telegram bot that sends you a daily song to make you day happy!

Run

Via gradle

export $(grep -v '^#' .env | xargs) && env
./gradlew run

Send a song

curl -i -X POST -d '{"url":"https://open.spotify.com/intl-es/track/0CtkjgZpkgnW7U6WmHsakD?si=b7fb070b9b2441c3"}' 'https://animated-meme-7wwp49w454frpv7-8080.app.github.dev/v1/send/song' -H 'Content-Type: application/json' -H 'authority: animated-meme-7wwp49w454frpv7-8080.app.github.dev'

In localhost

curl -i -X POST -d '{"url":"https://open.spotify.com/intl-es/track/11y8GSP2ASv8S9n0FiiDva?si=mYEVVA07QQGQPWZO1tDM1A"}' 'http://localhost:8080/v1/send/song' -H 'Content-Type: application/json'

Build docker image & run

Build docker image

CONTAINER=$(docker ps -a | grep -i songaday | awk '{print $1}')
docker rm $CONTAINER
docker image rm songaday:latest
docker build -t songaday:latest .

Build docker image for ARMV7L

CONTAINER=$(docker ps -a | grep -i songaday | awk '{print $1}')
docker rm $CONTAINER
docker image rm songaday
#docker buildx build -t songaday:latest --platform linux/amd64,linux/armv7l .
docker buildx build -t songaday:latest --platform linux/amd64,linux/armv7l .

In case you get an error like this

ERROR: Multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")

Please, setup a builder for ARMv7l

docker buildx create --use --platform=inux/amd64,linux/amd64/v2,linux/amd64/v3,linux/386,linux/armv7l --name multi-platform-builder
docker buildx inspect --bootstrap

Remove existing container

CONTAINER=$(docker ps -a | grep -i songaday | awk '{print $1}')
docker rm $CONTAINER

Run docker container with environment variables

docker run --env TELEGRAM_TOKEN=foo --env TELEGRAM_BOTUSERNAME=@bar --expose 8080 --name mysongaday -it marcosflobo/songaday

Run all local docker container, and database un remote, with environment variables

docker stop mysongaday && docker rm mysongaday
docker network create mynetwork
docker run --env-file .env --expose 8080 --network mynetwork --name mysongaday -it songaday

Publish docker image

TAG=3.0.0
docker login
docker image tag songaday marcosflobo/songaday:$TAG
docker image tag songaday marcosflobo/songaday:latest
docker push marcosflobo/songaday:$TAG
docker push marcosflobo/songaday:latest

Micronaut