<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Elias Schneider</title>
    <description>The latest articles on Forem by Elias Schneider (@stonith404).</description>
    <link>https://forem.com/stonith404</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F846456%2F016f3c07-0c63-402a-a3e4-5ddb22d75ed1.png</url>
      <title>Forem: Elias Schneider</title>
      <link>https://forem.com/stonith404</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/stonith404"/>
    <language>en</language>
    <item>
      <title>Pingvin Share - A selfhosted file sharing platform</title>
      <dc:creator>Elias Schneider</dc:creator>
      <pubDate>Mon, 25 Apr 2022 19:28:47 +0000</pubDate>
      <link>https://forem.com/stonith404/pingvin-share-a-selfhosted-file-sharing-platform-2mb0</link>
      <guid>https://forem.com/stonith404/pingvin-share-a-selfhosted-file-sharing-platform-2mb0</guid>
      <description>&lt;h2&gt;
  
  
  Overview of My Appwrite x DEV Hackathon Submission
&lt;/h2&gt;

&lt;p&gt;Pingvin Share is a self-hosted file-sharing platform built with the awesome BaaS (Backend as a Service) Appwrite.&lt;/p&gt;

&lt;p&gt;A small demo before we begin.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ud5c6m8bjunziaeh6pq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ud5c6m8bjunziaeh6pq.gif" alt="Pingvin Share Demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can try it by your own on &lt;a href="https://pingvin-share.dev.eliasschneider.com" rel="noopener noreferrer"&gt;https://pingvin-share.dev.eliasschneider.com&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Upload as big files as you want. Only your hard drive will be your limit&lt;/li&gt;
&lt;li&gt;Create a simple share with a link&lt;/li&gt;
&lt;li&gt;Secure your share with a visitor limit and a password&lt;/li&gt;
&lt;li&gt;Share your files with specific emails and send an invitation email&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  ⌨️ Technologies
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Appwrite
&lt;/h3&gt;

&lt;p&gt;Appwrite is the core for Pingvin Share. Pingvin Share uses Appwrite Storage, Database, Authentication and Cloud functions.&lt;/p&gt;
&lt;h3&gt;
  
  
  NextJS
&lt;/h3&gt;

&lt;p&gt;This project uses NextJS as the frontend and for some API endpoints.&lt;/p&gt;
&lt;h3&gt;
  
  
  Mantine
&lt;/h3&gt;

&lt;p&gt;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. &lt;/p&gt;
&lt;h2&gt;
  
  
  📂 Submission Category
&lt;/h2&gt;

&lt;p&gt;Web2 Wizards&lt;/p&gt;
&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/stonith404" rel="noopener noreferrer"&gt;
        stonith404
      &lt;/a&gt; / &lt;a href="https://github.com/stonith404/pingvin-share" rel="noopener noreferrer"&gt;
        pingvin-share
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;&lt;div&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F58886915%2F166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"&gt;&lt;/a&gt; &lt;br&gt;Pingvin Share&lt;/div&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://discord.gg/wHRQ9nFRcK" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/02d5d56c48641ce5fb38906a37f46c438595cec00825bc38e355be88260dc023/68747470733a2f2f646362616467652e6c696d65732e70696e6b2f6170692f7365727665722f77485251396e4652634b" alt=""&gt;&lt;/a&gt; &lt;a href="https://crowdin.com/project/pingvin-share" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/44f103386c41518246734f1ed96374222d82e1aa18cc389a1c7d3f955c1b8c18/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43726f7764696e2d3245333334302e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d43726f7764696e266c6f676f436f6c6f723d7768697465" alt=""&gt;&lt;/a&gt; &lt;a href="https://github.com/sponsors/stonith404" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d121a8ab0a5139e7698eb9748bdc7ce2aa09ab09953ed66d4f2d5b09b89d241a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73706f6e736f722d3330333633443f7374796c653d666f722d7468652d6261646765266c6f676f3d4769744875622d53706f6e736f7273266c6f676f436f6c6f723d237768697465" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pingvin Share is a self-hosted file sharing platform and an alternative for WeTransfer.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Share files using a link&lt;/li&gt;
&lt;li&gt;Unlimited file size (restricted only by disk space)&lt;/li&gt;
&lt;li&gt;Set an expiration date for shares&lt;/li&gt;
&lt;li&gt;Secure shares with visitor limits and passwords&lt;/li&gt;
&lt;li&gt;Email recipients&lt;/li&gt;
&lt;li&gt;Reverse shares&lt;/li&gt;
&lt;li&gt;OIDC and LDAP authentication&lt;/li&gt;
&lt;li&gt;Integration with ClamAV for security scans&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🐧 Get to know Pingvin Share&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pingvin-share.dev.eliasschneider.com" rel="nofollow noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=rWwNeZCOPJA" rel="nofollow noopener noreferrer"&gt;Review by DB Tech&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/58886915/225038319-b2ef742c-3a74-4eb6-9689-4207a36842a4.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F58886915%2F225038319-b2ef742c-3a74-4eb6-9689-4207a36842a4.png" width="700"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⌨️ Setup&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Installation with Docker (recommended)&lt;/h3&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Download the &lt;code&gt;docker-compose.yml&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;docker compose up -d&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The website is now listening on &lt;code&gt;http://localhost:3000&lt;/code&gt;, have fun with Pingvin Share 🐧!&lt;/p&gt;
&lt;div class="markdown-alert markdown-alert-tip"&gt;
&lt;p class="markdown-alert-title"&gt;Tip&lt;/p&gt;
&lt;p&gt;Checkout &lt;a href="https://github.com/stonith404/pocket-id" rel="noopener noreferrer"&gt;Pocket ID&lt;/a&gt;, a user-friendly OIDC provider that lets you easily log in to services like Pingvin Share using Passkeys.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📚 Documentation&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;For more installation options and advanced configurations, please refer to the &lt;a href="https://stonith404.github.io/pingvin-share" rel="nofollow noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🖤 Contribute&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;We would love it if you want to help make Pingvin Share better! You…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/stonith404/pingvin-share" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  🙋🏼‍♂️ About me
&lt;/h2&gt;

&lt;p&gt;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!&lt;/p&gt;

&lt;p&gt;You can find more about me on &lt;a href="https://eliasschneider.com" rel="noopener noreferrer"&gt;https://eliasschneider.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://appwrite.io" rel="noopener noreferrer"&gt;Appwrite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mantine.dev" rel="noopener noreferrer"&gt;Mantine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org" rel="noopener noreferrer"&gt;NextJS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>appwritehack</category>
      <category>appwrite</category>
      <category>nextjs</category>
      <category>mantine</category>
    </item>
  </channel>
</rss>
