Skip to content

PlikShare - Self-hosted file sharing platform with unlimited users, flexible storage options (local disk or S3), and secure external collaboration features. Own your data, control your infrastructure.

License

Notifications You must be signed in to change notification settings

damian-krychowski/plikshare

Repository files navigation

plikshare_dashboard

PlikShare

PlikShare is a self-hosted file sharing application that allows you to securely share files with others.

Features

  • Self-hosted file sharing solution
  • Secure file upload and download
  • User management
  • Access control
  • Files Encryption
  • Easy deployment
  • Box Widgets which can be embedded on the other websites

Hey Claude, how to pronounce it?

claude_pronunciation

I double-checked - he made no mistake this time. It's "pleek-share" (plēk-shâr)!

Where "Plik" in ancient Polish means "file".

(Yeap, it's hard to find good domain name these times 🥲)

How to install

All the necessery instructions can be found here: https://plikshare.com/download

Docker image is available here: https://hub.docker.com/r/damiankrychowski/plikshare

How to setup

To start using PlikShare you need to do two things:

  • Configure an email client (so that PlikShare can send notifications, confirm user emails etc.)
  • Configure a storage

plikshare_initial_setup.mp4

How to upload files

The fastes way is to create zip archive out of the files you want to upload and then use PlikShare bulk upload feature!

plikshare_bulk_upload.mp4

How to download files

My favorite way to download files from PlikShare is to use explorer tree view - there you pick files and folders you want to have in your final archive and download them at once.

plikshare_bulk_download.mp4

How to share files

PlikShare allows you to create "boxes" - a layer that connects your folders to the external world. These boxes give you control over how others interact with your selected folders. With boxes, you can:

  • Invite team members to collaborate
  • Create anonymous links with various permission levels
  • Set up read-only boxes where others can only view content
  • Create upload-only boxes where users can add files without seeing existing content

This structured approach provides a secure and flexible way to share your files while maintaining precise control over access permissions.

plikshare_box.mp4

How to preview files

PlikShare includes a built-in preview function for various file formats. You can open videos, audio files, text files, PDFs, and it can render markdown files directly in the browser.

I couldn't resist implementing ZIP file browsing capabilities as well. This feature allows you to navigate through ZIP archives and even preview files contained within them without having to extract the archive first.

plikshare_file_preview.mp4

How to embed box widget on other websites

Each PlikShare box can be used as a widget and embedded on other websites. To do this, you need to:

  1. Create a box
  2. Create a link
  3. Set required permissions
  4. Click the widget setup
  5. Add the destination website origin to the allowed list

On your website, you'll need to import the provided JavaScript and CSS files in the head section. Then you can use the <plikshare-box-widget> web component.

Here's how it looks in practice (as seen on https://plikshare.com):

plikshare_box_widget.mp4

Markdown Files

PlikShare can render markdown files and it supports mermaid diagrams. Markdown files are also the only files in PlikShare (for now!) that can be directly edited.

Why? It's connected with my development plans for the app. My long-term goal is to integrate PlikShare seamlessly with AI such as ChatGPT, Claude, etc., and markdown seems like a natural choice for a file format that is both easy for people to write and for AI to understand.

plikshare_markdown_files.mp4

Integration: AWS Textract (OCR)

The first integration I added to PlikShare is Textract - it allows users to extract text from PDFs (or images). To configure Textract, we first need to configure AWS S3 as storage, because Textract operates on files stored there.

plikshare_create_aws_storage.mp4

When S3 is configured, we need to add the Textract integration (it's important to prepare access keys with appropriate permissions - but in case of any mistakes, the configuration test should fail and inform us what is wrong).

plikshare_create_aws_textract.mp4

And finally, when everything is ready, we can extract text from a PDF:

plikshare_textract_in_action.mp4

How does it work? Behind the scenes, PlikShare copies a file into the Textract storage, triggers the extraction, copies the result back into the original workspace, and then removes the file from AWS S3. Fancy!

Integration: Chat GPT

The second integration is the possibility to use your text files with ChatGPT and run queries against them. That's why I started with OCR so that I can have an easy way to convert PDF -> text and not worry about how to push PDF into AI directly as these are still very early stages of these integrations.

To use ChatGPT, we need to configure it first, and then an additional option at the file preview level is available to talk to chat and to include the file (or its attachments) in the query. What is convenient is the possibility to convert all files produced by AI into file attachments - just as Textract results were stored as attachments.

plikshare_chat_gpt_integration.mp4

Contact Information

Having trouble with self-hosting or interested in a managed version with support?

License

PlikShare is developed and maintained by Damian Krychowski. PlikShare is distributed under an AGPLv3 license.

Trademark

The name "PlikShare" and the PlikShare logo are trademarks owned by Damian Krychowski and are not covered by the AGPLv3 license. Please see TRADEMARK.md for usage guidelines.

About

PlikShare - Self-hosted file sharing platform with unlimited users, flexible storage options (local disk or S3), and secure external collaboration features. Own your data, control your infrastructure.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published