Skip to content

anjaraeu/Raki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

938915a · Aug 20, 2023
Jun 3, 2020
May 13, 2019
May 16, 2020
May 24, 2020
Jun 3, 2020
Jun 4, 2020
May 24, 2020
May 24, 2020
May 24, 2020
May 13, 2019
May 13, 2019
Apr 14, 2020
May 14, 2019
Nov 13, 2020
May 13, 2019
Jun 3, 2019
May 24, 2020
May 13, 2019
Aug 20, 2023
Aug 20, 2023
Jun 3, 2020
May 13, 2019
Jun 3, 2020
May 13, 2019
Jun 3, 2020
Jun 3, 2020

Repository files navigation

Raki

Raki is a full-featured file sharing utility. It relies on Tus protocol to allow resumable uploads.

Features

  • Upload 5 files and create a group
    • optional AES256 encryption with password
    • "single" downloads: deleted right after first download
    • custom expiration (from one day to one month)
    • create short link (with AnjaraLink or the integrated link shortener)
    • management link
  • User accounts (totally optional)
    • All the uploads in a single dashboard
  • Admin/Moderation panels
    • Report features (DMCA, non-ethical, etc...)
    • Admin dashboard with Horizon console

Installation

You'll need to install Composer for PHP dependencies, Nodejs to compile assets. You'll also need Redis to manage the ZIP generation queue.

  • First, install PHP dependencies:

    composer install --no-dev
  • Configure the .env file correctly:

    cp .env.example .env
    $EDITOR .env
    php artisan key:generate
  • Then build assets:

    yarn
    cd resources/fomantic
    npx gulp build
    cd ../..
    yarn production
  • Then setup the database:

    php artisan migrate
    
  • To manage the download queue, you'll need to run the Horizon daemon, with the provided systemd unit:

    sudo cp templates/files-horizon.service /etc/systemd/system/files-horizon.service

    Don't forget to edit PATHTOPHP and PATHTORAKI to their respective values.

  • (optional) Set the cron task to delete expired groups. The task template can be found in the templates folder. Again, don't forget to edit

SQLite

To use SQLite, replace the whole DB_* block by this line:

DB_CONNECTION=sqlite

You must also create the database file itself:

touch database/database.sqlite