/screenshare

YALILScreenshare

Primary LanguagePythonMIT LicenseMIT

Screenshare Redux

Another LIL screenshare project. This one is based on Django Channels.

This project serves two functions: first, to allow a team to post pictures to a Slack channel and have them appear on a monitor in a common workspace; second, as a context for experimentation with web technologies.

Deployment

This system should be deployed on a server accessible from the public web, so that Slack can reach it. It subscribes to certain Slack events by exposing the endpoint /slack_event; create an app, enter the URL in Event Subscriptions (something like https://api.slack.com/apps/<app ID>/event-subscriptions?), and subscribe to the bot events message.channels, reaction_added, and reaction_removed. In config/.env, you'll need to configure SLACK_SIGNING_SECRET and SLACK_BOT_ACCESS_TOKEN ( ("User OAuth Token" and "Bot User OAuth Token" in the OAuth & Permissions section of the app's config at Slack); see config/.env.example.

In production, this system is set up on a VM running Debian buster, with the application served by daphne via systemd, and exposed with nginx. Important dependencies include redis-server.

Depending on your setup, you may want to use a firewall and/or nginx to restrict access to the / endpoint.

Prior to a production deployment, you may want to try this out locally, using ngrok to expose the service to Slack.