Code Monkey home page Code Monkey logo

slack-vuesualizer's Introduction

Slack Vuesualizer

Slack

A web app to view, search and share a Slack team's exported files.

Screenshot

Use the hosted version at https://slack-vuesualizer.vercel.app/ for free or spin up your own website using the Docker image.

WIP

This is a work in progress.

Features

  • full-text search for up to tens of thousands of messages per channel
  • view all messages per channel with proper formatting, files, etc.
  • view and search through all users
  • pleasant UI

Technologies

Docker

There are Docker images for amd64 and arm64 available at hub.docker.io/chris5896/slack-vuesualizer as well as the GitHub Container Registry https://ghcr.io/4350pchris/slack-vuesualizer

Every Branch gets its own tag and is released.

All the files to build a local image can be found in this repository as well.

CLI

docker run --rm -it -e NUXT_MONGODB_URI=mongodb://<your connection string> -p 3000:3000 chris5896/slack-vuesualizer:latest

Compose

There is a docker-compose file in this project that spins up a local MongoDB instance. You can easily add this image to it like this:

services:
  app:
    image: chris5896/slack-vuesualizer
    restart: unless-stopped
    ports:
      - '3000:3000'
    environment:
      NUXT_MONGODB_URI: 'mongodb://root:example@mongo:27017'

Locally

Look at the nuxt 3 documentation to learn more.

Make sure to install the dependencies:

npm install

Create an .env file to specify your MongoDB instance.

NUXT_MONGODB_URI=mongodb://root:example@localhost:27017

Development Server

Start the development server on http://localhost:3000

npm run dev

Production

Build the application for production:

npm run build

Locally preview production build:

npm run preview

Checkout the deployment documentation for more information.

slack-vuesualizer's People

Contributors

4350pchris avatar dependabot[bot] avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

slack-vuesualizer's Issues

Group messages and Private Channels

Hi there,

This project looks great! I was reviewing it as a tool that I could use to audit activity for users where that is warranted. In looking through the results, I had a few findings:

  • Group messages are not displayed
  • Private channels are not displayed
  • Some channels did not seem to parse correctly(?). The channel existed in the dashboard, and files that were shared were included in the files section, however no content was displayed in the channel, files or otherwise.

I was curious if these are features that you are working on, or a bug that you are aware of.

Thanks!
Jonathan

Data privacy of Slack archive

Hello, thanks for your great tool! I just have one concern: could anyone access my slack files by "guessing" the token? Wouldn't it more safe to also include a password?

Failed to connect to mongo MongoParseError: Invalid scheme, expected connection string to start with "mongodb://" or "mongodb+srv://"

Hey. I'm trying to run the app on a headless CentOS 9 VM.

It looks like its running and I upload the file, choose the channels, click next and the first upload is "workspace" which fails.

Looking at the npm output I see the below:

[root@scv1 slack-vuesualizer-1.0.4]# npm run preview

[email protected] preview
nuxt preview

