{"id":21152866,"url":"https://github.com/pilaton/macsync","last_synced_at":"2025-07-09T10:33:07.893Z","repository":{"id":45551303,"uuid":"424281841","full_name":"Pilaton/MacSync","owner":"Pilaton","description":"Easy sync for macOS. Dotfiles, folders, configurations, etc.","archived":false,"fork":false,"pushed_at":"2023-11-22T09:26:33.000Z","size":87,"stargazers_count":24,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-30T12:48:37.909Z","etag":null,"topics":["backup","cloud","dotfiles","dropbox","macos","sync","synchronization"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/macsync","language":"Shell","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/Pilaton.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-11-03T15:36:51.000Z","updated_at":"2024-10-15T17:50:25.000Z","dependencies_parsed_at":"2023-11-22T10:50:57.473Z","dependency_job_id":null,"html_url":"https://github.com/Pilaton/MacSync","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilaton%2FMacSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilaton%2FMacSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilaton%2FMacSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilaton%2FMacSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pilaton","download_url":"https://codeload.github.com/Pilaton/MacSync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225534536,"owners_count":17484555,"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":["backup","cloud","dotfiles","dropbox","macos","sync","synchronization"],"created_at":"2024-11-20T10:47:10.688Z","updated_at":"2024-11-20T10:47:11.260Z","avatar_url":"https://github.com/Pilaton.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Pilaton/MacSync\"\u003e\n        \u003cimg src=\"./doc/images/MacSync_logo.svg\" alt=\"MacSync - Easy sync for Mac OS\" width=\"400\"\u003e\n    \u003c/a\u003e\n    \u003ch1\u003e🍁🔆 MacSync\u003c/h1\u003e\n    \u003cdiv\u003eEasy sync for macOS. Dotfiles, folders, configurations, etc.\u003c/div\u003e\n\u003c/div\u003e\n\n## Contents\n\n- [What is it](#what-is-it)\n- [Installing and configuration](#installing-and-configuration)\n- [Usage](#usage)\n- [Folder structure](#folder-structure)\n- [How it works](#how-it-works)\n\n## What is it\n\nMacSync is a simple application that helps you sync the files and folders you need between your Mac devices.\n\nSynchronize your files through any cloud storage ([Dropbox](https://dropbox.com), [Google Drive](https://google.com/drive/), [Microsoft OneDrive](https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage), [Apple iCloud](https://icloud.com), [Yandex.Disk](https://disk.yandex.ru) and others), your own server, NAS, [GitHub](https://github.com) or whatever.\n\n## Installing and configuration\n\n1. Download the project and go to the project folder\n\n```bash\n# Download the project to the directory you need\ngit clone https://github.com/Pilaton/MacSync.git --depth=1\n\n# Go to the project folder\ncd MacSync/\n```\n\n2. Configuring `config/config.cfg`\n\n```bash\n########### YOUR CONFIG ############\n\n# Synchronization folder path\n#\n# Example: ~/Dropbox/MySyncFolder\n#\nSYNC_FOLDER=~/Dropbox/MySyncFolder\n\n\n# List of files and folders to sync\n# File and folder paths start from the user's home directory ($ ~/)\n#\n# Example: BACKUP_FILES=(Sites/mySite .oh-my-zsh/custom .gitconfig .zshrc .npmrc)\n#\nBACKUP_FILES=(Sites/mySite .oh-my-zsh/custom .gitconfig .zshrc .npmrc)\n```\n\n## Usage\n\nOnce you have configured `config/config.cfg`, run MacSync.\n\n```bash\n# Launch MacSync with the command\nmake install\n# OR\nzsh ./bin/install.zsh\n```\n\nAfter launch, you will be offered options to choose from (below is a diagram).\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"MacSync usage\" src=\"./doc/images/MacSync-usage.svg\" width=\"650\"\u003e\n\u003c/div\u003e\n\nLet's go over some points.\n\n`Disable sync`\n\nThis command launches the return of synchronized files to your device and removes their symlinks.  \nTo avoid problems, files are not deleted from the sync folder.\n\n`Connect and replace all files in it`\n\nThis command connects your device to the sync folder by first deleting it completely, then re-creating it and adding your new files to it.\n\n`Connect and update obsolete files`\n\nThis command connects your device to the sync folder, adding your new files to it.  \nIf some files already exist and the date they were edited is older than yours, they will be updated.\n\n`Connect only`\n\nThis command simply connects your device to the sync folder.  \n💡 Note: Only those files that are specified in your config file and if they exist in the sync folder will be synchronized.\n\n## Folder structure\n\nAfter you specify the path to the sync folder and the list of synced files in `config/config.cfg`, and run the application, you get the following directory structure:\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"MacSync folder structure\" src=\"./doc/images/MacSync-folder-structure.svg\" width=\"650\"\u003e\n\u003c/div\u003e\n\nI will also leave the directory scheme in its usual form. 😉\n\n```bash\n📂 MySyncFolder\n├── 📂 _Backup_default_config\n│   └── 📂 iMac_01-12-2021_1124983521\n│   │   ├── _config.cfg\n│   │   ├── .gitconfig\n│   │   ├── .otherconfig\n│   │   └── .zshrc\n│   │\n│   └── 📂 MacBook_04-12-2021_1638581744\n│       ├── 📂 .oh-my-zsh\n│       │   └── 📂 custom\n│       ├── 📂 Sites\n│       │   └── 📂 My-site\n│       ├── _config.cfg\n│       ├── .gitconfig\n│       ├── .npmrc\n│       └── .zshrc\n│\n└── 📂 dotfiles\n    ├── 📂 .oh-my-zsh\n    │   └── 📂 custom\n    ├── 📂 Sites\n    │   └── 📂 My-site\n    ├── .gitconfig\n    ├── .otherconfig\n    ├── .npmrc\n    └── .zshrc\n```\n\n`📂 _Backup_default_config`\n\nThis folder contains folders with backups of the original files of your devices.  \n💡 Note: A backup happens every time you start MacSync.\n\n`📂 _Backup_default_config/'your-device_date_timestamp'`\n\nThese folders contain the actual backups of the original files themselves.  \nThey will also store your `config.cfg`\n\n💡 Note: The \"original files\" are those that are specified in the config file:  \n`BACKUP_FILES=(Sites/mySite .oh-my-zsh/custom .gitconfig .zshrc .npmrc)`\n\n`📂 dotfiles`\n\nThis folder contains files that are synced between your devices.\n\n## How it works\n\nWhat happens when you start syncing on your device for the first time:\n\n1. The application creates the required folders.\n1. Takes a list of your files and makes a backup.\n1. Then it moves your files to the sync folder `📂 dotfiles`\n1. Instead of your files, symlinks are created on your device to the original files in the sync folder.\n\nThis way, all your devices can be connected to the same files. 😎\n\n## License\n\nMIT © [Pilaton](https://github.com/Pilaton)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilaton%2Fmacsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpilaton%2Fmacsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilaton%2Fmacsync/lists"}