1
0
mirror of https://github.com/stonith404/pingvin-share.git synced 2024-07-06 17:30:10 +02:00
pingvin-share/README.md

53 lines
2.3 KiB
Markdown
Raw Normal View History

2022-04-28 16:28:37 +02:00
# <div align="center"><img src="./public/img/logo.svg" width="40"/> </br>Pingvin Share</div>
2022-04-25 15:15:17 +02:00
Pingvin Share is a selfhosted file sharing plattform made for the [Appwrite Hackathon](https://dev.to/devteam/announcing-the-appwrite-hackathon-on-dev-1oc0).
## Showcase
2022-04-25 17:09:38 +02:00
https://pingvin-share.dev.eliasschneider.com
2022-04-25 15:15:17 +02:00
<img src="assets/screenshots/home.png" width="700"/>
## 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](https://appwrite.io/docs/installation)
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
2022-05-01 12:12:00 +02:00
### 2. Frontend
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
First of all you have to start the Docker container.
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
1. Clone the `docker-compose.yml` file and the `.env.example` file from this repository
2. Rename the `.env.example` file to `.env`
3. Start the container with `docker-compose up -d`
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
The container is now running. Now you have to setup the Appwrite structure, but no worries I made a setup script.
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
To start the script run `docker-compose exec pingvin-share node scripts/setup.js`.
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
You're almost done, now you have to change your environment variables that they fit to your setup.
2022-04-25 15:15:17 +02:00
2022-05-01 12:12:00 +02:00
1. Go to your Appwrite console, visit "API Keys" and copy the "Functions API Key" secret to your clipboard.
2. Paste the key to the `APPWRITE_FUNCTION_API_KEY` variable in the `.env` file
3. Change `NEXT_PUBLIC_APPWRITE_HOST` in the `.env` file to the host where your Appwrite instance runs
4. Change `NEXT_PUBLIC_MAX_FILE_SIZE` in the `.env` file to the max file size limit you want
## Known issues / Limitations
2022-05-01 12:12:00 +02:00
Pingvin Share is currently in beta and there are issues and limitations that should be fixed in the future.
2022-05-01 12:12:00 +02:00
- `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.
2022-04-25 15:15:17 +02:00
## Contribute
You're very welcome to contribute to Pingvin Share!
Contact me, create an issue or directly create a pull request.