{"id":13535907,"url":"https://github.com/ducalex/prestic","last_synced_at":"2025-05-06T19:07:30.484Z","repository":{"id":55373111,"uuid":"304782608","full_name":"ducalex/prestic","owner":"ducalex","description":"Prestic is a profile manager and task scheduler for restic","archived":false,"fork":false,"pushed_at":"2023-03-28T04:35:22.000Z","size":150,"stargazers_count":14,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-03T00:32:53.557Z","etag":null,"topics":["backup","gui","python","restic"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ducalex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-17T02:39:25.000Z","updated_at":"2024-09-25T11:44:36.000Z","dependencies_parsed_at":"2024-11-03T00:31:41.204Z","dependency_job_id":"696b71cc-4ee0-46c3-bd7c-c24e471e941c","html_url":"https://github.com/ducalex/prestic","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ducalex%2Fprestic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ducalex%2Fprestic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ducalex%2Fprestic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ducalex%2Fprestic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ducalex","download_url":"https://codeload.github.com/ducalex/prestic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227254017,"owners_count":17754198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","gui","python","restic"],"created_at":"2024-08-01T09:00:31.707Z","updated_at":"2024-11-30T02:16:19.644Z","avatar_url":"https://github.com/ducalex.png","language":"Python","funding_links":[],"categories":["Archived / Inactive"],"sub_categories":[],"readme":"# Prestic\nPrestic is a profile manager and task scheduler for [restic](https://restic.net/). It works on all\noperating systems supported by restic but GUI and keyring functionality may vary by platform.\n\n![Screenshot](https://github.com/ducalex/prestic/raw/master/screenshot.png)\n\n\n# Installation\n\nPython 3.6+ and [pip](https://pip.pypa.io/en/stable/installing/) are required. Then:\n- `pip install http://github.com/ducalex/prestic/tarball/master#egg=prestic`\n\n_Note: On Ubuntu you need to [add ~/.local/bin to your path](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562)\n if needed and run `sudo apt install gir1.2-appindicator3-0.1` for the gui to work._\n\n_Note: If you prefer you can also directly download `prestic.py` and put it somewhere in your PATH\n (it is standalone)._\n\n\n### Start Prestic on login\n- Windows: Put a link to `prestic-gui.exe` in your `Startup` folder (run `where prestic-gui` to locate it if needed)\n- Linux: Add command `prestic --gui` to your startup applications\n\n\n# Usage\n- Run profile-defined default command: `prestic -p profilename`\n- Run any restic command on profile: `prestic -p profilename snapshots`\n- Start gui and scheduler: `prestic --gui`\n- Start scheduler only: `prestic --service`\n\n## Keyring\nThe keyring allows you to let your operating system store repository passwords encrypted in your\nuser profile. This is the best password method if it is available to you.\n\nTo use, add `password-keyring = \u003cname\u003e` to your prestic profile, where `\u003cname\u003e` can be anything you\nwant to identify that password. Then to set a password run the following command:\n`prestic --keyring set \u003cname\u003e`.\n\n\n# Configuration file\nConfiguration is stored in $HOME/.prestic/config.ini. The file consists of profile blocks. You can use a\nsingle block or split in multiple blocks through inheritance. For example one profile could contain\nthe repository configuration and then another one inherits from it and adds the backup command.\n\nLists can span multiple lines, as long as they are indented deeper than the first line of the value.\n\n````ini\n# default is the profile used when no -p is given (it is optional)\n[default]\ninherit = my-profile # A single inherit can be used as an alias\n\n[my-profile]\n# (string) human-redable description:\ndescription =\n# (list) inherit options from other profiles\ninherit =\n# (string) Run this profile periodically (will do nothing if command not set)\n# Format is: `daily at 23:59` or `monthly at 23:59` or `mon,tue,wed at 23:59`. Hourly is also possible: `daily at *:30`\nschedule =\n# (bool) controls non-essential notifications (errors are always shown)\nnotifications = on\n# (string) sets cpu priority (idle, low, normal, high)\ncpu-priority =\n# (string) sets disk io priority (idle, low, normal, high)\nio-priority =\n# (int) Time to wait and retry if the repository is locked (seconds)\nwait-for-lock =\n\n# (string) repository uri\nrepository = sftp:user@domain:folder\n# (string) repository password (plain text)\npassword =\n# (string) repository password (retrieve from file)\npassword-file =\n# (string) repository password (retrieve from command)\npassword-command =\n# (string) repository password (retrieve from OS keyring/locker)\npassword-keyring =\n# (int) limits downloads to a maximum rate in KiB/s\nlimit-download =\n# (int) limits uploads to a maximum rate in KiB/s\nlimit-upload =\n# (string) path to restic executable (you may add global flags too)\nexecutable = restic\n# (string|list) default restic command to execute (if none provided):\ncommand =\n# (list) restic arguments for default command\nargs =\n# (int) be verbose (specify level 0-3)\nverbose =\n# (regex) ignore lines matching this expression when writing log files\nlog-filter = ^unchanged\\s/\n# (string) set the cache directory\ncache-dir =\n\n# (string) environment variables can be set:\nenv.AWS_ACCESS_KEY_ID = VALUE\nenv.AWS_SECRET_ACCESS_KEY = VALUE\n\n# (string) other flags can be set:\nflag.json = true\nflag.new-restic-flag = value\n\n````\n\n### Simple configuration example\n````ini\n[my-repo]\ndescription = USB Storage\nrepository = /media/backup\npassword-keyring = my-repo\n\n[my-backup]\ndescription = Backup to USB Storage\ninherit = my-repo\nschedule = daily at 12:00\ncommand = backup\nargs =\n    /home/user/folder1\n    /home/user/folder2\n    --iexclude=\"*.lock\"\n\n# Where the my-backup profile will run daily at 12:00\n# You can also issue manual commands:\n# prestic -p my-backup\n# prestic -p my-repo list snapshots\n# prestic -p my-backup list snapshots # this overrides my-backup's command/args but not global-flags\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fducalex%2Fprestic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fducalex%2Fprestic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fducalex%2Fprestic/lists"}