mirror of
https://github.com/stonith404/pingvin-share.git
synced 2024-11-04 23:10:13 +01:00
2.3 KiB
2.3 KiB
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
- Install Appwrite
- Create an Account on your Appwrite instance
- 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.
- Install Node
- Clone the repository with
git clone https://github.com/stonith404/pingvin-share
- Visit the repository directory with
cd pingvin-share
- Run
npm run init:appwrite
3. Frontend
To set up the frontend of Pingvin Share follow these steps.
- Go to your Appwrite console, visit "API Keys" and copy the "Functions API Key" secret to your clipboard.
- Rename the
.env.example
file to.env
- Paste the key in the
.env
file - Change
NEXT_PUBLIC_APPWRITE_HOST
in the.env
file to the host where your Appwrite instance runs - Change
NEXT_PUBLIC_MAX_FILE_SIZE
in the.env
file to the max file size limit you want
Start the frontend:
With docker:
- Run
docker-compose up -d --build
Without docker:
- Run
npm install
- 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.