Simple and easy file synchronization and sharing platform, built to be compatible with Nextcloud Desktop and Mobile clients as well as allow full access using WebDAV.
SyncDrive supports file versioning, trash/undelete functionality and sharing of files with internal and external users.
- PHP 8.2+
imagick
extension- Any database supported by PDO
- a directory writable by the web server process as the
data/
subdirectory
- Set up a supported database and client
- Install a web server, such as nginx:
apt install nginx
- Install PHP and extensions:
apt install php-fpm
apt install php composer php-curl php-imagick php-mysql php-pgsql php-sqlite3 php-xml
(PHP depends on "a cgi backend", so make sure to installphp-fpm
first, or it will likely installapache2
) - When using the B2 backend, authorization caching via APCu is highly recommended:
apt install php-apcu
- Clone this repository somewhere:
git clone --recurse-submodules https://github.com/martok/syncdrive.git
- Set basic configuration in
data/config.user.php
- Install dependencies:
composer install --no-dev -o
- Set up your web server to serve the contents of the
public/
folder with proper rewrites- Example for nginx
- Example for PHP development server (Not for production use!)
- Check your setup by navigating to the server location. This will also initialize the database and auxiliary files.
- If everything seems to be in order, set the configuration value
site.maintenance
tofalse
to start running normally.
- Set the configuration value
site.maintenance
totrue
. - Update the code:
git fetch --all && git reset --hard origin/main
- Update submodules:
git submodule update --force
- Install dependencies:
composer install --no-dev -o
- Set the configuration value
site.maintenance
tofalse
. The next time the site is visited, all required migrations will be run.
Most operations are carried out via the web interface or by directly editing data/config.user.php
.
For some advanced operations, see sdctl.