{"id":19795183,"url":"https://github.com/jsfraz/mega-backuper","last_synced_at":"2026-05-11T13:06:11.117Z","repository":{"id":189936679,"uuid":"681610002","full_name":"jsfraz/mega-backuper","owner":"jsfraz","description":"Container for backing up other container's volumes and database dumps to Mega.nz.","archived":false,"fork":false,"pushed_at":"2026-03-26T00:19:31.000Z","size":81,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-26T21:33:25.775Z","etag":null,"topics":["backup","container","docker","docker-volume","golang","mega","mysql-dump"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jsfraz.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-22T11:35:55.000Z","updated_at":"2026-03-26T00:01:23.000Z","dependencies_parsed_at":"2023-08-22T15:32:37.749Z","dependency_job_id":"7fb85af4-3872-4e1d-a4ce-99cd05385b69","html_url":"https://github.com/jsfraz/mega-backuper","commit_stats":null,"previous_names":["jsfraz/backuper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jsfraz/mega-backuper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsfraz%2Fmega-backuper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsfraz%2Fmega-backuper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsfraz%2Fmega-backuper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsfraz%2Fmega-backuper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsfraz","download_url":"https://codeload.github.com/jsfraz/mega-backuper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsfraz%2Fmega-backuper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32895986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","container","docker","docker-volume","golang","mega","mysql-dump"],"created_at":"2024-11-12T07:15:40.942Z","updated_at":"2026-05-11T13:06:11.112Z","avatar_url":"https://github.com/jsfraz.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mega-backuper\n\nContainer for backing up other container's volumes and database dumps to Mega.nz.\n\n## Example usage\n\n\u003e If Mega.nz API returns error 402, login in browser from the same IP address before running the container. (\u003chttps://github.com/rclone/rclone/issues/8270#issuecomment-2562047717\u003e)\n\nThis example config backups PostgreSQL database from `postgres-example` container every day at 12:00, and MariaDB database from `mariadb-example` every day at 14:00. It keeps last 10 copies in the output directory, older copies are moved to the rubbish bin.\n\nThe `nginx` backup will backup the `nginx-example` container's html directory every day at 10:00.\n\n### Example `backuper.json`\n\n```json\n{\n    \"email\": \"user@example.com\",\n    \"password\": \"12345678\",\n    \"backups\": [\n        {\n            \"name\": \"postgres\",\n            \"megaDir\": \"postgres/\",\n            \"lastCopies\": 10,\n            \"cron\": \"0 12 * * *\",\n            \"type\": \"postgres\",\n            \"pgUser\": \"postgres\",\n            \"pgPassword\": \"postgres\",\n            \"pgDb\": \"postgres\",\n            \"pgHost\": \"postgres-example\",\n            \"pgPort\": 5432\n        },\n        {\n            \"name\": \"nginx\",\n            \"megaDir\": \"nginx/\",\n            \"lastCopies\": 5,\n            \"cron\": \"0 10 * * *\",\n            \"type\": \"volume\"\n        },\n        {\n            \"name\": \"mariadb\",\n            \"megaDir\": \"mariadb/\",\n            \"lastCopies\": 10,\n            \"cron\": \"0 14 * * *\",\n            \"type\": \"mysql\",\n            \"mysqlUser\": \"mariadb\",\n            \"mysqlPassword\": \"mariadb\",\n            \"mysqlDb\": \"mariadb\",\n            \"mysqlHost\": \"mariadb-example\",\n            \"mysqlPort\": 3306\n        }\n    ]\n}\n```\n\n### Example `docker-compose.yaml`\n\n\u003chttps://github.com/jsfraz/mega-backuper/blob/master/docker-compose.yaml\u003e\n\n## Export formats\n\nThe output files are named using the following pattern: `NAME-UNIX_TIMESTAMP.EXTENSION`.\n\n| Backup Type | Extension | Internal Format                                                         |\n|-------------|-----------|-------------------------------------------------------------------------|\n| `postgres`  | `.backup` | Custom PostgreSQL binary format (`pg_dump -Fc`). Compressed internally. |\n| `mysql`     | `.tar.gz` | Gunzipped tarball containing `.sql` dump.                               |\n| `volume`    | `.tar.gz` | Gunzipped tarball containing volume contents.                           |\n\n## Config file properties\n\n### General properties\n\n| Property | Type                | Description                | Required |\n|----------|---------------------|----------------------------|----------|\n| email    | string              | Your Mega.nz e-mail        | true     |\n| password | string              | Your Mega.nz password      | true     |\n| backups  | backup object array | Individual backup settings | true     |\n\n### Backup object properties\n\n| Property         | Type   | Description                                           | Required |\n|------------------|--------|-------------------------------------------------------|----------|\n| name             | string | Backup name                                           | true     |\n| megaDir          | string | Remote Mega.nz destination directory                  | true     |\n| lastCopies       | int    | Number of last copies to keep                         | false    |\n| cron             | string | Cron expression for scheduling backup                 | true     |\n| type             | string | Backup type (postgres, mysql, volume)                 | true     |\n\n\u003c!-- FIXME https://github.com/t3rm1n4l/go-mega/pull/46 --\u003e\n\u003c!-- | destroyOldCopies | bool   | Destroy old copies instead moving them to rubbish bin | false    | --\u003e\n\n#### PostgreSQL backup properties\n\n\u003e This project uses native `pg_dump` to dump PostgreSQL database, so it supports all of `pg_dump` features like triggers, views, functions, etc.\n\n| Property   | Type   | Description                                                                              | Required |\n|------------|--------|------------------------------------------------------------------------------------------|----------|\n| pgUser     | string | PostgreSQL username                                                                      | true     |\n| pgPassword | string | PostgreSQL password                                                                      | true     |\n| pgDb       | string | PostgreSQL database name                                                                 | true     |\n| pgHost     | string | PostgreSQL host (or container name if running in the same network)                       | true     |\n| pgPort     | int    | PostgreSQL port                                                                          | true     |\n\n#### MySQL/MariaDB backup properties\n\n\u003e This project uses native `mysqldump` to dump MySQL/MariaDB database.\n\n| Property      | Type   | Description                                                        | Required |\n|---------------|--------|--------------------------------------------------------------------|----------|\n| mysqlUser     | string | MySQL username                                                     | true     |\n| mysqlPassword | string | MySQL password                                                     | true     |\n| mysqlDb       | string | MySQL database name                                                | true     |\n| mysqlHost     | string | MySQL host (or container name if running in the same network)      | true     |\n| mysqlPort     | int    | MySQL port                                                         | true     |\n\n#### Volume backup properties\n\nThere are no additional properties for volume backups, however, the `name` property will be used as the directory name mounted to backuper container. Make sure your config looks like this example, where name of the job (`nginx`) is the same as the directory name mounted to backuper container (`/tmp/nginx`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsfraz%2Fmega-backuper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsfraz%2Fmega-backuper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsfraz%2Fmega-backuper/lists"}