{"id":20886593,"url":"https://github.com/dangarfield/slack-back-static","last_synced_at":"2025-05-12T19:32:32.507Z","repository":{"id":49806551,"uuid":"518126770","full_name":"dangarfield/slack-back-static","owner":"dangarfield","description":"Download and view your slack history, channels and messages","archived":false,"fork":false,"pushed_at":"2022-11-13T09:06:02.000Z","size":3623,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2023-08-06T13:11:03.070Z","etag":null,"topics":["html","mrkdwn","slack","static"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dangarfield.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-26T15:56:11.000Z","updated_at":"2022-12-01T23:54:35.000Z","dependencies_parsed_at":"2023-01-23T00:00:37.259Z","dependency_job_id":null,"html_url":"https://github.com/dangarfield/slack-back-static","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangarfield%2Fslack-back-static","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangarfield%2Fslack-back-static/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangarfield%2Fslack-back-static/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangarfield%2Fslack-back-static/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dangarfield","download_url":"https://codeload.github.com/dangarfield/slack-back-static/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225148748,"owners_count":17428430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["html","mrkdwn","slack","static"],"created_at":"2024-11-18T08:17:30.433Z","updated_at":"2024-11-18T08:17:31.059Z","avatar_url":"https://github.com/dangarfield.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slack Back Static\n\u003e Download and view your slack history, channels and messages\n\n![alt text](_docs/readme-main-image.png \"Slack Back Static\")\n\n## Overview\n\nSlack premium is pretty expensive for something simple and opensource.\nUse this to download and navigate your slack history, it will keep a record of the messages and files previously downloaded across channels and private messages.\n\n\n## Usage\n\n- Clone the repo\n- Install nodejs\n- Install dependences `npm i`\n- Optional: Get a trial of slack premium / pay for one month to get access for entire history\n- Create a slack app and deploy to your workspace. In the `OAuth \u0026 Permissions` settings, ensure you have the following `User Token Scopes`: `(see config image 1 below)`\n    - channels:history\n    - channels:read\n    - files:read\n    - groups:read\n    - groups:history\n    - im:history\n    - im:read\n    - mpim:history\n    - mpim:read\n    - remote_files:read\n    - users:read\n- Copy the `.env.example` file to `.env`\n- In the slack `OAuth \u0026 Permissions` settings, get the `User OAuth Token` from the slack app and add to your `.env` file as the `SLACK_BOT_TOKEN` property `(see config image 2 below)`\n- Add the slack space id (also known as, team ID) from your slack workspace and add to your `.env` file as the `SLACK_SPACE` property - Get this by opening slack in browser and looking at the URL `(see config image 3 below)`\n- Optional: You can download only specific channels (and files in those channels) by including a `SLACK_CHANNELS` variable in your `.env` file. This can be a single channel id, or mutiple channel IDs separated with a comma (no space). Omitting this variable will download all channels and files. Get this by opening slack in browser and looking at the URL `(see config image 3 below)`\n- Optional: If you don't want to download files (can take a while - Although, if they have been downloaded once, they won't be downloaded each time). You can surpress file downloading completely by adding `DONT_DOWNLOAD_FILES=true` to your `.env`\n- Optional: Add a `STATIC_PASSWORD` property to the `.env` file if you wish to use `netlify dev` locally\n- Run `npm start` or `node app.js` to begin downloading your slack messages and files\n- All files added to `_static/files/*` folder. All data added to `_static/data/data.json`\n- To run the slack viewer on your local machine (it is static, no server-side code or logic), run a static web server in in the `_static` directory. Eg, `npm i -g serve` and then `serve ./_static` (`npm run static` in this package.json)\n- Open in your webserver - All history is stored in the hash as an SPA, all messages are indexed and searchable, as well as all files viewable and downloadable\n- Optional: You can deploy to any public static server as you see fit. In this example, you can deploy to netlify by installing netlify and running `npm run deploy`. In the free version of netlify if you want a very (frail) basic security, set an environment variable for `STATIC_PASSWORD` in the console. A better alternative would be to pay for a static site with password protection. Netlify will currently allow lots of files. Any additional deploys will calculate the hashes of the files and will reduce future deployment times dramatically to a few seconds.\n\n\n### Config Image 1\n\n![alt text](_docs/config-image-1.png \"Config Image 1\")\n\n### Config Image 2\n\n![alt text](_docs/config-image-2.png \"Config Image 2\")\n\n### Config Image 3\n\n![alt text](_docs/config-image-3.png \"Config Image 3\")","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangarfield%2Fslack-back-static","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdangarfield%2Fslack-back-static","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangarfield%2Fslack-back-static/lists"}