GithubHelp home page GithubHelp logo

lulzzz / penguinupload Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 23.42 MB

A self-hostable, fully featured file hosting service

Home Page: https://iridiumion.xyz/#/projects/penguinupload

License: Apache License 2.0

Shell 0.49% HTML 0.35% Vue 30.07% JavaScript 18.07% CSS 0.77% C# 50.24%

penguinupload's Introduction

PenguinUpload

screenshot screenshot

A self-hostable, fully featured file host

About

PenguinUpload is a self-hostable web application that lets users upload and share files.

PenguinUpload was inspired by sr.ht. However, while sr.ht uses a Flask backend and static HTML as a frontend, PenguinUpload uses an ASP.NET Core + NancyFx backend and a Vue.js SPA with Vuetify as a frontend.

Features/Details

  • Easy configuration (just a JSON file!)
    • Disable public registration
      • Require an invite code to create an account
    • Set physical location of files (use /tmp for ephemeral storage)
  • Simple directory structure and file metadata
    • A simple directory structure to organize files is available (>= 0.8.x)
    • Directory structure is generated dynamically on query
    • File metadata includes size and upload date
  • Password protection of files
    • Server enforced password protection
    • Passwords are hashed and stored securely
  • Complete API with stateless authentication for accessing the entire application
    • All functionality is exposed through the API
    • In fact, the entire web application (a Vue.js SPA) works entirely through calls to PenguinUpload's REST API
    • Each user has an API key
  • Intuitive Material Design interface
    • Pages for login, upload, download, profile, file management, and more
  • Concurrent, streamed file transfer
    • Multiple uploads/downloads at a time
  • Uploaded file management
    • Download previously uploaded files
    • Protect uploaded files with custom passwords
    • Share download links, even to password protected files, which will prompt for the password. Links can also be generated containing encoded passwords.
  • Rich download/embed support
    • Stream raw files with a simple API call
    • Supports partial download, allowing for streaming of content directly from cloud storage
  • Advanced user management
    • User privileges, advanced admin API
    • File storage quotas and enforcement
  • Optional resource usage control
    • Limit concurrent uploads per user

Build

Build Status

Install

PenguinUpload uses an embedded NoSQL database (LiteDB) to store metadata about files and users. The files themselves are stored in a configurable location on the filesystem.

Setup Instructions (From source)

  1. Install dependencies (.NET Core SDK 1.1, NPM/Node.js v7)
  2. Run the included script ./script/build.sh. It will output the application to ./src/PenguinUpload/bin/Release/netcoreapp1.0/publish/, and you can copy it to wherever you like
  3. Set up configuration - Create a file called penguinupload.config.json. See the example configuration file (penguinupload.config.example.json for an example.) This is required, as registration is disabled by default for security reasons.
  4. (optional) Set ASP.NET Core config in a hosting.json file.

Administration

See the Administration documentation

License

Copyright © 2017 0xFireball (Nihal Talur). All Rights Reserved.

Licensed under the Apache License 2.0

penguinupload's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.