{"id":19591622,"url":"https://github.com/pieceowater-dev/composync","last_synced_at":"2026-04-15T16:03:38.467Z","repository":{"id":253460141,"uuid":"843571401","full_name":"pieceowater-dev/composync","owner":"pieceowater-dev","description":"Powerful utility that automates the updating of your Docker Compose containers.","archived":false,"fork":false,"pushed_at":"2025-01-21T16:14:06.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T17:21:27.813Z","etag":null,"topics":["cicd","docker","docker-compose"],"latest_commit_sha":null,"homepage":"","language":"Go","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/pieceowater-dev.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":"2024-08-16T20:15:18.000Z","updated_at":"2025-01-21T16:14:09.000Z","dependencies_parsed_at":"2025-01-09T06:46:04.595Z","dependency_job_id":"20578f0a-99e8-41b2-bd16-557a747e43b3","html_url":"https://github.com/pieceowater-dev/composync","commit_stats":null,"previous_names":["pieceowater-dev/composync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pieceowater-dev%2Fcomposync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pieceowater-dev%2Fcomposync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pieceowater-dev%2Fcomposync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pieceowater-dev%2Fcomposync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pieceowater-dev","download_url":"https://codeload.github.com/pieceowater-dev/composync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240866626,"owners_count":19870396,"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":["cicd","docker","docker-compose"],"created_at":"2024-11-11T08:29:51.597Z","updated_at":"2025-10-08T22:33:26.606Z","avatar_url":"https://github.com/pieceowater-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [COMPOSYNC](https://github.com/pieceowater-dev/composync)\nby [pieceowater](https://github.com/pieceowater)\n\n**COMPOSYNC** is a utility designed to keep your Docker Compose containers up to date by continuously syncing them with the latest configurations and dependencies from your remote repositories. It functions similarly to ArgoCD, but for Docker Compose, helping you maintain a single source of truth for your container configurations.\n\n## Key Features\n\n- **Automated Updates**: Automatically detects changes in your remote repository and applies the latest updates.\n- **Customizable**: Easily configure the repository URL, branch, scan directory, and other options to fit your needs.\n- **Seamless Integration**: Works smoothly with your existing Docker Compose setup.\n\n## How It Works\n\nCOMPOSYNC scans a specified directory for Docker Compose files (`*compose.yaml` or `*compose.yml`). It then pulls the latest changes from the remote repository and applies them to your local environment, ensuring your containers are always synchronized with the latest configurations.\n\n## Quick Start\n\nTo get started with COMPOSYNC, simply use Docker:\n\n```bash\ndocker run -d --name composync \\\n    -e INTERVAL=10 \\ # Interval in minutes to check for updates\n    -e REPO_URL=\"https://github.com/pieceowater-dev/lotof.cloud.resources.dev.git\" \\ # URL of your remote repository containing Docker Compose files\n    -e BRANCH=\"main\" \\ # Branch of the repository to use (default is 'main')\n    -e SCAN_DIR=\"/\" \\ # Directory in the repository where Docker Compose files are located\n    -e RECURSIVE=true \\ # Whether to search through subdirectories for Docker Compose files\n    -e GIT_USERNAME=\"your_git_username\" \\ # Your GitHub username for authentication\n    -e GIT_PAT=\"your_personal_access_token\" \\ # Your GitHub personal access token for authentication\n    --volume /var/run/docker.sock:/var/run/docker.sock \\ # Mount Docker socket to allow COMPOSYNC to manage Docker containers\n    yurymid/composync\n```\n\n## Installation Guide\n\n### Prerequisites\n\nEnsure you have the following installed:\n\n- **Docker** (v20.10.x or later)\n    - [Docker Installation Guides](https://docs.docker.com/get-docker/)\n- **Docker Compose** (v2.14.0 or later) [Optional]\n    - [Docker Compose Installation](https://docs.docker.com/compose/install/)\n\n### Configuration Steps\n\n1. **Generate a GitHub Authentication Token**:\n   This token is used to authenticate with GitHub and access private repositories if needed.\n   ```shell\n   echo -n 'GITHUBUSERNAME:TOKEN' | base64\n   ```\n\n2. **Create a Configuration File**:\n   Create a `config.json` file with the following content, replacing `YOUR_BASE64_ENCODED_TOKEN` with your generated token:\n   ```json\n   {\n     \"auths\": {\n       \"ghcr.io\": { \n         \"auth\": \"YOUR_BASE64_ENCODED_TOKEN\"\n       }\n     }\n   }\n   ```\n\n3. **Run the COMPOSYNC Container**:\n   Use the following command to run COMPOSYNC with the specified environment variables and volume mounts:\n   ```shell\n   docker run -d --name composync \\\n       -e INTERVAL=30 \\ # Interval in minutes to check for updates\n       -e REPO_URL=\"https://github.com/pieceowater-dev/lotof.cloud.resources.dev.git\" \\ # URL of your remote repository\n       -e GIT_USERNAME=GITHUBUSERNAME \\ # Your GitHub username\n       -e GIT_PAT=TOKEN \\ # Your GitHub personal access token\n       -v /var/run/docker.sock:/var/run/docker.sock \\ # Mount Docker socket\n       -v ~/PATH/TO/config.json:/root/.docker/config.json \\ # Mount Docker auth config\n       yurymid/composync\n   ```\n\n   \u003e **Note**: For ARM architecture, you may need to add `--platform linux/amd64`.\n\n## Docker Compose Alternative\n\nYou can also run COMPOSYNC using Docker Compose. Here’s a sample configuration:\n\n```yaml\nservices:\n  composync:\n    image: yurymid/composync\n    environment:\n      - INTERVAL=30 # Interval in minutes to check for updates\n      - REPO_URL=https://github.com/pieceowater-dev/lotof.cloud.resources.dev.git # URL of your remote repository\n      - BRANCH=main # Branch of the repository to use\n      - SCAN_DIR=/ # Directory in the repository with Docker Compose files\n      - RECURSIVE=true # Whether to search through subdirectories\n      - GIT_USERNAME=pieceowater # Your GitHub username\n      - GIT_PAT=ghp_12345...abc # Your GitHub personal access token\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock # Mount Docker socket\n      - /path/to/your/docker-config.json:/root/.docker/config.json # Mount Docker auth config\n```\n\nTo run this, navigate to the directory containing your Docker Compose file and execute:\n\n```shell\ndocker-compose up -d\n```\n\n## Running Without Docker\n\nTo use COMPOSYNC without Docker:\n\n1. **Build and Install COMPOSYNC**:\n   Compile and install the COMPOSYNC application:\n   ```shell\n   go build\n   go install\n   ```\n\n2. **Run COMPOSYNC**:\n   Use the following command to start COMPOSYNC:\n   ```shell\n   composync go \\\n       --interval=5 # Interval in minutes to check for updates, or 0 to run once\n       --repo=https://github.com/pieceowater-dev/lotof.cloud.resources.dev.git \\ # URL of your remote repository\n       --branch=main \\ # Branch of the repository to use\n       --scan-dir=/ \\ # Directory with Docker Compose files\n       --recursive=true \\ # Whether to search through subdirectories\n       --username=gitusername \\ # Your GitHub username\n       --token=gitpat123 # Your GitHub personal access token\n   ```\n\nCOMPOSYNC will then continuously monitor and update your Docker Compose containers.\n\n## License\n\nCOMPOSYNC is licensed under the [MIT License](https://github.com/pieceowater-dev/composync/?tab=MIT-1-ov-file).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpieceowater-dev%2Fcomposync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpieceowater-dev%2Fcomposync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpieceowater-dev%2Fcomposync/lists"}