Make sure you have docker & docker compose tools installed. Then, copy contents of .env.example
to .env
and populate it with values. Finally, in the root of the directory run:
docker compose up
App consists of 4 microservices:
- Crawler - is responsible for obtaining articles and publishing them to the RabbitMQ. Should be run as a cron/scheduled job (to be done).
- Core - core service, responsible for listening to RabbitMQ queue and calling other services.
- Translator - service, used for translation. Uses lingva under the hood.
- Sender - service, used to distribute translated messages to Telegram channel.
Make sure you have pre-commit installed and added to your $PATH
. Then run following command from the root of the repo:
pre-commit install
Now, you must install golangci-lint and include it to your path as well.
Congrats, now pre-commit will run before your commits. Also, in case you're using VSCode linting on save should be integrated into your editor.
I like Go and I like reading tech articles. I appreciate work from admins of go-weekly website. But, I don't like to be notified about fresh weekly digest by mail. I'd like receive weekly digest directly in the telegram, because ... Because, why not? Also, I'd like to contribute to the Ukrainian golang community and make summaries translated to ukrainian language. 🇺🇦
- Run Crawler as a Cron job in Kubernetes
- Add grpc logger & other useful interceptors
- Add Helm chart?
- Deploy it somewhere?
- Add graceful shutdowns