{"id":20677804,"url":"https://github.com/clivern/walrus","last_synced_at":"2025-05-15T18:10:18.950Z","repository":{"id":36973345,"uuid":"292950521","full_name":"Clivern/Walrus","owner":"Clivern","description":"🔥 Fast, Secure and Reliable System Backup, Set up in Minutes.","archived":false,"fork":false,"pushed_at":"2025-03-28T05:12:32.000Z","size":20644,"stargazers_count":488,"open_issues_count":24,"forks_count":22,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-03T23:34:32.587Z","etag":null,"topics":["backup","clivern","digitalocean-spaces","hacktoberfest","high-availability","minio","minio-storage","recovery","s3","s3-storage","walrus"],"latest_commit_sha":null,"homepage":"https://clivern.github.io/Walrus/","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/Clivern.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"custom":"clivern.com/sponsor/"}},"created_at":"2020-09-04T21:31:14.000Z","updated_at":"2025-03-14T10:36:58.000Z","dependencies_parsed_at":"2024-01-21T21:26:53.896Z","dependency_job_id":"7fca5877-1206-4b39-a1b2-017e0625c4cb","html_url":"https://github.com/Clivern/Walrus","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FWalrus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FWalrus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FWalrus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FWalrus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clivern","download_url":"https://codeload.github.com/Clivern/Walrus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247744335,"owners_count":20988783,"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","clivern","digitalocean-spaces","hacktoberfest","high-availability","minio","minio-storage","recovery","s3","s3-storage","walrus"],"created_at":"2024-11-16T21:17:09.707Z","updated_at":"2025-04-07T23:10:10.407Z","avatar_url":"https://github.com/Clivern.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/Clivern/Walrus/main/static/gopher.png\" width=\"230\" /\u003e\n    \u003ch3 align=\"center\"\u003eWalrus\u003c/h3\u003e\n    \u003cp align=\"center\"\u003eFast, Secure and Reliable System Backup, Set up in Minutes.\u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://github.com/Clivern/Walrus/actions/workflows/api.yml\"\u003e\n            \u003cimg src=\"https://github.com/Clivern/Walrus/actions/workflows/api.yml/badge.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Clivern/Walrus/actions/workflows/ui.yml\"\u003e\n            \u003cimg src=\"https://github.com/Clivern/Walrus/actions/workflows/ui.yml/badge.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Clivern/Walrus/actions\"\u003e\n            \u003cimg src=\"https://github.com/Clivern/Walrus/workflows/Release/badge.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Clivern/Walrus/releases\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/Version-1.2.6-red.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://goreportcard.com/report/github.com/Clivern/Walrus\"\u003e\n            \u003cimg src=\"https://goreportcard.com/badge/github.com/Clivern/Walrus?v=1.2.6\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://godoc.org/github.com/clivern/walrus\"\u003e\n            \u003cimg src=\"https://godoc.org/github.com/clivern/walrus?status.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://hub.docker.com/r/clivern/walrus\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/Docker-Latest-green\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Clivern/Walrus/blob/master/LICENSE\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/LICENSE-MIT-orange.svg\"\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/Clivern/Walrus/main/static/chart.png?v=1.2.6\" width=\"80%\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ch3 align=\"center\"\u003eDashboard Screenshots\u003c/h3\u003e\n    \u003cp align=\"center\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Clivern/Walrus/main/static/screenshot_02.png?v=1.2.6\" width=\"90%\" /\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/Clivern/Walrus/main/static/screenshot_03.png?v=1.2.6\" width=\"90%\" /\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\nWalrus is a fast, secure and reliable backup system suitable for modern infrastructure. With walrus, you can backup services like SQLite, MySQL, PostgreSQL, Redis, etcd or a complete directory with a short interval and low overhead. It supports AWS S3, digitalocean spaces and any S3-compatible object storage service.\n\n\n## Documentation\n\n## Deployment\n\nDownload [the latest walrus binary](https://github.com/Clivern/Walrus/releases). Make it executable from everywhere.\n\n```zsh\n$ export WALRUS_LATEST_VERSION=$(curl --silent \"https://api.github.com/repos/Clivern/Walrus/releases/latest\" | jq '.tag_name' | sed -E 's/.*\"([^\"]+)\".*/\\1/' | tr -d v)\n\n$ curl -sL https://github.com/Clivern/Walrus/releases/download/v{$WALRUS_LATEST_VERSION}/walrus_{$WALRUS_LATEST_VERSION}_Linux_x86_64.tar.gz | tar xz\n```\n\nThen install etcd cluster or single node, please refer to etcd docs or bin directory inside this repository.\n\n\n#### Run Walrus Tower:\n\nCreate the tower configs file `tower.config.yml` from `config.dist.yml`. Something like the following:\n\nPlease make sure to update the `apiKey` and `encryptionKey` to a different random values.\n\n```yaml\n# Tower configs\ntower:\n    # Env mode (dev or prod)\n    mode: ${WALRUS_APP_MODE:-dev}\n    # HTTP port\n    port: ${WALRUS_API_PORT:-8000}\n    # URL\n    url: ${WALRUS_API_URL:-http://127.0.0.1:8000}\n    # TLS configs\n    tls:\n        status: ${WALRUS_API_TLS_STATUS:-off}\n        pemPath: ${WALRUS_API_TLS_PEMPATH:-cert/server.pem}\n        keyPath: ${WALRUS_API_TLS_KEYPATH:-cert/server.key}\n\n    # API Configs\n    api:\n        key: ${WALRUS_API_KEY:-6c68b836-6f8e-465e-b59f-89c1db53afca}\n        encryptionKey: ${WALRUS_ENCRYPTION_KEY:-B?E(H+Mb}\n\n    # Async Workers\n    workers:\n        # Queue max capacity\n        buffer: ${WALRUS_WORKERS_CHAN_CAPACITY:-5000}\n        # Number of concurrent workers\n        count: ${WALRUS_WORKERS_COUNT:-4}\n\n    # Runtime, Requests/Response and Walrus Metrics\n    metrics:\n        prometheus:\n            # Route for the metrics endpoint\n            endpoint: ${WALRUS_METRICS_PROM_ENDPOINT:-/metrics}\n\n    # Application Database\n    database:\n        # database driver\n        driver: ${WALRUS_DB_DRIVER:-etcd}\n\n        etcd:\n            # etcd database name or prefix\n            databaseName: ${WALRUS_DB_ETCD_DB:-walrus}\n            # etcd username\n            username: ${WALRUS_DB_ETCD_USERNAME:- }\n            # etcd password\n            password: ${WALRUS_DB_ETCD_PASSWORD:- }\n            # etcd endpoints\n            endpoints: ${WALRUS_DB_ETCD_ENDPOINTS:-http://127.0.0.1:2379}\n            # Timeout in seconds\n            timeout: 30\n\n    # Log configs\n    log:\n        # Log level, it can be debug, info, warn, error, panic, fatal\n        level: ${WALRUS_LOG_LEVEL:-info}\n        # output can be stdout or abs path to log file /var/logs/walrus.log\n        output: ${WALRUS_LOG_OUTPUT:-stdout}\n        # Format can be json\n        format: ${WALRUS_LOG_FORMAT:-json}\n```\n\nThe run the `tower` with `systemd`\n\n```\nwalrus tower -c /path/to/tower.config.yml\n```\n\n\n#### Run Walrus Agent:\n\nCreate the agent configs file `agent.config.yml` from `config.dist.yml`. Something like the following:\n\n```yaml\n# Agent configs\nagent:\n    # Env mode (dev or prod)\n    mode: ${WALRUS_APP_MODE:-dev}\n    # HTTP port\n    port: ${WALRUS_API_PORT:-8001}\n    # URL\n    url: ${WALRUS_API_URL:-http://127.0.0.1:8001}\n    # TLS configs\n    tls:\n        status: ${WALRUS_API_TLS_STATUS:-off}\n        pemPath: ${WALRUS_API_TLS_PEMPATH:-cert/server.pem}\n        keyPath: ${WALRUS_API_TLS_KEYPATH:-cert/server.key}\n\n    # API Configs\n    api:\n        key: ${WALRUS_API_KEY:-56e1a911-cc64-44af-9c5d-8c7e72ec96a1}\n\n    # Async Workers\n    workers:\n        # Queue max capacity\n        buffer: ${WALRUS_WORKERS_CHAN_CAPACITY:-5000}\n        # Number of concurrent workers\n        count: ${WALRUS_WORKERS_COUNT:-4}\n\n    # Tower Configs\n    tower:\n        url: ${WALRUS_TOWER_URL:-http://127.0.0.1:8000}\n        # This must match the one defined in tower config file\n        apiKey: ${WALRUS_TOWER_API_KEY:-6c68b836-6f8e-465e-b59f-89c1db53afca}\n        # This must match the one defined in tower config file\n        encryptionKey: ${WALRUS_ENCRYPTION_KEY:-B?E(H+Mb}\n        # Time interval between agent ping checks\n        pingInterval: ${WALRUS_CHECK_INTERVAL:-60}\n\n    # Backup settings\n    backup:\n        tmpDir: ${WALRUS_BACKUP_TMP_DIR:-/tmp}\n\n    # Log configs\n    log:\n        # Log level, it can be debug, info, warn, error, panic, fatal\n        level: ${WALRUS_LOG_LEVEL:-info}\n        # output can be stdout or abs path to log file /var/logs/walrus.log\n        output: ${WALRUS_LOG_OUTPUT:-stdout}\n        # Format can be json\n        format: ${WALRUS_LOG_FORMAT:-json}\n```\n\nThe run the `agent` with `systemd`\n\n```\nwalrus agent -c /path/to/agent.config.yml\n```\n\nNow you can open the walrus tower dashboard `http://127.0.0.1:8000` and start the setup.\n\n\n#### To run the Admin Dashboard (Development Only):\n\nClone the project or your own fork:\n\n```zsh\n$ git clone https://github.com/Clivern/Walrus.git\n```\n\nCreate the dashboard config file `web/.env` from `web/.env.dist`. Something like the following:\n\n```\nVUE_APP_TOWER_URL=http://localhost:8080\n```\n\nThen you can either build or run the dashboard\n\n```zsh\n# Install npm packages\n$ cd web\n$ npm install\n$ npm install -g npx\n\n# Add tower url to frontend\n$ echo \"VUE_APP_TOWER_URL=http://127.0.0.1:8000\" \u003e .env\n\n$ cd ..\n\n# Validate js code format\n$ make check_ui_format\n\n# Format UI\n$ make format_ui\n\n# Run Vuejs app\n$ make serve_ui\n\n# Build Vuejs app\n$ make build_ui\n\n# Package the Vuejs app\n$ make package\n```\n\n## Versioning\n\nFor transparency into our release cycle and in striving to maintain backward compatibility, Walrus is maintained under the [Semantic Versioning guidelines](https://semver.org/) and release process is predictable and business-friendly.\n\nSee the [Releases section of our GitHub project](https://github.com/clivern/walrus/releases) for changelogs for each release version of Walrus. It contains summaries of the most noteworthy changes made in each release.\n\n\n## Bug tracker\n\nIf you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/clivern/walrus/issues\n\n\n## Security Issues\n\nIf you discover a security vulnerability within Walrus, please send an email to [hello@clivern.com](mailto:hello@clivern.com)\n\n\n## Contributing\n\nWe are an open source, community-driven project so please feel free to join us. see the [contributing guidelines](CONTRIBUTING.md) for more details.\n\n\n## License\n\n© 2020, Clivern. Released under [MIT License](https://opensource.org/licenses/mit-license.php).\n\n**Walrus** is authored and maintained by [@clivern](http://github.com/clivern).\n","funding_links":["clivern.com/sponsor/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclivern%2Fwalrus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclivern%2Fwalrus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclivern%2Fwalrus/lists"}