GithubHelp home page GithubHelp logo

jonnybro / zipline Goto Github PK

View Code? Open in Web Editor NEW

This project forked from diced/zipline

0.0 1.0 0.0 9.49 MB

A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!

Home Page: https://zipline.diced.sh/

License: MIT License

Shell 0.02% JavaScript 0.08% TypeScript 99.41% Dockerfile 0.49%

zipline's Introduction

A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!

Stars Version GitHub last commit (branch) Discord

Build Docker Image (trunk) Docker Image (release)

Features

  • Configurable
  • Fast
  • Built with Next.js & React
  • Token protected uploading
  • Image uploading
  • Image compression
  • Password Protected Uploads
  • URL shortening
  • Text uploading
  • URL Formats (uuid, dates, random alphanumeric, original name, zws, gfycat -> animals adjectives)
  • Discord embeds (OG metadata)
  • Gallery viewer, and multiple file format support
  • Code highlighting
  • Fully customizable Discord webhook notifications
  • OAuth2 registration (Discord and GitHub)
  • Two-Factor authentication with Google Authenticator, Authy, etc (totp services).
  • User invites
  • File Chunking (for large files)
  • File deletion once it reaches a certain amount of views
  • Automatic video thumbnail generation
  • Easy setup instructions on docs (One command install docker compose up -d)

Screenshots (click)

View full album at imgur

Login Page Dashboard Files Page

Usage

Install & run with Docker

This section requires Docker and docker compose.

git clone https://github.com/diced/zipline
cd zipline

docker compose up -d

After installing

After installing, please edit the docker-compose.yml file and find the line that says SECRET=changethis and replace changethis with a random string. Ways you could generate the string could be from a password managers generator, or you could just slam your keyboard and hope for the best.

Building & running from source

This section requires nodejs, yarn.

It is recommended to not use npm, as it can cause issues with the build process.

Before you run yarn build, you might want to configure Zipline, as when building from source Zipline will need to read some sort of configuration. The only two variables needed are CORE_SECRET and CORE_DATABASE_URL.

git clone https://github.com/diced/zipline
cd zipline

yarn install
yarn build
yarn start

NGINX Proxy

This section requires NGINX.

server {
  listen 80 default_server;
  client_max_body_size 100M;
  server_name <your domain (optional)>;
  location / {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Website

The default port is 3000, once you have accessed it you can see a login screen. The default credentials are "administrator" and "password". Once you login please immediately change the details to something more secure. You can do this by clicking on the top right corner where it says "administrator" with a gear icon and clicking Manage Account.

ShareX (Windows)

This section requires ShareX.

After navigating to Zipline, click on the top right corner where it says your username and click Manage Account. Scroll down to see "ShareX Config", select the one you would prefer using. After this you can import the .sxcu into sharex. More information here

Flameshot (Linux(Xorg/Wayland) and macOS)

This section requires Flameshot, jq, and xsel.

Wayland instructions

If using wayland you will need to have wl-clipboard installed, for the wl-copy command.

If you are not using GNOME/KDE/Qtile/Sway, and are using something like a wlroots-based compositor (ex. Hyprland, River, etc), you will need to set the XDG_CURRENT_DESKTOP environment variable to sway, which will just override it for this script. Adding export XDG_CURRENT_DESKTOP=sway to the start of the script will work.

After this, replace the xsel -ib with wl-copy in the script.

Mac instructions

If using macOS, you can replace the xsel -ib with pbcopy in the script.

You can either use the script below, or generate one directly from Zipline (just like how you can generate a ShareX config). To upload files using flameshot we will use a script. Replace $TOKEN and $HOST with your own values, you probably know how to do this if you use linux.

DATE=$(date '+%h_%Y_%d_%I_%m_%S.png');
flameshot gui -r > ~/Pictures/$DATE;

curl -H "Content-Type: multipart/form-data" -H "authorization: $TOKEN" -F file=@$1 $HOST/api/upload | jq -r 'files[0].url' | xsel -ib

Contributing

Bug reports

Create an issue on GitHub and use the template, please include the following (if one of them is not applicable to the issue then it's not needed):

  • The steps to reproduce the bug
  • Logs of Zipline
  • The version of Zipline
  • Your OS & Browser including server OS
  • What you were expecting to see

Feature requests

Create a discussion on GitHub, please include the following:

  • Brief explanation of the feature in the title (very brief please)
  • How it would work (Be detailed!)

Pull Requests (contributions to the codebase)

Create a pull request on GitHub. If your PR does not pass the action checks, then please fix the errors. If your PR was submitted before a release, and I have pushed a new release, please make sure to update your PR to reflect any changes, usually this is handled by GitHub.

Documentation

Documentation source code is located in diced/zipline-docs, and can be accessed here.

zipline's People

Contributors

advilm avatar alphanecron avatar ar065 avatar axisiscool avatar cestef avatar chamburr avatar danejur avatar dependabot[bot] avatar diced avatar digital39999 avatar hexed avatar icetoast avatar ithundxr avatar itzderock avatar karlmanait avatar kashalls avatar l7neg avatar maximmax42 avatar nebulabc avatar neomoth avatar relaxtakenotes avatar resetd3v avatar seaswimmerthefsh avatar tacticaltechjay avatar thereis avatar thezoker avatar vetlix avatar wdhdev avatar wingysam avatar winterfe avatar

Watchers

 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.