Giter Site home page Giter Site logo

ijskoud / paperplane Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 2.0 13.77 MB

An open-source customisable solution to storing files in the cloud. ✈️

Home Page: https://paperplane.ijskoud.dev

License: MIT License

JavaScript 1.37% TypeScript 96.63% Shell 0.01% Dockerfile 0.59% CSS 1.40%
sharex-server react nextjs typescript discord screenshot shortlink darkmode api file-upload

paperplane's Introduction

welcome banner image

export class Human {
  public readonly name = "Daan Klarenbeek";
  public readonly username = "ijsKoud";

  public readonly web = "https://ijskoud.dev/";
  public readonly linkedIn = "https://ijskoud.dev/linkedin";

  public position = "student";
  public readonly age: number;

  public constructor(age: number = 17) {
    this.age = age;
  }

  public get stack(): Record<string, string[]> {
    return {
      languages: ["JavaScript", "TypeScript", "Python"],
      database: ["PostgreSQL", "Mongo DB", "Redis"],
      frontend: ["ReactJS", "NextJS", "Tailwind CSS", "HTML", "CSS"],
      backend: ["NodeJS", "ExpressJS", "TRPC"],
      devops: ["Docker", "Linux"],
      misc: ["Prisma", "firebase", "turborepo"]
    }
  }
}

🔥 Github Stats

  1. 🎉 Merged PR #91 in ijsKoud/PaperPlane-docs
  2. ❌ Closed PR #123 in ijsKoud/gitcord
  3. 🎉 Merged PR #134 in ijsKoud/gitcord
  4. 🎉 Merged PR #259 in ijsKoud/ijsblokje
  5. 💪 Opened PR #134 in ijsKoud/gitcord
  6. ❌ Closed PR #104 in snowcrystals/website
  7. ❌ Closed PR #126 in snowcrystals/website
  8. 🎉 Merged PR #201 in ijsKoud/ijsblokje
  9. 🎉 Merged PR #53 in snowcrystals/prettier-config
  10. ❌ Closed PR #1 in snowcrystals/.github

paperplane's People

Contributors

dependabot[bot] avatar ijsblokjeee-private[bot] avatar ijsblokjeee[bot] avatar ijskoud avatar imgbot[bot] avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

paperplane's Issues

[DepShield] (CVSS 7.5) Vulnerability due to usage of debug:2.6.9

Vulnerabilities

DepShield reports that this application's usage of debug:2.6.9 results in the following vulnerability(s):


Occurrences

debug:2.6.9 is a transitive dependency introduced by the following direct dependency(s):

body-parser:1.19.0
        └─ debug:2.6.9

eslint-config-next:11.1.2
        └─ eslint-plugin-import:2.24.2
              └─ debug:2.6.9

express:4.17.1
        └─ debug:2.6.9
        └─ finalhandler:1.1.2
              └─ debug:2.6.9
        └─ send:0.17.1
              └─ debug:2.6.9

next:11.1.2
        └─ get-orientation:1.1.2
              └─ stream-parser:0.3.1
                    └─ debug:2.6.9

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

Add auto-updating system

Not sure if this is ever going to work but I would be cool to add. Saves a lot of ssh login time

Roadmap: v3.x.x

Roadmap: v3.0.0

This is the roadmap for version 3.0.0. Every item added to this list will be part of this update.

Requested feature not on the list?

Check the lists below or open an issue!

To do list

  • General
    • Docker Support
    • Updated guides
    • Updated security policy
  • Back-end
    • Server
    • Password protected files
    • Upload route
    • Get route
    • zerowidth ids
    • user creation
    • logging
    • stats
    • request logging
    • api
      • login
      • update
      • file search
      • url search
  • Front-end
    • App
    • Pages
      • #80
      • Dashboard
      • Login
      • Settings
      • Discord: image page
      • User: password protected file page
      • User: visibility on image & url
    • Modals
      • Upload
      • URL create
    • Components
    • Notifications

[DepShield] (CVSS 7.4) Vulnerability due to usage of lodash.sortby:4.7.0

Vulnerabilities

DepShield reports that this application's usage of lodash.sortby:4.7.0 results in the following vulnerability(s):


Occurrences

lodash.sortby:4.7.0 is a transitive dependency introduced by the following direct dependency(s):

next:11.1.2
        └─ @next/react-dev-overlay:11.1.2
              └─ source-map:0.8.0-beta.0
                    └─ whatwg-url:7.1.0
                          └─ lodash.sortby:4.7.0

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

