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

68 lines
2.9 KiB
Markdown
Raw Normal View History

2022-05-02 09:19:33 +02:00
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.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).
2022-05-06 11:22:38 +02:00
## 🎪 Showcase
2022-04-25 15:15:17 +02:00
2022-05-06 11:22:38 +02:00
Demo: https://pingvin-share.dev.eliasschneider.com
2022-04-25 15:15:17 +02:00
2022-05-06 11:22:38 +02:00
<img src="https://user-images.githubusercontent.com/58886915/167101708-b85032ad-f5b1-480a-b8d7-ec0096ea2a43.png" width="700"/>
2022-04-25 15:15:17 +02:00
2022-05-06 11:22:38 +02:00
## ✨ Features
- Create a simple share with a link
- Secure your share with a visitor limit and a password
- Share your files with specific emails and send an invitation email
- Dark mode
## ⌨️ Setup
2022-04-25 15:15:17 +02:00
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-02 08:22:53 +02:00
To run 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
2022-05-02 08:22:53 +02:00
3. Change `PUBLIC_APPWRITE_HOST` in the `.env` file to the host where your Appwrite instance runs
4. Change `PUBLIC_MAX_FILE_SIZE` in the `.env` file to the max file size limit you want
2022-05-06 11:22:38 +02:00
## ⚙️ Additional configurations
2022-05-06 10:25:10 +02:00
### SMTP
1. Enable `PUBLIC_MAIL_SHARE_ENABLE` in the `.env` file.
2. Visit your Appwrite console, click on functions and select the `Create Share` function.
3. At the settings tab change the empty variables to your SMTP setup.
2022-05-06 11:22:38 +02:00
## 💁‍♂️ 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-05-06 11:22:38 +02:00
## 🖤 Contribute
2022-04-25 15:15:17 +02:00
You're very welcome to contribute to Pingvin Share!
Contact me, create an issue or directly create a pull request.