{"id":21171155,"url":"https://github.com/fuchs-fabian/domposy","last_synced_at":"2025-07-09T19:32:43.044Z","repository":{"id":253709222,"uuid":"844269456","full_name":"fuchs-fabian/domposy","owner":"fuchs-fabian","description":"Simplify your Docker Compose management - Create backups...","archived":false,"fork":false,"pushed_at":"2024-11-06T23:12:55.000Z","size":53,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-07T00:26:57.302Z","etag":null,"topics":["backup-script","docker","docker-compose","helper-script","update"],"latest_commit_sha":null,"homepage":"https://fuchs-fabian.github.io/domposy/","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/fuchs-fabian.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-18T22:09:46.000Z","updated_at":"2024-11-04T18:48:55.000Z","dependencies_parsed_at":"2024-11-10T15:16:32.386Z","dependency_job_id":null,"html_url":"https://github.com/fuchs-fabian/domposy","commit_stats":null,"previous_names":["fuchs-fabian/domposy"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fdomposy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fdomposy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fdomposy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuchs-fabian%2Fdomposy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuchs-fabian","download_url":"https://codeload.github.com/fuchs-fabian/domposy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225587770,"owners_count":17492633,"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-script","docker","docker-compose","helper-script","update"],"created_at":"2024-11-20T16:03:05.680Z","updated_at":"2025-07-09T19:32:43.017Z","avatar_url":"https://github.com/fuchs-fabian.png","language":"Shell","funding_links":["https://www.paypal.com/donate/?hosted_button_id=4G9X8TDNYYNKG"],"categories":[],"sub_categories":[],"readme":"# `domposy`: Simplify your Docker Compose management - Create backups...\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg alt=\"GPL-3.0 License\" src=\"https://img.shields.io/badge/GitHub-GPL--3.0-informational\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fuchs-fabian/domposy\"\u003e\n    \u003cimg src=\"https://github-readme-stats.vercel.app/api/pin/?username=fuchs-fabian\u0026repo=domposy\u0026theme=holi\u0026hide_border=true\u0026border_radius=10\" alt=\"Repository domposy\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Description\n\n### What is `domposy`?\n\n`domposy` is a Linux Bash script that helps to backup Docker Compose containers (with bind mounts).\n\nThis involves searching for the Docker Compose folder, which then also contains the `.yml` file, the bind mounts that are important for the container itself and hopefully an `.env` file.\n\nThis entire folder is then securely **tared** and then **compressed**. The backup is then located where you want it.\n\nTimestamps are used for the backups. Help is also provided on how the backups can be reused. All important information is logged.\n\nFinally, it is very easy to simply backup to a NAS that has been mounted with NFS or SMB, for example.\n\n\u003e Only Docker Compose files named `docker-compose.yml` or `docker-compose.yaml` are used for search!\n\nIdeally, it has the following structure:\n\n```plain\n\u003cdocker-compose-project-name\u003e/\n│\n├── docker-compose.yml\n│\n├── .env\n│\n└── volumes/\n```\n\nWhere the files are located is almost irrelevant. Ideally, there should be a folder containing all the Docker Compose projects.\n\nIn addition, it is possible to perform a secure Docker cleanup of resources that are no longer used.\n\n**Examples for Docker Compose files**:\n\n\u003ca href=\"https://github.com/fuchs-fabian/docker-compose-files\"\u003e\n  \u003cimg src=\"https://github-readme-stats.vercel.app/api/pin/?username=fuchs-fabian\u0026repo=docker-compose-files\u0026theme=holi\u0026hide_border=true\u0026border_radius=10\" alt=\"Repository docker-compose-files\"/\u003e\n\u003c/a\u003e\n\n### Who is it for?\n\nThis script is ideal for homelab enthusiasts, but also for people who work a lot with Docker Compose files.\n\n## Getting Started\n\nThe easiest way is to download and run the [`setup.bash`](./setup.bash) script.\n\n\u003e If you want to install it globally, you need root rights (sudo)!\\\n\u003e Otherwise, it will be only installed for the current user!\n\nThe following command will download `domposy`, make it executable, install it and then delete the `setup.bash` script:\n\n```bash\nwget -q -O setup.bash https://raw.githubusercontent.com/fuchs-fabian/domposy/refs/heads/main/setup.bash \u0026\u0026 \\\nchmod +x setup.bash \u0026\u0026 \\\n./setup.bash install \u0026\u0026 \\\nrm setup.bash\n```\n\nThen you can use `domposy`:\n\n```plain\nIt is recommended to run the script with root rights to ensure that the backups work properly.\n\nUsage: (sudo) domposy\n\n  -h, --help                      Show help\n\n  -v, --version                   Show version\n\n  -d, --debug                     Enables debug logging\n\n  -n, --dry-run                   Executes a dry run, i.e. no changes are made to the file system\n\n  -a, --action    [action]        Action to be performed\n                                  {backup,clean}\n                                  Default: 'backup'\n\n  --search-dir    [search dir]    Directory to search for docker-compose files\n                                  Note: '-a, --action' should be used before this, otherwise it has no effect\n                                  Default: '/home/'\n\n  --exclude-dir   [exclude dir]   Directory to exclude from search\n                                  Note: '-a, --action' should be used before this, otherwise it has no effect\n                                  Default: 'tmp'\n\n  --backup-dir    [backup dir]    Destination directory for backups\n                                  Note: '-a, --action' should be used before this, otherwise it has no effect\n                                  Default: '/tmp/domposy/backups/'\n\n  --keep-backups  [keep backups]  Number of backups to keep\n                                  Default: 'all'\n\n  --log-dir       [log dir]       Directory for log files\n                                  Default: '/tmp/domposy/logs/'\n\n  --notifier      [notifier]      'simbashlog' notifier (https://github.com/fuchs-fabian/simbashlog-notifiers)\n                                  Important: The notifier must be correctly installed\n                                  Default: none\n\n  --disable-summary-on-exit       Disables the summary on exit\n```\n\n### Example\n\n```bash\ndomposy --action backup --search-dir /home/ --exclude-dir git --backup-dir /tmp/domposy/backups/ --log-dir /var/log/\n```\n\n### Uninstall\n\nIf you want to uninstall the script, navigate to the directory where the `setup.bash` script is located, make it executable and run it with the `uninstall` argument:\n\n```bash\n./setup.bash uninstall\n```\n\n\u003e If the script was installed globally, you need root rights (sudo) to uninstall it!\n\nIf you can't find the `setup.bash` script anymore, you can execute the following command:\n\n```bash\nwget -q -O setup.bash https://raw.githubusercontent.com/fuchs-fabian/domposy/refs/heads/main/setup.bash \u0026\u0026 \\\nchmod +x setup.bash \u0026\u0026 \\\n./setup.bash uninstall \u0026\u0026 \\\nrm setup.bash\n```\n\n### Update\n\nIf you want to update the script, navigate to the directory where the `setup.bash` script is located, make it executable and run it with the `update` argument:\n\n```bash\n./setup.bash update\n```\n\n\u003e If the script was installed globally, you need root rights (sudo) to update it!\n\nIf you can't find the `setup.bash` script anymore, you can execute the following command:\n\n```bash\nwget -q -O setup.bash https://raw.githubusercontent.com/fuchs-fabian/domposy/refs/heads/main/setup.bash \u0026\u0026 \\\nchmod +x setup.bash \u0026\u0026 \\\n./setup.bash update \u0026\u0026 \\\nrm setup.bash\n```\n\n#### Advanced update method\n\nYou can simply navigate to the directory in which the script is cloned, remove the execution rights and pull it. Then you can make it executable again.\n\n## Donate with [PayPal](https://www.paypal.com/donate/?hosted_button_id=4G9X8TDNYYNKG)\n\nIf you think this tool is useful and saves you a lot of work and nerves and lets you sleep better, then a small donation would be very nice.\n\n\u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=4G9X8TDNYYNKG\" target=\"_blank\"\u003e\n  \u003c!--\n    https://github.com/stefan-niedermann/paypal-donate-button\n  --\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png\" style=\"height: 90px; width: 217px;\" alt=\"Donate with PayPal\"/\u003e\n\u003c/a\u003e\n\n---\n\n\u003e This repository uses [`simbashlog`](https://github.com/fuchs-fabian/simbashlog) ([LICENSE](https://github.com/fuchs-fabian/simbashlog/blob/main/LICENSE)).\n\u003e\n\u003e *Copyright (C) 2024 Fabian Fuchs*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuchs-fabian%2Fdomposy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuchs-fabian%2Fdomposy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuchs-fabian%2Fdomposy/lists"}