Nuxi 3.2.3 10:09:36
Node.js version: 16.18.1 10:09:36
Preset: node-server 10:09:36
Working dir: .output 10:09:36
Loading .env. This will not be loaded when running the server in production. 10:09:36
Starting preview command: node ./server/index.mjs 10:09:36
10:09:36
Listening http://[::]:3000
Failed to connect to mongo MongoParseError: Invalid scheme, expected connection string to start with "mongodb://" or "mongodb+srv://"
at new ConnectionString (/home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/mongodb-connection-string-url/lib/index.js:86:19)
at parseOptions (/home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/mongodb/lib/connection_string.js:204:17)
at new MongoClient (/home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/mongodb/lib/mongo_client.js:46:63)
at Function.connect (/home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/mongodb/lib/mongo_client.js:231:24)
at fullClient (file:///home/user/slack-vuesualizer-1.0.4/.output/server/chunks/mongo.mjs:9:39)
at mongo (file:///home/user/slack-vuesualizer-1.0.4/.output/server/chunks/mongo.mjs:18:10)
at file:///home/user/slack-vuesualizer-1.0.4/.output/server/chunks/index.post.mjs:31:20
at file:///home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/h3/dist/index.mjs:1140:47
at async Object.handler (file:///home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/h3/dist/index.mjs:1196:19)
at async Server.toNodeHandle (file:///home/user/slack-vuesualizer-1.0.4/.output/server/node_modules/h3/dist/index.mjs:1271:7)
[nuxt] [request error] [unhandled] [500] Invalid scheme, expected connection string to start with "mongodb://" or "mongodb+srv://"
at new ConnectionString (./server/node_modules/mongodb-connection-string-url/lib/index.js:86:19)
at parseOptions (./server/node_modules/mongodb/lib/connection_string.js:204:17)
at new MongoClient (./server/node_modules/mongodb/lib/mongo_client.js:46:63)
at Function.connect (./server/node_modules/mongodb/lib/mongo_client.js:231:24)
at fullClient (./server/chunks/mongo.mjs:9:39)
at mongo (./server/chunks/mongo.mjs:18:10)
at ./server/chunks/index.post.mjs:31:20
at ./server/node_modules/h3/dist/index.mjs:1140:47
at async Object.handler (./server/node_modules/h3/dist/index.mjs:1196:19)
at async Server.toNodeHandle (./server/node_modules/h3/dist/index.mjs:1271:7)

Which is strange because the .env file should be correct:

[root@scv1 slack-vuesualizer-1.0.4]# cat database.env NUXT_MONGODB_URI=mongodb://localhost:27017 NUXT_CANONICAL_HOST=http://localhost:3000

I'm not sure if the platform can run if mongodb has no authorisation configured.

Thanks.

Error when trying to load channel with 30k messages

Making a get request to the /api/channels/:name/messages route is failing with a 500 status code.
The message I get back is "Executor error during find command :: caused by :: Sort exceeded memory limit of 33554432 bytes, but did not opt in to external sorting."
I tried adding .allowDiskUse(true) to the function in server/api/channels/[name]/messages.get.ts but that didn't seem to help.

Error in terminal

[9:27:17 PM] [nuxt] [request error] [unhandled] [500] Executor error during find command :: caused by :: Sort exceeded memory limit of 33554432 bytes, but did not opt in to external sorting.
at Connection.onMessage (./node_modules/mongodb/lib/cmap/connection.js:202:26)
at MessageStream. (./node_modules/mongodb/lib/cmap/connection.js:61:60)
at MessageStream.emit (node:events:514:28)
at processIncomingData (./node_modules/mongodb/lib/cmap/message_stream.js:124:16)
at MessageStream._write (./node_modules/mongodb/lib/cmap/message_stream.js:33:9)
at writeOrBuffer (node:internal/streams/writable:399:12)
at _write (node:internal/streams/writable:340:10)
at Writable.write (node:internal/streams/writable:344:10)
at TLSSocket.ondata (node:internal/streams/readable:785:22)
at TLSSocket.emit (node:events:514:28)
[9:27:18 PM] [nuxt] [request error] [unhandled] [500] Executor error during find command :: caused by :: Sort exceeded memory limit of 33554432 bytes, but did not opt in to external sorting.
at Connection.onMessage (./node_modules/mongodb/lib/cmap/connection.js:202:26)
at MessageStream. (./node_modules/mongodb/lib/cmap/connection.js:61:60)
at MessageStream.emit (node:events:514:28)
at processIncomingData (./node_modules/mongodb/lib/cmap/message_stream.js:124:16)
at MessageStream._write (./node_modules/mongodb/lib/cmap/message_stream.js:33:9)
at writeOrBuffer (node:internal/streams/writable:399:12)
at _write (node:internal/streams/writable:340:10)
at Writable.write (node:internal/streams/writable:344:10)
at TLSSocket.ondata (node:internal/streams/readable:785:22)
at TLSSocket.emit (node:events:514:28)

slack-vuesualizer website error messages

Hey there--
Thanks for your app.

I'm trying to parse a private channel back up from slackdump, when I use your website I get to choose the channels (all or the private channel or the private channel attachments). All I need are the threads, but no matter what I choose I get the error "! workspace" and the process stops. I'm sure you don't have time to troubleshoot my particular issue, but it would be nice to have a little more feedback so I can try to figure this out on my end.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
  • mongo 7.0
dockerfile
Dockerfile
  • node 20-alpine
github-actions
.github/workflows/code-ql.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
  • github/codeql-action v3
  • github/codeql-action v3
  • github/codeql-action v3
.github/workflows/docker-image.yml
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • docker/metadata-action v5
  • docker/login-action v3
  • docker/build-push-action v5
.github/workflows/vercel-deploy-preview.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
.github/workflows/vercel-deploy-prod.yml
  • actions/checkout v4@0ad4b8fadaa221de15dcec353f45205ec38ea70b
npm
package.json
  • @headlessui/tailwindcss 0.2.0
  • @headlessui/vue ^1.7.19
  • @nuxtjs/color-mode 3.4.1
  • @nuxtjs/robots ^3.0.0
  • @nuxtjs/tailwindcss 6.12.0
  • @tailwindcss/typography 0.5.12
  • @vercel/analytics ^1.2.2
  • @vercel/speed-insights ^1.0.10
  • @vuepic/vue-datepicker ^8.0.0
  • @vueuse/core 10.9.0
  • @vueuse/nuxt 10.9.0
  • @zip.js/zip.js 2.7.44
  • async-sema 3.1.1
  • daisyui 4.11.1
  • emoji-js 3.8.0
  • filesize 10.1.2
  • gsap ^3.12.5
  • mongodb 6.6.2
  • vue-virtual-scroller 2.0.0-beta.8
  • @antfu/eslint-config 2.18.1
  • @iconify-json/ion 1.1.17
  • @iconify-json/line-md 1.1.37
  • @iconify-json/logos 1.1.42
  • @iconify-json/mdi 1.1.66
  • @iconify-json/twemoji 1.1.15
  • @nuxt/devtools ^1.0.0
  • @nuxtjs/i18n 8.3.1
  • @types/adm-zip 0.5.5
  • @types/emoji-js 3.5.2
  • @types/request 2.48.12
  • autoprefixer 10.4.19
  • eslint 9.3.0
  • nuxt ^3.11.1
  • nuxt-headlessui ^1.1.4
  • ufo ^1.3.1
  • unplugin-icons 0.18.5
  • node 20.13.1

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.