{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":287710269,"defaultBranch":"master","name":"IOTstackBackup","ownerLogin":"Paraphraser","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-08-15T08:44:54.000Z","ownerAvatar":"https://github.com/avatars/u/34226495?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1630912043.477956","currentOid":""},"activityList":{"items":[{"before":"d1b732e8512d78b733bc619d108da4486180e5a2","after":"aab801cb87e704cf6ae5221c0bf03be5aed2775d","ref":"refs/heads/master","pushedAt":"2024-04-24T06:48:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"automatic support for backup and restore of continuous queries\n\nPreviously, the \"epilog\" file was the only mechanism for restoring user\ncredentials, grants and continuous queries.\n\nWith this update, the \"epilog\" is only needed for user credentials and\ngrants. The former can't be automated (because passwords can't be\nrecovered), and the latter can't reasonably be automated without the\nformer.\n\nContinuous queries are now extracted during `iotstack_backup_influxdb`\nand saved as `continuous-queries.influxql` (a plain text file). That\nfile becomes part of the `.tar`.\n\nIf `continuous-queries.influxql` is present after the `.tar` is\nunpacked, `iotstack_restore_influxdb` will pass the file to `influx`\nto recreate the continuous queries.\n\nNote that reloading of duplicate CQs via the epilog mechanism has no\neffect. However, because the epilog is loaded *after* the CQs, any\ndifferences in definition will be resolved in favour of the epilog.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"automatic support for backup and restore of continuous queries"}},{"before":"6944b4b4c536ef39bd5b3930de1825a03f015110","after":"d1b732e8512d78b733bc619d108da4486180e5a2","ref":"refs/heads/master","pushedAt":"2024-04-23T06:44:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"better support for domoticz backups\n\nAssumes IOTstack PRs [766](https://github.com/SensorsIot/IOTstack/pull/766)\n(master branch) and [767](https://github.com/SensorsIot/IOTstack/pull/767)\n(old-menu branch) have been applied. In particular, these change the\npersistent store location from:\n\n```\n~/IOTstack/volumes/domoticz/data\n```\n\nto:\n\n```\n~/IOTstack/volumes/domoticz\n```\n\nThe behavioural changes needed for `iotstack_backup_general` are to\nexclude these files:\n\n* `~/IOTstack/volumes/domoticz/domocookie.txt` (web cookies\n* `~/IOTstack/volumes/domoticz/domoticz.db-wal` (write-ahead log)\n* `~/IOTstack/volumes/domoticz/domoticz.db-shm` (index to write-ahead log)\n\nThose files are removed on normal container shutdown so their presence\non startup (ie after a restore) can be problematic.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"better support for domoticz backups"}},{"before":"9957a0ad244752e3a3cd654072233cce0be43a29","after":"6944b4b4c536ef39bd5b3930de1825a03f015110","ref":"refs/heads/master","pushedAt":"2024-04-16T00:01:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"include key files in /boot/firmware on Bookworm\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"include key files in /boot/firmware on Bookworm"}},{"before":"0c96eef1196545d040f18237faf142ce38b169b3","after":"9957a0ad244752e3a3cd654072233cce0be43a29","ref":"refs/heads/master","pushedAt":"2024-03-30T01:09:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"add support for wordpress container\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"add support for wordpress container"}},{"before":"19f5593bdc9bcf6604547ccaa6479e92bf184e0c","after":"0c96eef1196545d040f18237faf142ce38b169b3","ref":"refs/heads/master","pushedAt":"2024-02-10T01:40:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"fixes isStackUp() function to not fail when foreign containers are running\n\nAn exchange on Discord beginning at\n[this post](https://discord.com/channels/638610460567928832/638610461109256194/1204978271431819274)\nled to the discovery of a bug in the `isStackUp()` function.\n\nThe bug manifested when a container was running that had been started\nvia `docker run` (ie external to IOTstack).\n\nThe previous version of `isStackUp()` used `jq` to filter the\n`com.docker.compose.project` lines that matched the project\n(ie \"iotstack\" - all lower case). The problem is that containers\nthat are not part of any project return NULL so the original `jq`\n`contains(\\\"$1\\\")\"` filter will complain saying:\n\n```\njq: error (at :1): null (null) and string (\"iotstack\") cannot have their containment checked\n```\n\nThe previous version of `isStackUp()` piped the filtered output to\n`wc` for counting the hits. The revised version doesn't use `jq` to\ndo the filtering, instead using `grep` to do both the filtering and\ncounting.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"fixes isStackUp() function to not fail when foreign containers are ru…"}},{"before":"858a30f5c59a94b6c287c5e17cab8eac1ef01dea","after":"19f5593bdc9bcf6604547ccaa6479e92bf184e0c","ref":"refs/heads/master","pushedAt":"2024-01-09T10:14:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"harmonise shyaml install with PiBuilder\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"harmonise shyaml install with PiBuilder"}},{"before":"e7771211dafb7ec3fe1d8a39456965f8c8bea3f6","after":"858a30f5c59a94b6c287c5e17cab8eac1ef01dea","ref":"refs/heads/master","pushedAt":"2024-01-02T04:58:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"fix typo in argument + elaborate on purpose\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"fix typo in argument + elaborate on purpose"}},{"before":"dd57a8909f7633484483a248fe3d7b958b592157","after":"e7771211dafb7ec3fe1d8a39456965f8c8bea3f6","ref":"refs/heads/master","pushedAt":"2023-11-16T23:55:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"exclude motioneye video captures from backups\n\nDepending on configuration choices like frame rate, the ±time around a\nmotion trigger that you wish to preserve, and the numbers of days of\nmotion history you wish to preserve, the folder containing this video\ncan be **massive**. This change omits it by default.\n\nAlso elaborates on the reasons for other default exclusions.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"exclude motioneye video captures from backups"}},{"before":"178bec6fbc2bae7ea59f3d64c651f08d24a05864","after":"dd57a8909f7633484483a248fe3d7b958b592157","ref":"refs/heads/master","pushedAt":"2023-10-02T07:38:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"fix typo\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"fix typo"}},{"before":"0d6710a9fea77cc63d19fd416176117b63f7befc","after":"178bec6fbc2bae7ea59f3d64c651f08d24a05864","ref":"refs/heads/master","pushedAt":"2023-10-02T07:36:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"add migration assistant\n\nAdds a pair of scripts to support migration. Intended for use where\nthe OLD system has NOT been running IOTstackBackup while the NEW\nsystem was build with PiBuilder (which installs IOTstackBackup).\n\nIn essence, `iotstack_migration_backup` calls the same subordinate\nscripts as `iotstack_backup` but writes the results into the current\nworking directory with a runtag of \"migration\".\n\nSimilarly, `iotstack_migration_restore` calls the same subordinate\nscripts as `iotstack_restore` but expects to find the restore sources\n(the .tar, .tar.gz, etc) in the current working directory.\n\nThis approach follows on from a discussion with Andreas Spiess about\nmigrating from a Raspberry Pi to a Proxmox-based Debian guest.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"add migration assistant"}},{"before":"e28ddf648384c8840607a2d1f76789c8763047bf","after":"0d6710a9fea77cc63d19fd416176117b63f7befc","ref":"refs/heads/master","pushedAt":"2023-09-23T05:34:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"add support for LOCAL backup/restore\n\nThe `iotstack_backup` and `iotstack_restore` methods have assumed one\nof SCP, RSYNC or RCLONE has been configured prior to the run, such that\nthe backup can save the backup files off the local host, and the restore\ncan fetch the previously-saved backup files across the network.\n\nThis change adds support for a LOCAL method which only saves backup\nfiles in the local `~/IOTstack/backups` directory; and only searches\nthat directory on restore.\n\nAlthough it is not particularly safe to keep both the working versions\n(those in `~/IOTstack/volumes`) and backups on the same machine, the\nLOCAL method can be useful for someone who wants to use IOTstackBackup\nas part of a rebuild process - just get a local backup on the existing\nmachine, copy the files using some sensible method, move the files into\nplace on the rebuilt machine, run the restore.\n\nAnd then, hopefully, think about configuring IOTstackBackup properly...\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"add support for LOCAL backup/restore"}},{"before":"0ff4310af5799084ac20d791afa09b757625c0c2","after":"e28ddf648384c8840607a2d1f76789c8763047bf","ref":"refs/heads/master","pushedAt":"2023-08-22T05:42:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"fix typos, add sql indicators to code-fence blocks\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"fix typos, add sql indicators to code-fence blocks"}},{"before":"2d99cd2a9fa6be8d472e9d35947c22938d05b75f","after":"0ff4310af5799084ac20d791afa09b757625c0c2","ref":"refs/heads/master","pushedAt":"2023-08-22T00:48:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"add workaround for influxdb 1.8 continuous queries etc\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"add workaround for influxdb 1.8 continuous queries etc"}},{"before":"deb5a67204c52cff8a54a3c4819b7c9774158223","after":"2d99cd2a9fa6be8d472e9d35947c22938d05b75f","ref":"refs/heads/master","pushedAt":"2023-08-10T08:00:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"shyaml repair tip needs extra option on Bookworm\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"shyaml repair tip needs extra option on Bookworm"}},{"before":"9429b6a84882f235ee3022804f12ec28418a138d","after":"deb5a67204c52cff8a54a3c4819b7c9774158223","ref":"refs/heads/master","pushedAt":"2023-08-05T04:03:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"remove quotes from CLOUD_OPTIONS which is confusing scp\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"remove quotes from CLOUD_OPTIONS which is confusing scp"}},{"before":"e331dfdababe19729db417285f04b5153a584abb","after":"9429b6a84882f235ee3022804f12ec28418a138d","ref":"refs/heads/master","pushedAt":"2023-08-04T12:41:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"support passing arbitrary options to scp, rsync and rclone\n\n[Discord question](https://discord.com/channels/638610460567928832/638610461109256194/1136669857052631061)\nreported a problem apparently triggered by the transition from the\nSecure Copy Protocol (SCP) to the Secure File Transfer Protocol (SFTP).\nThe question noted the problem could be avoided by passing the `-O`\nflag to the `scp` command, which forces `scp` to use SCP rather than\nSFTP. The question asked whether this could be supported as a formal\noption?\n\nThis feature adds support for an optional `options:` clause in the\nconfiguration YAML. It is supported, independently, for both the backup\nand restore groupings. If present and non-empty, the associated value\nwill be passed to whichever principal command is being invoked (scp,\nrsync or rclone) by the backup/restore method.\n\nA commented-out `options: \"-O\"` has been added to the relevant\nconfiguration templates. The clauses are disabled by default because\nthe `-O` flag is not supported by all versions of `scp` and causes a\ncrash if it is passed when not supported. The feature must be enabled,\nby hand, case by case. No checking is done so the user must take\nresponsibility for ensuring that only syntactically and semantically\nvalid options are passed to the relevant principal command.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"support passing arbitrary options to scp, rsync and rclone"}},{"before":"8ab1d944008b20cea4af51853c679ba3bffbe4cc","after":"e331dfdababe19729db417285f04b5153a584abb","ref":"refs/heads/master","pushedAt":"2023-07-29T13:41:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"install shyaml locally\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"install shyaml locally"}},{"before":"54a31b2e7015942ce7c67523d140ba47831cf768","after":"8ab1d944008b20cea4af51853c679ba3bffbe4cc","ref":"refs/heads/master","pushedAt":"2023-07-29T13:38:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"fix rclone installation prompt\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"fix rclone installation prompt"}},{"before":"44f584fb18e30bd9e402d886c070518449ef740e","after":"54a31b2e7015942ce7c67523d140ba47831cf768","ref":"refs/heads/master","pushedAt":"2023-07-27T03:11:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"adapt to subtle change in how rclone parses remote paths\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"adapt to subtle change in how rclone parses remote paths"}},{"before":"57c8bb06403594ea49ab6084b9b4eed11a85720b","after":"44f584fb18e30bd9e402d886c070518449ef740e","ref":"refs/heads/master","pushedAt":"2023-04-10T02:30:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Paraphraser","name":"Phill","path":"/Paraphraser","primaryAvatarUrl":"https://github.com/avatars/u/34226495?s=80&v=4"},"commit":{"message":"only use unsigned exit codes in scripts\n\nI've had reports of `exit -1` being flagged by linters. This is a very\nold (bad) habit of mine that I need to get out of.\n\nSigned-off-by: Phill Kelley <34226495+Paraphraser@users.noreply.github.com>","shortMessageHtmlLink":"only use unsigned exit codes in scripts"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOM3BpwA","startCursor":null,"endCursor":null}},"title":"Activity · Paraphraser/IOTstackBackup"}