Duplicacy Web Edition 0.1 Beta

It is finally here. Currently there are still a few features missing, like system tray icon, email notifications. But it is already working well.

https://acrosync.com/duplicacy-web/duplicacy_web_osx_x64_0.1.0
https://acrosync.com/duplicacy-web/duplicacy_web_linux_x64_0.1.0
https://acrosync.com/duplicacy-web/duplicacy_web_win_x64_0.1.0

Run the downloaded executable and then point the browser to http://127.0.0.1:8080/dashboard. You can change the listening address in the settings page.

The workflow to run a backup is as follows: create a storage first, then create a backup with the destination storage, and then create a schedule and add a backup job to the schedule.

You can also add copy, check, and prune jobs to a schedule. To restore, click the download button on the top right side of each backup panel.

Please share your feedback here. This is an early beta release and your input will greatly shape how the final version will look like!

13 Likes

Quick questionā€¦ I am currently running via command line. Will opening the GUI mess up my command line operations at all (by way of .duplicacy) or anything?

I had a little play around with the Linux build last night. First thoughts:

  • Nice work! Itā€™s looking great!
  • I had some problems testing a restore. It gave an ā€˜ERROR RESTORE_CHOWN Failed to change uid or gidā€™ error and then exited. Is root required in order to run it? Could such an error be made non-fatal?
  • The UI seemed to have quite a few third party resources (Cloudflare, Google APIs, jquery etc). Does this mean an Internet connection is required in order to use it? Would it be possible to bundle such resources with the app itself?
  • Some mouse-over text for the icons explaining what they do would be nice. It took me a while to find the ā€˜restoreā€™ icon and understand what it meant.
  • After itā€™s opening it in the browser, returning to http://127.0.0.1:8080 throws a 404 error
1 Like

This looks great. Iā€™m excited for this to be released so I can manage my (linux) server backups more easily.

For reference, Iā€™m testing the osx executable on a laptop that doesnā€™t currently backup anything directly using duplicacy.

  1. If the default listening port (8080) is already taken. There doesnā€™t seem to be an error output and thereā€™s no obvious way to change the listening port outside of the web GUI.
  2. The Revisions and Chunks tabs in the Storages section donā€™t seem to work. The check job I ran through the GUI found 52 revisions and 277301 chunks, so Iā€™m not sure why theyā€™re not showing anything ā€“ unless itā€™s only supposed to show info from repositories existing on the local machine (there currently arenā€™t any).
  3. When selecting a new directory to backup in the ā€œAdd a new backupā€ dialog, the directory tree isnā€™t navigable using the folder icon (ā€œSelect the local directory to be backed upā€ dialog box). Clicking on a directory doesnā€™t allow you to navigate to sub-directories to back up individually.

It shouldnā€™t. The web GUI runs the CLI from its own repository directory (which defaults to ~/.duplicacy/repositories) and then use the repository option in the preferences file to point to the directory to be backed up.

My first thought was that you can use the -ignore-owner option but then realized that there isnā€™t a way to specify extra options for the restore command. Iā€™ll add one in the next update.

It is possible but there are maybe other things that require an Internet connection. The plan for this GUI is make it a centralized management portal capable of running backups for other machines remotely so I think have an Internet connection is a reason prerequisite.

Iā€™ll try to add some tooltips.

I should have it redirected to http://127.0.0.1:8080/dashboard.

In my test it shows Can't start the web server: listen tcp :8080: bind: address already in use.

You can manually create a json file named settings.json with the following content:

{
    "listening_address": ":8000",
    "temporary_directory": "/tmp/duplicacy/repositories",
    "log_directory": "/tmp/duplicacy/logs"
}

