{"id":26068277,"url":"https://github.com/actiago/restic2-s3-4windows","last_synced_at":"2026-05-06T13:07:40.024Z","repository":{"id":281227363,"uuid":"940936093","full_name":"actiago/restic2-s3-4windows","owner":"actiago","description":"Backup automatizado para  AWS S3 com Restic para Windows ","archived":false,"fork":false,"pushed_at":"2025-03-07T17:11:37.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T18:23:47.364Z","etag":null,"topics":["aws-s3","powershell","powershell-script","python3","restic","restic-backup","restic-script","s3","s3-bucket","windows","windows-11"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/actiago.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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":"2025-03-01T04:59:51.000Z","updated_at":"2025-03-07T17:14:53.000Z","dependencies_parsed_at":"2025-03-07T18:23:50.540Z","dependency_job_id":"e3d9e3c3-06b8-4cd5-b6a5-6d7788e5bc63","html_url":"https://github.com/actiago/restic2-s3-4windows","commit_stats":null,"previous_names":["actiago/restic2-s3-4windows"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actiago%2Frestic2-s3-4windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actiago%2Frestic2-s3-4windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actiago%2Frestic2-s3-4windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actiago%2Frestic2-s3-4windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actiago","download_url":"https://codeload.github.com/actiago/restic2-s3-4windows/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242615619,"owners_count":20158471,"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":["aws-s3","powershell","powershell-script","python3","restic","restic-backup","restic-script","s3","s3-bucket","windows","windows-11"],"created_at":"2025-03-08T22:22:29.997Z","updated_at":"2026-05-06T13:07:34.971Z","avatar_url":"https://github.com/actiago.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backup Automático com Restic e S3 no Windows\n\nEste projeto realiza backups automáticos de diretórios no Windows usando o [Restic](https://restic.net/) e armazena os backups em um bucket S3 da AWS. O script é agendado para execução diária, semanal e quinzenal, e inclui funcionalidades para verificação de integridade e remoção de snapshots antigos.\n\n---\n\n## **Funcionalidades**\n\n- **Backup Diário**: Realiza o backup dos diretórios configurados diariamente.\n- **Verificação Semanal**: Verifica a integridade do repositório de backups toda semana.\n- **Purge Quinzenal**: Remove snapshots antigos a cada 15 dias, de acordo com a política de retenção.\n- **Notificações**: Envia notificações via [ntfy.sh](https://ntfy.sh/) sobre o status das operações.\n- **Backup de Configuração**: Faz backup do arquivo de configuração (`config.yaml`) em um diretório especificado.\n\n---\n\n## **Requisitos**\n\n- **Python 3.x**: O script foi desenvolvido em Python.\n- [**Restic**](https://restic.net/): O executável do Restic deve estar instalado e configurado.\n- **Conta AWS**: Com permissões para acessar o S3 e o AWS Systems Manager Parameter Store.\n- **AWS Cli**: [Instalado e configurado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n- [**ntfy.sh**](https://ntfy.sh/): Para receber notificações (opcional).\n- **Powershell 7**: O script de instalação foi desenvolvido baseado na versão 7 do powershell\n\n---\n\n## **Configuração**\n\n### 1. **Instalação**\n\nAntes de qualquer passo, certifique-se de que tenha realizado os seguintes passos:\n\n1. Crie um repositório no AWS S3: [Passos neste documento](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#amazon-s3).\n   1. Lembre-se se salvar a senha criada para que seja adicionada ao parâmetro `restic_password` do Parameter Store.\n2. Tenha criado os parâmetros do AWS Parameter Store conforme descrito na sessão [**3. AWS Parameter Store**](#3-aws-parameter-store).\n3. Tenha o AWS Cli configurado em seu dispositivo\n\n**Para instalar, siga os passos**:\n\n1. Clone o repositório ou baixe os arquivos do projeto.\n2. Edite o arquivo config.yaml de acordo com sua preferência.\n3. Crie um ambiente virtual Python e instale as dependências:\n\n   ```powershell\n   python -m venv venv\n   venv\\Scripts\\activate\n   pip install -r requirements.txt\n   ```\n\n4. Execute o script de instalação para configurar as tarefas agendadas:\n\n    ```powershell\n    .\\install.ps1\n    ```\n\n## 2. **Arquivo de Configuração** (config.yaml)\n\nEdite o arquivo `config.yaml` para definir as configurações do projeto:\n\n```yaml\nrestic:\n  path: \"C:\\\\restic\\\\restic.exe\"  # Caminho para o executável do Restic\n  s3_bucket_url: \"s3.amazonaws.com/s3-bucket\"  # URL do bucket S3\n\nbackup:\n  sources:\n    - \"C:\\\\Users\\\\username\\\\Documents\"  # Diretórios para backup\n    - \"C:\\\\Users\\\\username\\\\Books\\\\myBook.pdf\" # Para backup de arquivo único\n  log_dir: \"C:\\\\Users\\\\username\\\\Temp\\\\logs\\\\restic_s3\\\\\"  # Diretório de logs\n\npurge:\n  keep_daily: 7  # Número de snapshots diários a manter\n  keep_weekly: 4  # Número de snapshots semanais a manter\n  keep_monthly: 12  # Número de snapshots mensais a manter\n\nntfy:\n  url: \"https://ntfy.sh\"  # URL do servidor ntfy\n  topic: \"my_ntfy_topic\"  # Tópico do ntfy para notificações\n\naws_parameter_store:\n  restic_password: \"restic_password\"  # Nome do parâmetro da senha do Restic\n  s3_credentials: \"restic_s3_credentials\"  # Nome do parâmetro das credenciais S3\n\nconfig_backup:\n  dir: \"C:\\\\Users\\\\username\\\\backup_win_s3\\\\config_backups\"  # Diretório para backup do config.yaml\n```\n\n## 3. **AWS Parameter Store**\n\nCertifique-se de que os seguintes parâmetros estão configurados no AWS Systems Manager Parameter Store:\n\n**restic_password:** Senha do repositório Restic.\n\n**restic_s3_credentials:** Credenciais da AWS no formato `AWS_ACCESS_KEY_ID:AWS_SECRET_ACCESS_KEY` .\n\n---\n\n## **Uso**\n\nUma vez instalado, o script pode ser executado manualmente com os seguintes comandos:\n\nPrimeiramente, ative o ambiente com:\n\n```powershell\n   C:\\Users\\username\\backup_win_s3\\venv\\Scripts\\Activate.ps1\n```\n\nEm seguida:\n\n- **backup**: Realiza o backup dos diretórios configurados\n\n```powershell\n   \u0026 C:\\Users\\username\\backup_win_s3\\venv\\Scripts\\python.exe C:\\Users\\username\\backup_win_s3\\backup_restic.py backup\n```\n\n- **Check**: Verifica a integridade do repositório.\n\n```powershell\n   \u0026 C:\\Users\\username\\backup_win_s3\\venv\\Scripts\\python.exe C:\\Users\\username\\backup_win_s3\\backup_restic.py check\n```\n\n- **Purge**: Remove snapshots antigos de acordo com a política de retenção.\n\n```powershell\n   \u0026 C:\\Users\\username\\backup_win_s3\\venv\\Scripts\\python.exe C:\\Users\\username\\backup_win_s3\\backup_restic.py purge\n```\n\n- **Backup Config**: Faz backup do arquivo de configuração (config.yaml).\n\n```powershell\n   \u0026 C:\\Users\\username\\backup_win_s3\\venv\\Scripts\\python.exe C:\\Users\\username\\backup_win_s3\\backup_restic.py backup_config\n```\n\n## Tarefas Agendadas\n\nO script de instalação (install.ps1) configura as seguintes tarefas agendadas:\n\n1. **Backup Diário**: Executa o backup diariamente no horário especificado.\n2. **Verificação Semanal**: Verifica a integridade do repositório toda segunda-feira às 2:00 AM.\n3. **Purge Quinzenal**: Remove snapshots antigos a cada 15 dias, alternando entre segundas e quintas-feiras às 3:00 AM.\n\n## Notificações\n\nO script envia notificações via ntfy.sh sobre o status das operações. Certifique-se de configurar o tópico no arquivo `config.yaml`.\n\n## Logs\nOs logs das operações são salvos no diretório especificado em config.yaml (campo log_dir). Cada tipo de operação (backup, check, purge) tem seu próprio arquivo de log:\n\n- backup.log\n- check.log\n- purge.log\n\n## Contribuição\nSe você quiser contribuir para este projeto, siga estas etapas:\n\n1. Faça um fork do repositório.\n2. Crie uma branch para sua feature (git checkout -b feature/nova-feature).\n3. Commit suas mudanças (git commit -m 'Adicionando nova feature').\n4. Faça push para a branch (git push origin feature/nova-feature).\n5. Abra um pull request.\n\n## Licença\n\nEste projeto está licenciado sob a [MIT License](LICENSE).\n\n## Versão\n\n1.0.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factiago%2Frestic2-s3-4windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factiago%2Frestic2-s3-4windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factiago%2Frestic2-s3-4windows/lists"}