Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weejewel/node-google-backup
A Command-Line Utility to automatically backup Google Mail, Calendar & Contacts to local files.
https://github.com/weejewel/node-google-backup
Last synced: 1 day ago
JSON representation
A Command-Line Utility to automatically backup Google Mail, Calendar & Contacts to local files.
- Host: GitHub
- URL: https://github.com/weejewel/node-google-backup
- Owner: WeeJeWel
- License: gpl-3.0
- Created: 2024-07-30T11:11:12.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-23T13:56:47.000Z (2 months ago)
- Last Synced: 2025-01-17T18:10:15.145Z (9 days ago)
- Language: JavaScript
- Size: 59.6 KB
- Stars: 397
- Watchers: 2
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Google Backup
[![NPM Version](https://img.shields.io/npm/v/google-backup)](https://npmjs.com/package/google-backup)
[![Sponsor](https://img.shields.io/github/sponsors/weejewel)](https://github.com/sponsors/WeeJeWel)
[![Build & Publish NPM Package](https://github.com/WeeJeWel/node-google-backup/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/WeeJeWel/node-google-backup/actions/workflows/npm-publish.yml)
[![Build & Publish Docker Image](https://github.com/WeeJeWel/node-google-backup/actions/workflows/ghcr-publish.yml/badge.svg)](https://github.com/WeeJeWel/node-google-backup/actions/workflows/ghcr-publish.yml)This module automatically downloads your Google Mail, Contacts & Calendar to separate files. It'll sync only new Mails, Contacts & Events.
This tool will output the following directory structure:
```
.
├── Contacts
│ └── *.vcf
├── Calendar
│ └── *.ical
├── By ID
│ └── *.eml
├── By Thread
│ └── <...>
│ └── *.eml
└── By Label
├── <...>
│ └── *.eml
└── [Gmail]
├── All Mail
│ └── *.eml
├── Sent
│ └── *.eml
└── <...>
└── *.eml
```> Note: All e-mail files are symlinked to 'By ID/*.eml'.
## Why?
Google makes great services, but there are many horror stories of people locked out of their accounts. So be safe, and keep your data backed up!
## Usage
### 1. Create a Google App Password
Create a Google App Password at [https://myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords).
### 2. Run
#### Node.js
If you have Node.js already installed, run:
```bash
$ npx -y google-backup \
--username "[email protected]" \
--password "abcd efgh ijkl mnop" \
--filepath "~/Backups/Google/"
```> Hint: You can schedule this in a cronjob for automated backups.
#### Docker
If you prefer Docker, this is an example how to run:
```bash
$ docker run \
--env GOOGLE_BACKUP_USERNAME="[email protected]" \
--env GOOGLE_BACKUP_PASSWORD="abcd efgh ijkl mnop" \
--env GOOGLE_BACKUP_FILEPATH="/backups" \
--volume="~/Backups/Google/:/backups/" \
ghcr.io/weejewel/google-backup
```## Also see
Looking to backup iCloud Drive in a similar way? See [iCloud Backup](https://github.com/WeeJeWel/node-icloud-backup).