A lightweight file manager with full ShareX support and more
Find a file
Sergio Brighenti 303e607f7d
Merge pull request #172 from SergiX44/revert-170-master
Revert "Translated using Weblate (French)"
2020-04-04 12:37:06 +02:00
.github Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
app Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
bin Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
bootstrap Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
install Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
logs Initial commit 2018-04-28 14:20:07 +02:00
resources Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
src Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
.gitignore Improved install wizard 2019-05-23 21:24:04 +02:00
.htaccess Added checks in the installer 2018-12-07 10:17:45 +01:00
.travis.yml Docker container (#9) 2018-10-14 00:24:28 +02:00
CHANGELOG.md Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#16) 2019-01-23 19:08:46 +01:00
composer.json Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
composer.lock Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
config.example.php Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
favicon.ico Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
Gruntfile.js Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
index.php Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
LICENSE Update LICENSE 2019-01-28 13:11:28 +01:00
nginx.conf Improved error handling 2019-02-10 13:48:20 +01:00
package-lock.json Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
package.json Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00
README.md Revert "Translated using Weblate (French)" 2020-04-04 12:36:52 +02:00

XBackBone 📤 Weblate Build Status Donations

XBackBone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. 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, past uploads history and search support.

Features

  • Supports every upload type from ShareX.
  • Low memory footprint.
  • Multiple backends support: Local storage, AWS S3, Google Cloud, Dropbox, FTP(s).
  • Code uploads syntax highlighting.
  • Video and audio uploads webplayer.
  • Files preview page.
  • Bootswatch themes support.
  • Responsive theme.
  • Multi language support.
  • User management, multi user features and roles.
  • Public and private uploads.
  • Web UI for each user.
  • Logging system.
  • Auto config generator for ShareX.
  • Share to Telegram.
  • Linux supported via a per-user custom generated script.
  • Direct downloads using curl or wget commands.
  • Direct images links support on Discord, Telegram, Facebook, etc.

How to Install

Prerequisites

XBackBone require PHP >= 7.1, with installed the required extensions:

  • php-sqlite3 for SQLite.
  • php-mysql for MariaDB/MySQL.
  • php-gd image manipualtion library.
  • php-json json file support.
  • php-intl internationalization functions.

Web installation

  • [release, stable] Download latest release from GitHub: Latest Release
  • Extract the release zip to your document root.
  • Navigate to the webspace root (ex. http://example.com/xbackbone, this should auto redirect your browser to the install page http://example.com/xbackbone/install/)
  • Follow the instructions.

Manual installation

  • [release, stable] Download latest release from GitHub: Latest Release
  • Extract the release zip to your document root.
  • Copy and edit the config file:
cp config.example.php config.php && nano config.php

By default, XBackBone will use Sqlite3 as DB engine, and a storage dir in the main 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 recommended).

return [
	'base_url' => 'https://example.com', // no trailing slash
	'storage' => [
		'driver' => 'local',
		'path' => 'storage',
	],
	'db' => [
		'connection' => 'sqlite', // current support for sqlite and mysql
		'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
  • Delete the /install directory.
  • Now just login with admin/admin, be sure to change these credentials after your first login.

How to update

Self-update (since v2.5) [BETA]:

  • Navigate to the system page as admin.
  • Click the check for update button, and finally the upgrade button.
  • Wait until the browser redirect to the install page.
  • Click the update button.
  • Done.

Manual update:

  • Download and extract the release zip to your document root, overwriting any file.
  • Navigate to the /install path (es: http://example.com/ -> http://example.com/install/)
  • Click the update button.
  • Done.

Docker deployment

Translations

You can help translating the project on Weblate.

Stato traduzione

Changing themes

XBackBone supports all bootswatch.com themes.

From the web UI:

  • Navigate to the web interface as admin -> System Menu -> Choose a theme from the dropdown.

From the CLI:

  • Run the command php bin/theme to see the available themes.
  • Use the same command with the argument name (php bin/theme <THEME-NAME>) to choose a theme.
  • If you want to revert back to the original bootstrap theme, run the command php bin/theme default.

Clear the browser cache once you have applied.

Change app install name

Add to the config.php file an array element like this:

return array(
    'app_name' => 'This line will overwrite "XBackBone"',
    ...
);

ShareX Configuration

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

Linux Support

Since ShareX does not support Linux, XBackBone can generate a script that allows you to share an item from any tool:

  • Login into your account
  • Navigate to your profile and download the Linux script for your account.
  • Place the script where you want (ex. in your user home: /home/<username>).
  • Add execution permissions (chmod +x xbackbone_uploader_XXX.sh)
  • Run the script for the first time to create the desktop entry: ./xbackbone_uploader_XXX.sh -desktop-entry.

Now, to upload a media, just use the right click on the file > "Open with ..." > search XBackBone Uploader (XXX) in the app list. You can use this feature in combination with tools like Flameshot, just use the "Open with ..." button once you have done the screenshot.

The script requires xclip, curl, and notify-send.

Note: XXX is the username of your XBackBone account.

Web server configuration 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!

You can find an example configuration nginx.conf in the project repository.

Maintenance Mode

Maintenance mode is automatically enabled during an upgrade using the upgrade manager. You can activate it manually by adding in the configuration file this:

return array(
    ...
    'maintenance' => true,
);

Animated Demo

img

License

This software is licensed under the GNU Affero General Public License v3.0, available in this repository. As a "copyright notice" it is sufficient to keep the small footer at the bottom of the page, also to help other people to learn about this project!

Built with