Discord RSS 봇을 koyeb에 포팅하는 방법

7193 단어 koyebdiscord
내 블로그https://friendlyuser.github.io/astro-tech-blog/posts/heroku_shutdown_migrate_to_koyeb/에서 이 게시물을 읽으십시오.

불행히도 기업의 탐욕으로 인해 heroku가 문을 닫고 커뮤니티는 이미 이러한 변화에 반대했습니다. 내 개인 프로젝트 중 하나에 대해 koyeb을 선택한 다른 많은 대안이 나열되어 있습니다.

다양한 라이트노벨 업데이트와 만화 업데이트를 추적하기 위해 디스코드 RSS 봇을 사용합니다. 이 봇은 javascript로 작성되었으며 monitorss 라이브러리를 사용합니다. 봇은 heroku에서 호스팅되며 무료 dyno를 사용합니다. 봇은 mongodb 프리 티어 외부에 있는 mongodb 데이터베이스에도 연결되어 있습니다.

한 번에 두 개의 인스턴스를 실행하면 몇 가지 문제가 발생하지만 전반적으로 약간의 적응을 통해 물건을 heroku에서 koyeb로 옮길 수 있습니다. 많은 koyeb 빌드 단계는 heroku와 유사하지만 몇 가지 차이점이 있습니다. 서버 측 애플리케이션의 경우 koyeb이 heroku의 훌륭한 대안이라고 생각합니다. 봇의 경우 봇과 함께 서버를 해킹해야 할 수도 있습니다.

const fs = require('fs')
const path = require('path')
const MonitoRSS = require('monitorss')
const schedulesPath = path.join(__dirname, 'settings', 'schedules.json')
const configPath = path.join(__dirname, 'settings', 'config.bot.json')
const config = fs.existsSync(configPath) ? JSON.parse(fs.readFileSync(configPath)) : {}
const schedules = fs.existsSync(schedulesPath) ? JSON.parse(fs.readFileSync(schedulesPath)) : {}

const clientManager = new MonitoRSS.ClientManager({
  setPresence: true,
  schedules,
  config
})

const http = require('http');

// Create an instance of the http server to handle HTTP requests

// Start the server on port 3000
// delay start by 5 seconds
setTimeout(() => {
  let app = http.createServer((req, res) => {
    // Set a response type of plain text for the response
    res.writeHead(200, {'Content-Type': 'text/plain'});

    // Send back a response and end the connection
    res.end('Hello World!\n');
});
  app.listen(8080, '0.0.0.0');
}, 5000)
clientManager.start()


이전에 heroku는 서버에서 봇을 실행할 수 있는 매우 좋은 방법이 있었습니다. 저는 표준 http 서버를 사용하기로 선택했으며 이는 monitorrss가 초기화된 후 5초 후에 시작됩니다.

또는 기본 terraform 설정을 만들 수 있습니다. koyeb은 최근 terraform에 추가되었습니다.

```테라포밍 {
required_providers {
코예브 = {
출처 = "koyeb/koyeb"
}
}
}
공급자 "koyeb"{
#
# KOYEB_TOKEN env 변수를 사용하여 Koyeb API 토큰을 설정합니다.
#
}

리소스 "koyeb_app""my-app"{
이름 = "my_tf_app"
}




Overall porting content from heroku can be done with koyeb or other listed alternatives.

## References
* https://github.com/synzen/MonitoRSS
* https://blog.heroku.com/next-chapter

좋은 웹페이지 즐겨찾기