1
0
mirror of https://github.com/stonith404/pingvin-share.git synced 2024-11-04 23:10:13 +01:00
A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing.
Go to file
2022-04-30 23:30:28 +02:00
.setup Fix setup index delay issue 2022-04-29 14:05:12 +02:00
assets/screenshots [ImgBot] Optimize images 2022-04-26 02:45:45 +00:00
functions initial commit 2022-04-25 15:15:17 +02:00
public [ImgBot] Optimize images 2022-04-29 08:34:00 +00:00
src Add function to download all files as a zip 2022-04-30 23:30:23 +02:00
styles initial commit 2022-04-25 15:15:17 +02:00
.dockerignore initial commit 2022-04-25 15:15:17 +02:00
.env.example fixed expiration date 2022-04-25 17:58:03 +02:00
.eslintrc.json initial commit 2022-04-25 15:15:17 +02:00
.gitignore Remove PWA build files 2022-04-28 15:22:25 +02:00
appwrite.json initial commit 2022-04-25 15:15:17 +02:00
docker-compose.yml initial commit 2022-04-25 15:15:17 +02:00
Dockerfile initial commit 2022-04-25 15:15:17 +02:00
LICENSE Create LICENSE 2022-04-26 08:15:49 +02:00
next-env.d.ts initial commit 2022-04-25 15:15:17 +02:00
next.config.js Remove PWA build files 2022-04-28 15:22:25 +02:00
package-lock.json Add function to download all files as a zip 2022-04-30 23:30:23 +02:00
package.json Add function to download all files as a zip 2022-04-30 23:30:23 +02:00
README.md Add function to download all files as a zip 2022-04-30 23:30:23 +02:00
tsconfig.json initial commit 2022-04-25 15:15:17 +02:00


Pingvin Share

Pingvin Share is a selfhosted file sharing plattform made for the Appwrite Hackathon.

Showcase

https://pingvin-share.dev.eliasschneider.com

Setup

At the moment, the setup is a bit time-consuming. I will improve the setup in the future.

1. Appwrite

Pingvin Share uses Appwrite as backend. You have to install and setup Appwrite first

  1. Install Appwrite
  2. Create an Account on your Appwrite instance
  3. Change the _APP_STORAGE_LIMIT variable in the .env file of Appwrite to your prefered max size limit per share

2. Setup script

To setup the backend structure of Pingvin Share you have to run the setup script.

  1. Install Node
  2. Clone the repository with git clone https://github.com/stonith404/pingvin-share
  3. Visit the repository directory with cd pingvin-share
  4. Run npm run init:appwrite

3. Frontend

To set up the frontend of Pingvin Share follow these steps.

  1. Go to your Appwrite console, visit "API Keys" and copy the "Functions API Key" secret to your clipboard.
  2. Rename the .env.example file to .env
  3. Paste the key in the .env file
  4. Change NEXT_PUBLIC_APPWRITE_HOST in the .env file to the host where your Appwrite instance runs
  5. Change NEXT_PUBLIC_MAX_FILE_SIZE in the .env file to the max file size limit you want

Start the frontend:

With docker:

  1. Run docker-compose up -d --build

Without docker:

  1. Run npm install
  2. Run npm run build && npm run start

Known issues / Limitations

Pingvin Share is currently in beta and there are issues and limitations that should be fixed in the future.

  • DownloadAll generates the zip file on the client side. This takes alot of time. Because of that I temporarily limited this function to maximal 150 MB.
  • If a user knows the share id, he can list and download the files directly from the Appwrite API even if the share is secured by a password or a visitor limit.

Contribute

You're very welcome to contribute to Pingvin Share! Contact me, create an issue or directly create a pull request.