DEV Community

Elias Schneider
Elias Schneider

Posted on • Updated on

Pingvin Share - A selfhosted file sharing platform

Overview of My Appwrite x DEV Hackathon Submission

Pingvin Share is a self-hosted file-sharing platform built with the awesome BaaS (Backend as a Service) Appwrite.

A small demo before we begin.
Pingvin Share Demo

You can try it by your own on https://pingvin-share.dev.eliasschneider.com

The idea for this project came because I want to share some confidential files with my family.
Because privacy is important to me and I love self-hosting I searched for a self-hosted file sharing platform.
I only found big solutions like Nextcloud but I wanted a lightweight service without advanced features that I don't need.

✨ Features

  • Upload as big files as you want. Only your hard drive will be your limit
  • 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

⌨️ Technologies

Appwrite

Appwrite is the core for Pingvin Share. Pingvin Share uses Appwrite Storage, Database, Authentication and Cloud functions.

NextJS

This project uses NextJS as the frontend and for some API endpoints.

Mantine

Mantine is a beautiful React component library. It ships useful hooks, awesome components, a form handler, a modal manager, a notification manager and many more.

πŸ“‚ Submission Category

Web2 Wizards

Link to Code

GitHub logo stonith404 / pingvin-share

A self-hosted file sharing platform.


Pingvin Share

Pingvin Share is a self-hosted file sharing platform made for the Appwrite Hackathon.

πŸŽͺ Showcase

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

✨ 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

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. Frontend

First of all you have to start the Docker container.

  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

…

πŸ™‹πŸΌβ€β™‚οΈ About me

My name is Elias and I'm studying software engineering in Switzerland. This is my first and definitely not least hackathon participation. I've really enjoyed to create this small project and learned a lot!

You can find more about me on https://eliasschneider.com

πŸ”— Resources

Top comments (6)

Collapse
 
eldadfux profile image
Eldad A. Fux

Looks awesome!!

Collapse
 
tessamero profile image
Tessa Mero

Congratulations on joining your first hackathon! Great choice by the way. And nice job on the project!

Collapse
 
thibdevan profile image
thibdevan

Hi Elias,
Thanks for sharing this really great app.
Can you tell us how to translate / add others languages.
Regards

Collapse
 
stonith404 profile image
Elias Schneider

Hey, thanks :) Currently we don't support multiple languages, but if you want to see this feature, feel free to create an issue on GitHub!

Collapse
 
haimantika profile image
haimantika mitra

How cool! We have a lot of interesting things happening in our Appwrite discord, we would love to see you there!
discord.gg/KKZprAnX

Collapse
 
stonith404 profile image
Elias Schneider

I'm already a member since one year😊