136 lines
6.7 KiB
Markdown
136 lines
6.7 KiB
Markdown
# Backup my way
|
|
|
|
First thing first, I want to list my own devices, which I have through the years:
|
|
|
|
- ~~Laptop Samsung NP300E4Z-S06VN (Old laptop which I give to my mom)~~
|
|
- ~~[Laptop Dell Inspiron 15 3567](https://www.dell.com/support/home/en-vn/product-support/product/inspiron-15-3567-laptop/drivers) [LVFS](https://fwupd.org/lvfs/devices/com.dell.uefi1d4362ca.firmware) (My mom bought it for me when I go to college, I give it to my mom afterward)~~
|
|
- ~~[Laptop Acer Nitro AN515-45](https://www.acer.com/ac/en/US/content/support-product/8841) (Gaming laptop which I buy for gaming, I give it to my sister)~~
|
|
- MacBook Pro M1 2020 (My company laptop)
|
|
- ~~Phone [LG G3 D851 T-Mobile](https://forum.xda-developers.com/c/lg-g3.3147/) (Bought long time ago, now is a brick)~~
|
|
- ~~Phone [Xiaomi Redmi 6A](https://forum.xda-developers.com/c/xiaomi-redmi-6a.7881/) (I give it to my sister too)~~
|
|
- Phone [Xiaomi Poco X3 NFC](https://forum.xda-developers.com/c/xiaomi-poco-x3-nfc.11523/) (Primary phone which I use daily)
|
|
|
|
App/Service I use daily:
|
|
|
|
- [Bitwarden](https://bitwarden.com/): password manager
|
|
- [Aegis Authenticator](https://getaegis.app/): 2FA manager
|
|
- [Rclone](https://rclone.org/): sync data to cloud
|
|
- [restic](https://restic.net/): backup data
|
|
- [Tailscale](https://tailscale.com/)
|
|
- GitHub/GitLab
|
|
- Google Keep/Notion
|
|
- Google Drive (currently use 200GB plan)
|
|
- GMail < [SimpleLogin](https://simplelogin.io/) < Proton Mail
|
|
|
|
The purpose is that I want my data to be safe, secure, and can be easily recovered if I lost some devices;
|
|
or in the worst situation, I lost all.
|
|
Because you know, it is hard to guess what is waiting for us in the future.
|
|
|
|
There are 2 sections which I want to share, the first is **How to backup**, the second is **Recover strategy**.
|
|
|
|
## How to backup
|
|
|
|
Before I talk about backup, I want to talk about data.
|
|
In specifically, which data should I backup?
|
|
|
|
I use Arch Linux and macOS, primarily work in the terminal so I have too many dotfiles, for example, `~/.config/nvim/init.lua`.
|
|
Each time I reinstall Arch Linux (I like it a lot), I need to reconfigure all the settings, and it is time-consuming.
|
|
|
|
So for the DE and UI settings, I keep it as default as possible, unless it's getting in my way, I leave the default setting there and forget about it.
|
|
The others are dotfiles, which I write my own [dotfiles tool](https://github.com/haunt98/dotfiles) to backup and reconfigure easily and quickly.
|
|
Also, I know that installing Arch Linux is not easy, despite I install it too many times (Like thousand times since I was in high school).
|
|
Not because it is hard, but as life goes on, the [official install guide](https://wiki.archlinux.org/title/installation_guide) keeps getting new update and covering too many cases for my own personal use, so I write my own [guide](https://github.com/haunt98/til/blob/main/install-archlinux.md) to quickly capture what I need to do.
|
|
I back up all my dotfiles in GitHub and GitLab as I trust them both.
|
|
Also as I travel the Internet, I discover [Codeberg](https://codeberg.org/), [Treehouse](https://gitea.treehouse.systems/) and use them as another backup for git repo.
|
|
|
|
So that is my dotfiles, for my regular data, like Wallpaper or Books, Images, I use Google Drive (Actually I pay for it).
|
|
But the step: open the webpage, click the upload button and choose files seems boring and time-consuming.
|
|
So I use Rclone, it supports Google Drive, One Drive and many providers but I only use Google Drive for now.
|
|
The commands are simple:
|
|
|
|
```sh
|
|
# Sync from local to remote
|
|
rclone sync MyBooks remote:MyBooks -P --exclude .DS_Store
|
|
|
|
# Sync from remote to local
|
|
rclone sync remote:MyBooks MyBooks -P --exclude .DS_Store
|
|
```
|
|
|
|
Before you use Rclone to sync to Google Drive, you should read [Google Drive rclone configuration](https://rclone.org/drive/) first.
|
|
|
|
For private data, I use restic which use Rclone as backend:
|
|
|
|
```sh
|
|
# Init
|
|
restic -r rclone:remote:PrivateData init
|
|
|
|
# Backup
|
|
restic -r rclone:remote:PrivateData backup PrivateData
|
|
|
|
# Cleanup old backups
|
|
restic -r rclone:remote:PrivateData forget --keep-last 1 --prune
|
|
|
|
# Restore
|
|
restic -r rclone:remote:PrivateData restore latest --target ~
|
|
```
|
|
|
|
The next data is my passwords and my OTPs.
|
|
These are the things which I'm scare to lose the most.
|
|
First thing first, I enable 2-Step Verification for all of my important accounts, should use both OTP and phone method.
|
|
|
|
I use Bitwarden for passwords (That is a long story, coming from Google Password manager to Firefox Lockwise and then settle down with Bitwarden) and Aegis for OTPs.
|
|
The reason I choose Aegis, not Authy (I use Authy for so long but Aegis is definitely better) is because Aegis allows me to extract all the OTPs to a single file (Can be encrypted), which I use to transfer or backup easily.
|
|
|
|
As long as Bitwarden provides free passwords stored, I use all of its apps, extensions so that I can easily sync passwords between laptops and phones.
|
|
The thing I need to remember is the master password of Bitwarden in my head.
|
|
|
|
With Aegis, I export the data, then:
|
|
|
|
- Sync it to Google Drive
|
|
- Store it locally in my phone.
|
|
|
|
The main problem here is the OTP, I can not store all of my OTPs in the cloud completely.
|
|
Because if I want to access my OTPs in the cloud, I should log in, and then input my OTP, this is a loop, my friends.
|
|
|
|
### Backup work related data
|
|
|
|
APIs tools:
|
|
|
|
- [Insomnia](https://insomnia.rest/)
|
|
- Use Import/Export then push data to git repo.
|
|
- Don't pay (for now), use only offline mode.
|
|
- [HTTPie](https://httpie.io/app)
|
|
- Already sync online (for now).
|
|
|
|
Stay away from Postman, it's lag and you can accidentally upload private data publicly.
|
|
|
|
## Recovery strategy
|
|
|
|
There are many strategies that I process to react as if something strange is happening to my devices.
|
|
|
|
- If I lost my laptops, single laptop or all, do not panic as long as I have my phones.
|
|
The OTPs are in there, the passwords are in Bitwarden cloud, other data is in Google Drive so nothing is lost here.
|
|
- If I lost my phone, but not my laptops, I use the OTPs which are stored locally in my laptops.
|
|
- In the worst situation, I lost everything, my laptops, my phone.
|
|
The first step is to recover my SIM, then log in to Google account using the password and SMS OTP.
|
|
After that, log in to Bitwarden account using the master password and OTP from Gmail, which I open previously.
|
|
|
|
## Misc
|
|
|
|
To backup everything is hard, so keep it simple and only backup important things.
|
|
Pick one then stay away from other cloud services:
|
|
|
|
- TODOis, Evernote, ... -> Google Keep/Notion
|
|
- Dropbox, OneDrive, ... -> Google Drive
|
|
|
|
## TODO
|
|
|
|
- [ ] Backup Notion data then stores it in GitHub/GitLab/Goolge Drive.
|
|
- [ ] Convert as many as GMail accounts as possible to SimpleLogin/Proton Mail.
|
|
- [ ] Use Tailscale to selfhost Bitwarden server.
|
|
- [ ] Stop rely on Google Keep / Notion
|
|
|
|
## The end
|
|
|
|
This guide will be updated regularly I promise.
|