You can check the page source and search for Chartist.Line('#storageChartRevision', where storage is the name of the storage. See if there is any data for this line.

I donā€™t know that is wrong here. You can try turning on the debug mode (F12 in Chrome for example) and see if there is any error messages displayed in the console.

This might be user error on my part or an issue with my testing methodology; I had an IPFS daemon running which uses 8080 for the gateway port, and didnā€™t get the error before. However, I just got the expected output too while trying to start up duplicate web UI executables, so I probably did something wrong before.

I think I fixed this by removing the storage and recreating it without a space in the name (from ā€œb2 duplicacyā€ to ā€œb2storageā€). Perhaps storage names with spaces should simply be disallowed during storage creation (?).

This was throwing some javascript errors that pointed towards the space being a problem, so I tried removing the space before checking the requested line. So if the space thing shouldnā€™t have been an issue, I can recreate it and grab the requested info along with the js errors.

This one doesnā€™t throw any errors in the console as far as I can tell. In case it helps, hereā€™s a gif of the behavior. I tried running the executable as root too in case it was a permissions thing and encountered the same behavior.

FWIW I also tried using the F12 debugger to pause on all exceptions (including caught ones) and didnā€™t seem to hit anything while I was doing this.

It is hard to see where the cursor is in your gif, but did you click the folder icon next to the directory name? Clicking on the directory name will only select the directory (thus the select button turns enabled).

The Windows version is now available. I added the link to the first post.

3 Likes

Comments so far, fwiw:

  1. 8080 is way too common. Please default to different port that likely nobody else is using.
  2. MacOS: SFTP Storage, path to key file shall understand ~
  3. MacOS: SFTP Storage, path to key file browser shall show hidden files
  4. After adding storage, the message ā€œRun a check job to retrieve statsā€ appears but it is not indicated in any way how exactly this needs to be accomplished.
  5. Include/Exclude patten editor shall allow to add a list of exclusions, not one-by-one. Use case - copy-paste exclusion list from the existing duplicacy
  6. Restore button is way too small and the icon misleading; in addition it is dangerously close to the button that deletes the backup task. Those are opposite actions and shall not be physically close.
  7. It shall be possible to edit storage after creating it.
  8. Pressing teal triangle in the schedules section after creating a backup schedule for SFTP target results in nothing - text changes to Running briefly and then to ā€œnext run in ā€¦ā€. The backup seem to fail, but nothing in the logs
  9. Run backup button in the schedules section is way too small
  10. It shall be possible to run backup from the Backup sections, without the need to create a schedule.
  11. [bug] when adding second job to the schedule the first job disappeared. (had backup job, added check job, the backup job disappeared)

I do realized that itā€™s way too early, but just leaving this here in case something of this is not yet known.
Ok, Iā€™ll show myself out now.

Could you please put a .exe at the end of the windows executable for us, windows peasants? :joy:

image

Sidenote: itā€™s interesting to see that there are more mac users than windows xD.

2 Likes

Hello, Iā€™m blown away with new web gui, finally we can create super useful schedules with check and copy - I really love it
My findings:

  1. The Revisions and Chunks tabs in the Storages section dont work if storage name have space in name. I have to delete and recreate storage to make it work.

  2. GUI ux is bit confusing. For example plus (+) button for Backups is on the top of the page. For Storage and Schedules, plus button is on bottom of the page.

  3. Clickable status on Schedule page for every job is not intuitive - it does not seem clickable. Maybe there is a need for a hover effect (like for Options when if i hover mouse on it, itā€™s change)
    image

  4. I cant write number is schedule time - i can only select it by arrows - but thatā€™s a detail

  5. Schedules names are not displayed on dashboard page
    image

@saspus

Itā€™s possible to create schedule and disable all days - I really like that.

A post was merged into an existing topic: Screenshots of the new web-based GUI

I think Iā€™m not realizing something obvious ā€¦

I canā€™t go through the login screen, either with a new password or even without a password. The ā€œsetā€ button does not become enabled:

Capture-1

@towerbr You have to try longer password :slight_smile: Eight-character password works for me.

2 Likes

Thanks! Worked!

Another important location for a mouse over hintā€¦

I added without any problems one of my storages in B2:
cap1

But:

cap

I havenā€™t found how to perform a check, or even schedule a job with this command, only:
sche

Ah, I understood now, I must create a job and configure the job commands ā€¦

  • It would be nice to be able to manually execute the commands without having to setup a scheduled job.

I agree!

  • Another point: you can not edit the commands that are part of a schedule, just delete them (although you can click ā€œoptionsā€ and edit them).

I thought that by running check, it would recover the size of all backup revisions (something equivalent to the tabular output), and not only the last one:

  • Needs some fine adjustments in the size of the squares above, texts are ā€œcoming outā€, probably an automatic adjustment of object size.

  • The log files should have in the name not only the command and the date, but also the name of the storage.

Nice work so far!

I think I must be doing something really dumb but Iā€™m trying the Windows version and I keep getting ā€œinvalid tokenā€ when trying to set the initial password. Any ideas?