{"id":15517033,"url":"https://github.com/deric/puppet-pgbackrest","last_synced_at":"2025-04-04T10:28:28.411Z","repository":{"id":136386525,"uuid":"580432786","full_name":"deric/puppet-pgbackrest","owner":"deric","description":"Module for managing PostgreSQL backups using pgBackRest","archived":false,"fork":false,"pushed_at":"2025-01-17T12:40:29.000Z","size":157,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-09T20:42:31.437Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deric.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"2022-12-20T14:49:43.000Z","updated_at":"2024-11-22T17:16:03.000Z","dependencies_parsed_at":"2024-06-26T16:57:27.469Z","dependency_job_id":"23219d16-3c20-44b9-bf66-bb098ee83d21","html_url":"https://github.com/deric/puppet-pgbackrest","commit_stats":{"total_commits":52,"total_committers":1,"mean_commits":52.0,"dds":0.0,"last_synced_commit":"30c519cf63f3f426e30443a00bdeb29a96dbbc9d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-pgbackrest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-pgbackrest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-pgbackrest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-pgbackrest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deric","download_url":"https://codeload.github.com/deric/puppet-pgbackrest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247159648,"owners_count":20893665,"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":[],"created_at":"2024-10-02T10:10:57.844Z","updated_at":"2025-04-04T10:28:28.390Z","avatar_url":"https://github.com/deric.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pgbackrest\n\nPuppet module for managing PostgreSQL backups using `pgBackRest`.\n\n## Basic Usage\n\nOn database server\n```puppet\ninclude pgbackrest::stanza\n```\nconfigure backups schedule:\n\n```yaml\npgbackrest::stanza::backups:\n  eu-west: # host_group name\n    incr:\n      hour: 3\n      minute: 50\n      weekday: [0-1,3-6] # every day except Tuesday\n    full:\n      hour: 1\n      minute: 10\n      weekday: 2 # Tuesday full backup\n```\n\nOn storage (backup) server:\n\n```puppet\ninclude pgbackrest::repository\n```\n\nrepository config:\n```yaml\npgbackrest::repository::config:\n  global:\n    repo1-path: /backup/pgbackrest\n    repo1-retention-full: 1\n    log-level-console: info\n    log-level-file: detail\n    start-fast: 'y'\n    delta: 'y'\n    backup-standby: 'y'\n    archive-timeout: 3600\n  global:archive-push:\n    compress-level: 3\n    compress-type: lz4\n```\n\n## How Does This Work\n\n### pgbackrest::stanza\n\nShould be included on a database server. Exported statements are not executed on `stanza` (database) server, but will be collected by an assigned `repository` with matching `host_group` (if exists).\n\n- **Install** `pgbackrest` package\n- **Generate** ssh keys (if given ssh key doesn't exist) and export public ssh key (only if `pgbackrest::manage_ssh_keys: true`), default: `false`\n- Export host ssh key (only if `pgbackrest::manage_host_keys: true`), default: `true`\n- **Create** a PostgreSQL user `pgbackrest::db_user` and database `pgbackrest::db_name` with randomly generated password, default user: `backup` (when `pgbackrest::stanza::manage_dbuser: true`)\n- Export username and password for `.pgpass` file\n- **Grant** `pgbackrest::db_user` necessary permissions for executing `pg_basebackup` and allow connection from repository server (when `pgbackrest::manage_hba: true`)\n- Export `pgbackrest stanza-create` command\n- Export cron configs for backup jobs\n- **Import** host ssh key of `repository` server matching the `host_group` (if `pgbackrest::manage_host_keys: true`)\n- **Import** public ssh key of `repository` server matching the `host_group`\n\n### pgbackrest::repository\n\nRepository is a server where backups are stored (though could be located on the same server).\n\n- **Install** `pgbackrest` package\n- **Generate** ssh keys (if given ssh key doesn't exist) and export public ssh key (only if `pgbackrest::manage_ssh_keys: true`), default: `false`\n- **Create** local unix account `pgbackrest::backup_user`\n- **Create** directories for storing backups, logs, temporary data\n\n\n## Common params\n\n- `pgbackrest::backup_dir` directory where backups will be stored\n\n## Caveats\n\n- This module does NOT manage firewall rules\n- At least two Puppet runs are required to apply all configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-pgbackrest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderic%2Fpuppet-pgbackrest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-pgbackrest/lists"}