Moving to another server

Hi.
How can I move PaperPlane to another server? I’m moving to another host, and I want to keep all my previous photos.

Thanks :)

[DepShield] (CVSS 7.5) Vulnerability due to usage of express:4.17.1

Vulnerabilities

DepShield reports that this application's usage of express:4.17.1 results in the following vulnerability(s):

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

refactor: use websockets in favour of re-fetching data

Idea:

First you make a GET request to /api/user to check if the client is logged in. If not, then return { loggedIn: false } else { loggedIn: true }
This will stop the need for re-opening a websocket everytime. And makes loading state much easier. It will redirect the user when not logged in to /login

Open a websocket when user is found, get data.
Close websocket when logged out or when connection is dead (using ping pong method)

Update events via websocket
POST, PATCH events via rest API

[DepShield] (CVSS 7.4) Vulnerability due to usage of lodash.clonedeep:4.5.0

Vulnerabilities

DepShield reports that this application's usage of lodash.clonedeep:4.5.0 results in the following vulnerability(s):


Occurrences

lodash.clonedeep:4.5.0 is a transitive dependency introduced by the following direct dependency(s):

eslint:7.32.0
        └─ table:6.7.2
              └─ lodash.clonedeep:4.5.0

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

feat: file api routes 💡

Implementation PR

#444

Reference Issues

No response

Summary

Add the following api routes:

  • Delete files
  • Get file details

Basic Example

n/a

Drawbacks

n/a

Unresolved questions

No response

Can't login

