Blazing fast file uploader and awesome bunker written in node! 🚀
Go to file
2020-04-07 01:50:15 +07:00
.github/ISSUE_TEMPLATE Update issue templates 2019-03-12 17:24:36 +09:00
controllers Added sorting feature for Manage Uploads 2020-04-04 23:36:43 +07:00
database Bug fix 2019-10-21 17:49:52 +07:00
dist Removed rel="noopener" attrib from local links 2020-04-07 01:50:15 +07:00
pages/error Updates 2018-09-20 18:41:17 +07:00
public Updated 2019-09-19 14:19:11 +07:00
routes Added sorting feature for Manage Uploads 2020-04-04 23:36:43 +07:00
scripts Updated scripts/README.md again again 2019-09-19 20:44:48 +07:00
src Removed rel="noopener" attrib from local links 2020-04-07 01:50:15 +07:00
views Removed rel="noopener" attrib from local links 2020-04-07 01:50:15 +07:00
.browserslistrc Updates (very important to read) 2019-09-15 13:20:11 +07:00
.editorconfig Updates 2018-04-13 23:20:57 +07:00
.eslintignore Updated 2019-09-17 11:13:41 +07:00
.eslintrc.json !!! MASSIVE OVERHAUL !!! 2019-09-08 08:56:29 +07:00
.gitignore Updated 2019-09-17 11:13:41 +07:00
.stylelintignore Updated 2019-09-17 11:13:41 +07:00
.stylelintrc.json Updated 2019-10-06 05:20:59 +07:00
AUTHORS Updated 2019-09-12 14:44:31 +07:00
config.sample.js Extended configuration for virus scanning 2020-04-04 21:20:01 +07:00
Dockerfile update deps and add dockerfile 2018-03-01 22:03:47 +01:00
gulpfile.js Enabled verbose output for gulp linter tasks 2019-10-15 01:45:04 +07:00
LICENSE De loli-safe (#77) 2018-04-26 08:54:07 +02:00
logger.js Updated logger.js 2019-09-21 14:29:08 +07:00
lolisafe.js Updated all dependencies 2020-04-04 22:08:37 +07:00
nginx-ssl.sample.conf Merged changes from master 2018-06-06 08:51:53 +07:00
nginx.sample.conf Merged changes from master 2018-06-06 08:51:53 +07:00
package.json Updated all dependencies 2020-04-04 22:08:37 +07:00
README.md Bug fix 2019-10-21 17:49:52 +07:00
real-ip-from-cf Updated IP's 2018-04-01 23:51:25 -07:00
TODO.md Checked DMCA request logs from TODO list 2019-12-08 15:20:19 +07:00
yarn.lock Updated all dependencies 2020-04-04 22:08:37 +07:00

lolisafe, a small safe worth protecting

safe.fiery.me

GitHub license

safe.fiery.me

JavaScript Style Guide

This fork is the one being used at https://safe.fiery.me. If you are looking for the original, head to WeebDev/lolisafe.

If you want to use an existing lolisafe database with this fork, run node ./database/migration.js at least once to create the new columns introduced in this branch (don't forget to make a backup).

Configuration file of lolisafe, config.js, is also NOT fully compatible with this fork. There are some options that had been renamed and/or restructured. Please make sure your config matches the sample in config.sample.js before starting.

Running in production mode

  1. Ensure you have at least Node v8.0.0 installed (v10.x is recommended).
  2. Clone this repo.
  3. Copy config.sample.js as config.js.
  4. Modify port, domain and privacy options if desired.
  5. Run yarn install --production to install all production dependencies (Yes, use yarn).
  6. Run yarn start to start the service.

Default admin account:
Username: root
Password: changeme

You can also start it with yarn pm2 if you have PM2.

When running in production mode, the safe will use pre-built client-side CSS/JS files from dist directory, while the actual source codes are in src directory.

The pre-built files were processed with postcss-preset-env, cssnano, bublé, and terser.

Running in development mode

This fork has a separate development mode, with which client-side CSS/JS files in src directory will be automatically rebuilt using Gulp tasks.

  1. Follow step 1 to 4 from the production instructions above.
  2. Run yarn install to install all dependencies (including development ones).
  3. Run yarn develop to start the service in development mode.

You can configure the Gulp tasks through gulpfile.js file.

During development, the rebuilt files will be saved in dist-dev directory instead of dist directory. The service will also automatically serve the files from dist-dev directory instead. This is to avoid your IDE's Git from unnecessarily rebuilding diff of the modified files.

Once you feel like your modifications are ready for production usage, you can then run yarn build to build production-ready files that will actually go to dist directory.

Script for missing thumbnails

Thumbnails will not be automatically generated for existing files, that had been uploaded prior to enabling thumbnails in the config file.

To generate thumbnails for those files, you can use yarn thumbs.

$ yarn thumbs
$ node ./scripts/thumbs.js

Generate thumbnails.

Usage  :
node scripts/thumbs.js <mode=1|2|3> [force=0|1] [verbose=0|1] [cfcache=0|1]

mode   : 1 = images only, 2 = videos only, 3 = both images and videos
force  : 0 = no force (default), 1 = overwrite existing thumbnails
verbose: 0 = only print missing thumbs (default), 1 = print all
cfcache: 0 = do not clear cloudflare cache (default), 1 = clear cloudflare cache

For example, if you only want to generate thumbnails for image files without overwriting existing ones, you can run yarn thumbs 1.

Or if you want to generate thumbnails for both image and video files, while also overwriting existsing ones, you can run yarn thumbs 3 1.

ClamAV support

This fork has an optional virus scanning support using ClamAV, through clamdjs library.

It will scan new files right after they are uploaded. It will then print error messages to the uploaders (as in the virus names in ClamAV's databases) if the files are dirty.

On the down side, this will slow down uploads processing (as it has to wait for the scan results before responding the uploader's requests), however it's still highly recommended for public usage.

To enable this, make sure you have ClamAV daemon running, then fill in the daemon's IP and port into your config file.