-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deploy on Heroku #168
Comments
Potentially something that could be contributed? Currently there is |
For this to work, there doesn't seem to be much change needed albeit - assuming it just works on heroku. It looks like package.json needs to be updated with an engine, and a web script added. {
"name": "kassy",
"version": "3.5.1",
"description": "Extensible general purpose chat bot.",
"main": "main.js",
"dependencies": {
"babel-plugin-transform-strict-mode": "^6.3.13",
"babel-polyfill": "^6.3.14",
"babel-preset-es2015": "^6.3.13",
"babel-register": "^6.3.13",
"babylon": "^6.8.0",
"chalk": "^1.1.3",
"cline": "^0.8.2",
"colors": "^1.1.2",
"deasync": "^0.1.4",
"facebook-chat-api": "1.1.0",
"figlet": "^1.1.1",
"fs-extra": "^0.26.3",
"monkey-patches-node-telegram-bot-api": "0.0.1",
"node-telegram-bot-api": "^0.21.1",
"npm": "^3.7.5",
"redwrap": "*",
"request": "^2.72.0",
"rimraf": "^2.4.4",
"sandbox": "^0.8.6",
"sanitize-filename": "^1.5.3",
"skyweb": "0.0.2",
"stripcolorcodes": "^0.1.0",
"tmp": "^0.0.28",
"ws": "^0.8.0"
},
"devDependencies": {
"chai": "^3.5.0",
"grunt": "latest",
"grunt-contrib-watch": "^1.0.0",
"grunt-mocha-cli": "^2.1.0",
"grunt-run": "^0.6.0",
"mocha": "^2.4.5"
},
"engines": {
"node": "4.4.5"
},
"scripts": {
"test": "grunt test",
"start": "node main.js",
"web": "node main.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/mrkno/Kassy.git"
},
"author": "Matthew Knox",
"license": "MIT",
"bugs": {
"url": "https://github.com/mrkno/Kassy/issues"
},
"homepage": "https://github.com/mrkno/Kassy"
} |
Can anyone confirm that Telegram gatewaying is working? |
@lagleki you should ask @phillipadsmith |
@lagleki Yes, it is working as far as I can tell, i.e., the bot I'm running is up on Telegram (more so that Skype!) |
Skype is one of those pet problems.... Should have a SkypeBot integration soon to fix the problem permanently. |
Can you say more about this? Very curious... |
Basically a WIP of https://developer.microsoft.com/en-us/skype/bots |
Oh, those Skype bots! Sweet. :-) |
@phillipadsmith Skype integration doesn't work on Heroku? But why? |
@lagleki Yep, what @mrkno said. :-) |
@matthewhartstonge I tried deploying to heroku using the
PS: Logging into Facebook is pain. They keep blocking Heroku servers for security purposes The application runs but with a few issues.
I realize this one might be fixed by changing the
but I'm unsure since Concierge need to listen to HTTP traffic via the integrations. I've seen a patch for this by adding a stub Any suggestions? |
@ParasDPain @matthewhartstonge even if you do get it to launch on Heroku, the filesystem will be readonly (which means no persistent configuration, no module installation/uninstallation). Potentially you could partially get around the problem by committing a config and the modules (Hubots approach) or using the CLI options to point the module directory to /tmp which is r/w but it still isn't ideal. |
@mrkno Thanks for the heads-up! I might look into alternative solutions |
@ParasDPain if you come up with a good solution to the problem, do tell. It would be nice to be able to deploy to Heroku while still having the benifits of Concierge. |
Hey team, I've been away for the past couple of weeks hence the late |
https://github.com/finnp/gitter-irc-bot - Gitter-IRC bridge works in 2016-10-11 2:23 GMT+03:00 Matt Hartstonge [email protected]:
|
Currently, the Procfile is not being detected by Heroku and I don't know why and I've managed to utilize It's still running as a |
I've pinpointed the issue about why Procfile wasn't detected. This can be resolved by manually scaling
As far as I know this has to be done manually after creating the heroku app and can't be done inside the Procfile which sucks. At the end of the day, scaling down is still an ugly patch because the Heroku router still tries connecting to the app and pollutes the log file with this
A potential solution might be providing Concierge's console output optionally out on a webpage as well i.e. Concierge runs a GET listener on a port, though I don't see any applications of this beside making heroku happy. On a sidenote, it would be nice to be able to run Concierge in the browser alone with something like Browserify but I suspect it'll require extensive refactoring of code and structure I've resolved the port issue; persistence and |
@mrkno I just noticed all modules are installed in /tmp directory by default for r/w access and I didn't had to specify it manually. So it does partially persist right outta the box. |
@ParasDPain it clones them there before moving them to modules. If it is working from there out of the box then its magic and don't question it (but I approve :)). Are modules that require npm to install something working? |
@mrkno You are right. They are indeed being moved to And no, modules fail to install if they
|
I'm wondering if using the dyno's Though there is a size limit of 32kb for the Alternatives:
|
@mrkno I've decided to write a service that makes a A problem now is installing and configuring a remote integration for testing and just normal use case. AFAIK Any suggestions? |
Passing messages to Note that even if Heroku now has a r/w filesystem, any writes are temporary and will be deleted whenever Heroku moves your deploy to a different server (happens frequently). Additionally, your application may be restarted, unloading things like configuration which may be subsequently lost.... (the problems go on, if only they provided us with either persistent storage or a way to mount an in memory FS). |
Yikes! Looks like the mountain of problems in Thanks for the tips! I'd prefer using the Concierge's internal API as well 👍 |
Basically, Heroku is designed for static apps, or ones that depend purely on a database and/or S3 for storage. Our use case is "do anything you want" which only partially fits within their vision. I don't know if Heroku + Docker does the same as normal AWS (custom container with everything we want) but it may be one workaround for this problem. There was some work done with beta.0 to make it so that configuration can be saved to a DB getting around that persistence problem, but we may end-up having to build an in-memory filesystem on-top of a database if you want the full features of KPM :( If you are willing to take the hubot route (full AOT config and setup, no KPM like features) then Concierge already works out of the box with Heroku with no problems. |
I feel it'd be much easier and painless to instead use AWS or DigitalOcean 🤔 Building an in-memory FS is only advantageous for restricted PaaS like UPDATE: Giving up on persisting using a git-commit service (for the time being) |
Progress for Heroku with the PostgreSQL DB module https://github.com/concierge/postgresql |
I wish there was a fast method of deploying Kassy on Heroku.
The text was updated successfully, but these errors were encountered: