All Projects → ifvictr → prox

ifvictr / prox

Licence: MIT License
🙈 Share anonymous confessions in Slack

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to prox

aws-iam-slack-notifer
Notifies slack when an IAM policy is created, changed or assigned to a role
Stars: ✭ 35 (+25%)
Mutual labels:  slack
turnio
🤖 Bot to manage a queue of slack users in a channel
Stars: ✭ 11 (-60.71%)
Mutual labels:  slack
slack-howdoi
☁️ Slack integration with the howdoi library
Stars: ✭ 43 (+53.57%)
Mutual labels:  slack
Perfect-Authentication
OAuth2 Implementations with Facebook, Google, LinkedIn, Slack, SalesForce and GitHub providers.
Stars: ✭ 14 (-50%)
Mutual labels:  slack
iou-slack-bot
💸 IOU Slack Bot - Keep track of your debts with your peers.
Stars: ✭ 13 (-53.57%)
Mutual labels:  slack
slack-emoji-for-techies
100s of Slack emoji, many tech-related
Stars: ✭ 123 (+339.29%)
Mutual labels:  slack
SlackWebhooksGithubCrawler
Search for Slack Webhooks token publicly exposed on Github
Stars: ✭ 21 (-25%)
Mutual labels:  slack
electronim
Electron based multi IM (Instant Messaging) client
Stars: ✭ 50 (+78.57%)
Mutual labels:  slack
privacy-preserving-primitives
primitives and protocols for implementing privacy preserving networks
Stars: ✭ 14 (-50%)
Mutual labels:  anonymity
terraform-aws-ecs-cloudwatch-sns-alarms
Terraform module to create CloudWatch Alarms on ECS Service level metrics.
Stars: ✭ 23 (-17.86%)
Mutual labels:  slack
slag
slack in the terminal using javascript
Stars: ✭ 16 (-42.86%)
Mutual labels:  slack
jarjar
Python utility for sending slack notifications to your teams
Stars: ✭ 19 (-32.14%)
Mutual labels:  slack
slack logger backend
An Elixir logger backend for posting errors to Slack.
Stars: ✭ 31 (+10.71%)
Mutual labels:  slack
SlackStream
An all-at-a-glance Slack client that aggregates all channels and workspaces at one place
Stars: ✭ 40 (+42.86%)
Mutual labels:  slack
libanonvpn
Library for TUN and TAP devices over I2P in Go Applications
Stars: ✭ 35 (+25%)
Mutual labels:  anonymity
slack-dark-theme
Apply dark theme to your slack with zero configuration
Stars: ✭ 15 (-46.43%)
Mutual labels:  slack
slack-rota
日々のローテーションをお知らせする Slack アプリ
Stars: ✭ 14 (-50%)
Mutual labels:  slack
slack-mock
A Slack API mocker for Slack bot integration tests.
Stars: ✭ 61 (+117.86%)
Mutual labels:  slack
orjail
a more secure way to force programs to exclusively use tor network
Stars: ✭ 136 (+385.71%)
Mutual labels:  anonymity
slackify-markdown
Convert markdown into Slack-specific markdown
Stars: ✭ 80 (+185.71%)
Mutual labels:  slack

Prox

Prox

Share anonymous confessions in Slack.

Prox DM example Prox submission review channel example

Deploy

Deploy

Setup

Prox comprises of three components:

  1. The web server for receiving and responding to event payloads from Slack
  2. A MongoDB database for saving the current post number, submitted posts, user pseudonyms, etc.
  3. The Slack app itself

Environment variables

Here are all the variables you need to set up on the server, with hints.

# Port to run the server on
PORT=3000

DATABASE_URL=mongodb://…

# App config. Obtained from the "Basic Information" page of your app.
SLACK_BOT_TOKEN=xoxb-…
SLACK_SIGNING_SECRET=…

# Slack channels where the app should post to. The review and stream channels are highly recommended to be private channels.
SLACK_POST_CHANNEL_ID=CXXXXXXXX
SLACK_REVIEW_CHANNEL_ID=GXXXXXXXX
SLACK_STREAM_CHANNEL_ID=GXXXXXXXX

Starting the server

This section is only relevent to you if you’ve decided to run Prox on a platform other than Heroku.

git clone https://github.com/ifvictr/prox
cd prox

# Install dependencies
yarn

# Start Prox in production! This will build the source files and then run them.
yarn start
# Or, if you need to run it in development mode instead.
yarn dev

Creating the Slack app

For Prox to work, you’ll need to register a Slack app with the appropriate OAuth permissions, event subscriptions, and commands.

Interactivity & Shortcuts

For the Request URL under the Interactivity section, enter http://<YOUR DOMAIN HERE>/slack/events. This will be used for the app’s buttons.

To create a shortcut for sending anonymous replies, click Create New Shortcut under the Shortcuts section. The shortcut should appear On messages. Fill out the Name (e.g. Send anonymous reply) and Description (e.g. Reply to a post anonymously) fields. Enter reply_send in the Callback ID field.

Slash Commands

The following commands are needed. Enter the same request URL you used in the previous section.

  • /prox: Learn how to use Prox

OAuth & Permissions

Install the Slack app to your Slack workspace first.

The following bot token scopes are required:

  • channels:history: Used for the 'Send anonymous reply' shortcut.
  • channels:read: Used for logging movement events.
  • chat:write: Used for sending messages.
  • chat:write.customize: Used for sending anonymous replies with pseudonyms and icons that distinguish different repliers.
  • commands: Used for /prox.
  • groups:read: Used for logging movement events.
  • im:history: Used for receiving submissions via DMs from users.
  • im:write: Used for starting DM channels with users, which can then be used to send anonymous reaction prompts when needed.
  • reactions:write: Used for adding anonymous reactions.

Event Subscriptions

Subscribe to the following bot events:

  • app_home_opened
  • member_joined_channel
  • member_left_channel
  • message.im

The request URL is also the same here.

After you’ve followed all the above steps, you should see something like this in the console:

Starting Prox…
Listening on port 3000

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].