{"id":20028745,"url":"https://github.com/phase2/outrigger-unison","last_synced_at":"2025-07-06T04:38:42.587Z","repository":{"id":137099693,"uuid":"90905196","full_name":"phase2/outrigger-unison","owner":"phase2","description":"Unison file sync container for Outrigger","archived":false,"fork":false,"pushed_at":"2018-03-15T22:37:56.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T17:35:42.498Z","etag":null,"topics":["filesystem","outrigger","unison"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/phase2.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2017-05-10T20:25:05.000Z","updated_at":"2018-04-11T16:54:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"2ec992fb-eb29-4847-8ec8-b3b74dad7bd9","html_url":"https://github.com/phase2/outrigger-unison","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Foutrigger-unison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Foutrigger-unison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Foutrigger-unison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Foutrigger-unison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phase2","download_url":"https://codeload.github.com/phase2/outrigger-unison/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241460048,"owners_count":19966518,"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":["filesystem","outrigger","unison"],"created_at":"2024-11-13T09:16:20.964Z","updated_at":"2025-03-02T04:45:29.439Z","avatar_url":"https://github.com/phase2.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unison file sync\n\nThis container is used to synchronize local files with volumes in docker containers.\nThis greatly improves performance of file operations within containers when using Mac OSX\nvs NFS mounts that are much slower handling many small files (such as node_modules, etc)\n\n## Installation\n\nInstall these dependencies on your Mac:\n\n* brew install unison\n* brew tap eugenmayer/dockersync\n* brew install eugenmayer/dockersync/unox\n\n## Project Setup\n\n1. Modify your docker-composer.yml file to mount a named volume instead of using NFS.\n\n    The default name of the volume will be {ProjectName}-sync.\n\n    For example, if your docker-compose.yml contains the line:\n\n        www:\n          volumes:\n            - .:/var/www\n\n    change it to\n\n        www:\n          volumes:\n            - ProjectName-sync:/var/www\n\n\n2. Add the following lines to the end of your docker-compose.yml file to define the named volume.\n\n        volumes:\n          ProjectName-sync:\n            external: true\n\n## Usage\n\n1. Start the unison container using the provided ``unison.sh`` script:\n\n        ./unison.sh ProjectName\n\n    This will create the named docker volume, run a docker container for your unison server,\n    then start the local unison process to watch your local files.\n\n    The directory that you run the ``unison.sh`` script from is the directory that will\n    be synchronized with the mount point you specified in your project docker-compose.yml (/var/www in the above examle).\n\n    If you omit the ``ProjectName`` argument, the name of the current directory will be used.\n\n2. Start your project containers normally.\n\n        docker-compose up -d\n\n     Any changes to your local files will be synced into your docker containers.\n     Any changes to the files in your docker container mount point (/var/www) will be synced to your local Mac.\n     If there is a conflict, the file on your local machine is given preference.\n\n     A log file: ``ProjectName-sync.log`` is created in the directory where you ran ``unison.sh``\n     and will show any unison sync activity.\n\n3. To stop sychronizing files, just stop the docker container:\n\n        docker stop ProjectName-sync\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase2%2Foutrigger-unison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphase2%2Foutrigger-unison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase2%2Foutrigger-unison/lists"}