This project is aiming to make exisiting Slapp apps work without any modification of the source code of theirs by mocking beepboop hosting features since Beepboophq is shutting down - https://blog.beepboophq.com/the-final-chapter-of-beep-boop-efab4f351a51
-
- Physical hosting - including having an public endpoint and scaling
-
- Handling auth with slack - https://blog.beepboophq.com/creating-a-slack-app-with-slapp-firebase-83e4ad139006
-
- Saving conversations (temporarily) - https://blog.beepboophq.com/creating-a-slack-app-with-slapp-firebase-83e4ad139006, https://beepboophq.com/docs/article/api-persist
-
- Proxying slack's requests
-
- Maybe more (tell me what you know that I don't know!)
everything in 1. except 1)
-
- run your Slapp app in a place where the shelter can reach to
-
- run the shelter to proxy your Slapp app (check 4. and 5. for the details)
You can either build from the Dockerfile or use pre built images
Hopefully you can figure out by looking at the Dockerfile!
Take a look at config.js, you need to provide environments
ex)
# set slack related vars
export SLACK_CLIENT_ID=1010101010.10101010101
export SLACK_CLIENT_SECRET=0928309clientsecret09182309
export SLACK_OAUTH_ACCESS_TOKEN=xoxp-ladkjflaksjdflksjf-your-access-token-asdlkfjlksadjf
export SLACK_BOT_USER_OAUTH_ACCESS_TOKEN=xoxb-alskdfjlkj-your-bot-access-token
export SLACK_BOT_USERNAME=your-bot-name
# your slapp app
export SLAPP_APP_PORT=8080 # you don't actually need to export this
export SLAPP_APP_HOST=http://your.slapp-app.com:$SLAPP_APP_PORT
https://blog.beepboophq.com/beep-boop-custom-bot-config-937eddfbd4e1
You probably used beepboop's custom bot config (check the link above) Beepboop make sure those vars delivered when they run your Slapp apps. However, there is no beepboop to deliver them when you work with beepboop shelter. So you need to make sure that you deliver those values to your Slapp app when you run it
- This is just an humble open source project that was born to solve our own needs to replace beepboop since it's shutting down.
- So there are no guarantees that it provides that everything beepboop did although more could be added as it grows
You may be able to host with these solutions below and probably whatever that you can manage to run on
- docker
- k8s
- now
I'm planning to test those solutions and will share how to do it in the future
- Handling auth with slack by ENV vars
- Event Subscriptions
- Interact Components
- Persist API (in testing)
- Slash Commands
- Incoming Webhooks
- Could be more
I assume you use docker and docker-compose for development
You may need to create .env .env-for-test .env-ngrok files and provide appropriate ENV vars especially for the .env file
$ make run
will run the shelter via docker-compose
You probably needs public domain for the shelter to test with slack
$ make ngrok
$ make down
I'm no expert to neither to slack bots nor to beepboophq. I'm sure you can do better than me for some parts. Please contribute anything!
You can create an issue or PR
Although everything is written in English, currently no one who's mainly contributing this project is a native English speaker. So I presume you will find lots of English mistakes especially in the documents like this one. Please Send a PR if you find any wrong English!
beepboop-shelter is MIT licensed.