turbo-sync/README.md
Benjamin Toby 37a314273a Updates
2025-07-11 06:49:06 +01:00

2.4 KiB

Turbo Sync

A no-nonsense file/folder synchronization application

Requirements

Turbo sync requires node js and rsync

Installation

To install simply run:

npm install --registry="https://git.tben.me/api/packages/Moduletrace/npm/" -g turbosync

To update run:

npm update --registry="https://git.tben.me/api/packages/Moduletrace/npm/" -g turbosync

Usage

Turbo Sync requires a JSON file with the correct configuration. example:

turbosync ./project/sync/config.json

However if you have a file named turbosync.config.json in the working directory simply run:

turbosync

In this case Turbo Sync will automatically look for a file named turbosync.config.json in the working directory for config params.

Config File

The config file is a json file that contains all the information needed to run turbosync. Example:

[
    {
        "title": "Sync Files",
        "files": [
            "/home/user/file1.txt",
            "/home/user/file2.txt",
            {
                "path": "/home/user/file3",
                "user": "root",
                "host": "5.34.75.236",
                "ssh_key": "/home/user/.ssh/key"
            }
        ]
    },
    {
        "title": "Sync Folders",
        "options": {
            "delete": true
        },
        "folders": [
            "/home/user/folder1",
            "/home/user/folder2",
            {
                "path": "/home/user/folder3",
                "user": "user",
                "host": "5.39.67.76",
                "ssh_key": "/home/user/.ssh/key"
            }
        ]
    }
]

You can also use environment variables in the config file. Example:

[
    {
        "title": "Sync Folders",
        "folders": ["$FOLDER_1", "$FOLDER_2"]
    }
]

System Processes

Run Turbosync as a system process to keep it running in the background.

Systemd Config

Use this template to create a systemd service for turbosync.

[Unit]
Description=Service Name
After=network.target

[Service]
ExecStart=/home/user/.bun/bin/turbosync
Restart=always
RestartSec=5
Environment="PATH=/usr/bin:/home/user/.bun/bin:/home/user/.nvm/versions/node/v20.18.1/bin:${PATH}"
User=user
WorkingDirectory=/home/user/services/turbosync/service-name

[Install]
WantedBy=multi-user.target

After this you can run:

sudo systemctl daemon-reload
sudo systemctl enable turbosync-service-name
sudo systemctl start turbosync-service-name