Hi.
Whenever I try to login to the CDN, it won't accept my password (or username). I've tried both the password I set in the .env file and the one I set while setting up the user (because I don't know which one works).

I'm not the most experienced person in this, so I've probably just done something wrong.

image

Websocket connection to failed: There was a bad response from the server.

Hi, i am trying to deploy paperplane to my raspberry pi 4, and no matter what i try when i access the web panel it just gets stuck on 3 bouncing dots or nothing happens after i press login. in the javascript console it says this:
[Error] WebSocket connection to 'wss://hypere.app/websocket' failed: There was a bad response from the server.
[Log] ws connection closed – 1006 (_app-bc7ad50d2ae2a128.js, line 1)

i tried via docker, same thing.
is there something i'm doing wrong?
thanks!

fix: linux/arm64 builds unavailable

Description

Due to an unknown bug with Prisma the linux/arm64 have been disabled temporarily. I will be looking into this issue as soon as possible.

Reproduction URL

No response

Reproduction steps

N/A

Screenshots

No response

Logs

No response

Environment

Server

OS

Linux

feat: add chunk uploading 💡

Implementation PR

#445

Reference Issues

No response

Summary

Add the option to upload files in chunks again. Feature was removed with last version release.

Basic Example

n/a

Drawbacks

Annoying to setup.

Unresolved questions

No response

Install Script Error

Hello, it's me again :)
I'm getting this error when I run the node scripts/install command when installing PaperPlane.

[INFO] - Installing the required dependencies...
[INFO] - Building web application...
[ERROR] - An error occured while building the web application, please try again.
later Error: Command failed: yarn build
Failed to compile.

./src/lib/hooks/useAuth.tsx:1:15
Type error: Module '"@prisma/client"' has no exported member 'User'.

> 1 | import type { User } from "@prisma/client";
    |               ^
  2 | import React, { useState, useContext, createContext, useEffect } from "react";
  3 | import { fetch, getCancelToken } from "../fetch";
  4 |

    at ChildProcess.exithandler (node:child_process:398:12)
    at ChildProcess.emit (node:events:527:28)
    at maybeClose (node:internal/child_process:1092:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
  code: 1,
  killed: false,
  signal: null,
  cmd: 'yarn build'
}

Not sure whether it's a problem with my VPS, because this hasn't happened before.
Strange.

help fast :(

yo started paper plane and cant get into websit
Nu7xzyWg
DgyRyhvU

feat: shortcuts api routes 💡

Implementation PR

#442

Reference Issues

No response

Summary

Add the following api routes:

  • Create shortcut
  • Get shortcut details
  • Delete shortcut

Basic Example

n/a

Drawbacks

n/a

Unresolved questions

No response

feat: add documentation💡

Implementation PR

No response

Reference Issues

No response

Summary

Add documentation again, current version (docs) is outdated (made for version v3.x.x).

Basic Example

n/a

Drawbacks

n/a

Unresolved questions

No response

Add landing page

Right now, you get redirected to repo when you visit the index route. At first I thought it wouldn't be annoying but I was completely wrong and I keep forgetting about it.

Make a landing page that allows you to visit the dashboard or get to the repo

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update all non-major dependencies (@next/font, @tanstack/react-query, @tanstack/react-table, express, lucide-react, next)
  • chore(deps): update nextjs monorepo to ^14.1.4 (@next/font, next)
  • chore(deps): update dependency @typescript-eslint/eslint-plugin to ^7.3.1
  • chore(deps): update dependency rc-progress to v4

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
Dockerfile
  • node 18-alpine
  • node 18-alpine
  • node 18-alpine
github-actions
.github/workflows/codeql-analysis.yml
  • actions/checkout v4
  • github/codeql-action v3
  • github/codeql-action v3
  • github/codeql-action v3
.github/workflows/continuous-integration.yml
  • actions/checkout v4
  • actions/setup-node v4
  • actions/checkout v4
  • actions/setup-node v4
  • actions/checkout v4
  • actions/setup-node v4
.github/workflows/docker-dev.yml
  • actions/checkout v4
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • docker/build-push-action v5
.github/workflows/docker.yml
  • actions/checkout v4
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • docker/build-push-action v5
npm
apps/server/package.json
  • @discordjs/collection ^2.0.0
  • @prisma/client ^5.11.0
  • @snowcrystals/highway ^1.1.4
  • @snowcrystals/icicle ^2.0.4
  • axios ^1.6.8
  • body-parser ^1.20.2
  • colorette ^2.0.20
  • cookie-parser ^1.4.6
  • cors 2.8.5
  • cron ^3.1.5
  • dotenv ^16.4.5
  • express ^4.18.3
  • express-rate-limit ^7.2.0
  • formidable ^3.5.1
  • fuse.js ^7.0.0
  • jsonwebtoken ^9.0.2
  • lodash ^4.17.21
  • mime-types ^2.1.35
  • ms ^2.1.3
  • node-2fa ^2.0.3
  • node-os-utils ^1.3.7
  • pidusage ^3.0.2
  • prisma ^5.11.0
  • short-unique-id ^5.0.3
  • ua-parser-js ^1.0.37
  • winston ^3.12.0
  • winston-daily-rotate-file ^4.7.1
  • zip-lib ^1.0.3
  • @types/cookie-parser ^1.4.7
  • @types/cors 2.8.17
  • @types/cron ^2.0.1
  • @types/express ^4.17.21
  • @types/express-rate-limit ^6.0.0
  • @types/formidable ^3.4.5
  • @types/jsonwebtoken ^9.0.6
  • @types/lodash ^4.14.202
  • @types/mime-types ^2.1.4
  • @types/ms ^0.7.34
  • @types/node ^20.11.25
  • @types/node-os-utils ^1.3.4
  • @types/pidusage ^2.0.5
  • @types/ua-parser-js ^0.7.39
  • eslint 8.57.0
  • typescript ^5.4.2
  • next ^14.1.3
apps/web/package.json
  • axios ^1.6.8
  • file-saver ^2.0.5
  • ms ^2.1.3
  • react-dropzone ^14.2.3
  • react-syntax-highlighter ^15.5.0
  • @types/file-saver ^2.0.7
  • @types/ms ^0.7.34
  • @types/node ^20.11.25
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • @types/react-syntax-highlighter ^15.5.11
  • eslint 8.57.0
  • tailwindcss ^3.4.1
  • typescript ^5.4.2
  • @next/font ^14.1.3
  • next ^14.1.3
  • react ^18.2.0
  • react-dom ^18.2.0
package.json
  • @hookform/resolvers ^3.3.4
  • @next/font 14.1.3
  • @tanstack/react-query ^5.28.4
  • @tanstack/react-table 8.13.2
  • @trpc/client ^10.45.2
  • @trpc/next ^10.45.2
  • @trpc/react-query ^10.45.2
  • @trpc/server ^10.45.2
  • class-variance-authority ^0.7.0
  • clsx ^2.1.0
  • lucide-react ^0.358.0
  • next ^14.1.3
  • next-themes 0.3.0
  • react 18.2.0
  • react-dom ^18.2.0
  • react-hook-form ^7.51.1
  • react-syntax-highlighter 15.5.0
  • superjson ^2.2.1
  • tailwind-merge ^2.2.2
  • tailwindcss-animate ^1.0.7
  • zod ^3.22.4
  • @sapphire/eslint-config ^5.0.3
  • @sapphire/ts-config 5.0.0
  • @snowcrystals/prettier-config ^1.0.0
  • @types/node 20.11.25
  • @typescript-eslint/eslint-plugin ^7.1.1
  • @typescript-eslint/parser ^7.1.1
  • eslint ^8.57.0
  • eslint-config-next 14.1.3
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-prettier ^5.1.3
  • husky ^8.0.3
  • is-ci ^3.0.1
  • lint-staged ^15.2.2
  • pinst ^3.0.0
  • prettier ^3.2.5
  • tailwindcss ^3.4.1
  • turbo ^1.12.5
  • typescript 5.4.2
  • @typescript-eslint/eslint-plugin ^7.2.0
  • yarn 4.1.1
packages/components/package.json
  • axios ^1.6.8
  • cookies-next 4.1.1
  • ms ^2.1.3
  • rc-progress ^3.5.1
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • eslint 8.57.0
  • typescript ^5.4.2
  • next 14.1.3
  • react ^18.2.0
  • react-dom 18.2.0
packages/logo/package.json
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • eslint 8.57.0
  • typescript ^5.4.2
  • @next/font ^14.1.3
  • react ^18.2.0
  • react-dom 18.2.0
packages/markdown/package.json
  • react-markdown ^9.0.1
  • remark-gfm ^4.0.0
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • eslint 8.57.0
  • typescript ^5.4.2
  • react ^18.2.0
packages/swr/package.json
  • axios ^1.6.8
  • swr ^2.2.5
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • eslint 8.57.0
  • typescript ^5.4.2
  • react ^18.2.0
packages/ui/package.json
  • @radix-ui/react-alert-dialog ^1.0.5
  • @radix-ui/react-avatar ^1.0.4
  • @radix-ui/react-checkbox ^1.0.4
  • @radix-ui/react-dialog ^1.0.5
  • @radix-ui/react-dropdown-menu ^2.0.6
  • @radix-ui/react-label ^2.0.2
  • @radix-ui/react-scroll-area ^1.0.5
  • @radix-ui/react-select ^2.0.0
  • @radix-ui/react-slot ^1.0.2
  • @radix-ui/react-switch ^1.0.3
  • @radix-ui/react-tabs ^1.0.4
  • @radix-ui/react-toast ^1.1.5
  • @radix-ui/react-tooltip ^1.0.7
  • @types/react ^18.2.64
  • @types/react-dom ^18.2.21
  • eslint 8.57.0
  • typescript ^5.4.2
  • next 14.1.3
  • react ^18.2.0
  • react-dom 18.2.0
packages/utils/package.json
  • @sapphire/timestamp ^1.0.3
  • axios 1.6.8
  • eslint 8.57.0
  • typescript ^5.4.2
nvm
.nvmrc

  • Check this box to trigger a request for Renovate to run again on this repository

feat: add pastebin api routes 💡

Implementation PR

#443

Reference Issues

No response

Summary

Add the following api routes:

  • Create pastebin
  • Get pastebin details
  • Delete pastebin

Basic Example

n/a

Drawbacks

n/a

Unresolved questions

No response

Release v2

To Do list for version 2:
Version 1 was trash and the short URL was not really a short URL (more like a long URL because it was /:userId/r/:id/), this version removes the multi user compatibility as it was useless anyways (for me then at least. The project was created to be more like a single user system)

  • Add .github directory contents
    • Workflows
    • md files
    • yml files
  • Add upload settings
    • Add allowed extensions
    • Add max file size
    • Add max file uploads per request
    • Custom file name or auto generated ID name
  • Add run scripts
    • Install script
    • create/reset user (excluding the files)
  • Express server
    • Being able to view a file
    • Redirect when a shortlink is found
  • Frontend Next.js server
    • Everything behind auth checks
    • Main page redirects to https://github.com/DaanGamesDG/PaperPlane/
    • Navigation bar
      • Logo
      • User
      • dropdown
      • with auth
      • logout system
      • responsive for mobile
    • Dashboard page
    • Authorization
      • Auth using password and username
    • Settings page
      • Behind auth check
      • Config download component
      • User settings component
        • Password
        • Username
        • Theme
        • Token
        • Embed
    • Frontend upload page
      • Behind auth check
      • File uploading
      • Link creation
    • Login page
      • Login using default creds
    • File uploading route
      • File uploading
      • URL creation

More will be added soon:tm:

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.