A lightweight file manager with full ShareX support and more
Find a file
Pietro Marangon 3cb4ca790c Fix & improvements (#2)
* New .gitignore
Added violinist.io configuration
Start with CI
Started moving CSS/JS to NPM

* Fix & improvements
Security improves (SHA256 instead of MD5) and new PHP7 random function
Security fix admin check from database instead of session
Security fix user active for every page that require login
UX fix admin cannot demote himself
Added Gruntfile.js
Updated composer.json dependency
Addeded PHP >=7.1 to composer.json
Moved static file to src

* Results of .gitignore "static/"

* Fix migration for admin user_code

* Travis test for grunt (JS)

* Changed user_code generation method
Updated Travis test
2018-06-02 22:32:14 +02:00
app Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
bin Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
bootstrap Initial commit 2018-04-28 14:20:07 +02:00
logs Initial commit 2018-04-28 14:20:07 +02:00
resources Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
src Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
.gitignore Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
.htaccess Initial commit 2018-04-28 14:20:07 +02:00
.travis.yml Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
CHANGELOG.md Updated Readme 2018-05-01 14:54:09 +02:00
composer.json Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
composer.lock removed http2push from dashboard 2018-05-01 14:44:21 +02:00
config.example.php Initial commit 2018-04-28 14:20:07 +02:00
Gruntfile.js Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
index.php Initial commit 2018-04-28 14:20:07 +02:00
LICENSE Initial commit 2018-04-28 14:16:47 +02:00
package.json Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
README.md Fix & improvements (#2) 2018-06-02 22:32:14 +02:00
yarn.lock Fix & improvements (#2) 2018-06-02 22:32:14 +02:00

XBackBone 📤 Violinist enabled Build Status

XBackBone is a simple, self-hosted, lightweight PHP backend for the instant sharing tool ShareX. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management and past uploads history.

Features

  • Supports every upload type from ShareX.
  • User management, multi user features.
  • Public and private uploads.
  • Web UI for each user.
  • Logging system.
  • Auto config generator for ShareX.

How to Install

XBackBone require PHP >= 7.1, the composer package manager and writable storage path:

git clone http://github.com/SergiX44/XBackBone .
  • Run a composer from your shell:
composer install --no-dev
  • Setup the config file:
cp config.example.php config.php

By default, XBackBone will use Sqlite as DB engine, and a storage dir in the current directory. You can leave these settings unchanged for a simple personal installation. You must set the base_url, or remove it for get dynamically the url from request (not raccomanded).

return [
	'base_url' => 'https://myaswesomedomain.com', // no trailing slash
	'storage_dir' => 'storage',
	'db' => [
		'connection' => 'sqlite',
		'dsn' => 'resources/database/xbackbone.db',
		'username' => null, // username and password not needed for sqlite
		'password' => null,
	]
];
  • Finally, run the migrate script to setup the database
php bin/migrate --install
  • Now just login with admin/admin, be sure to change these credentials after your first login.

ShareX Configuration

Once you are logged in, just go in your profile settings and download the ShareX config file for your account.

Notes

If you do not use Apache, or the Apache .htaccess is not enabled, set your web server so that the static/ folder is the only one accessible from the outside, otherwise even private uploads and logs will be accessible! The NGINX configuration should be something like this:

# nginx configuration

location /app {
  return 403;
}

location /bin {
  return 403;
}

location /bootstrap {
  return 403;
}

location /resources {
  return 403;
}

location /storage {
  return 403;
}

location /vendor {
  return 403;
}

location /logs {
  return 403;
}

autoindex off;

location / {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.php break;
  }
}

Built with