{"id":17998086,"url":"https://github.com/cookiengineer/pacman-backup","last_synced_at":"2025-03-26T04:31:38.258Z","repository":{"id":46748616,"uuid":"320748204","full_name":"cookiengineer/pacman-backup","owner":"cookiengineer","description":":floppy_disk: Pacman Cache management tool  for off-the-grid updates via Sneakernet (USB drives) or Meshnets (LAN / Wi-Fi)","archived":false,"fork":false,"pushed_at":"2024-09-17T14:02:20.000Z","size":114,"stargazers_count":33,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-21T06:41:31.939Z","etag":null,"topics":["archlinux","cache-proxy","mesh-network","offline-tool","pacman","usb-drive"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cookiengineer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE_GPL3.txt","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},"funding":{"github":"cookiengineer"}},"created_at":"2020-12-12T04:34:02.000Z","updated_at":"2024-10-24T11:01:42.000Z","dependencies_parsed_at":"2024-09-16T03:41:14.385Z","dependency_job_id":"f91be617-299e-4420-868d-aee5c0fce76c","html_url":"https://github.com/cookiengineer/pacman-backup","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookiengineer%2Fpacman-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookiengineer%2Fpacman-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookiengineer%2Fpacman-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookiengineer%2Fpacman-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cookiengineer","download_url":"https://codeload.github.com/cookiengineer/pacman-backup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245589265,"owners_count":20640254,"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":["archlinux","cache-proxy","mesh-network","offline-tool","pacman","usb-drive"],"created_at":"2024-10-29T21:23:55.538Z","updated_at":"2025-03-26T04:31:37.807Z","avatar_url":"https://github.com/cookiengineer.png","language":"Go","funding_links":["https://github.com/sponsors/cookiengineer"],"categories":[],"sub_categories":[],"readme":"\n# Pacman Backup\n\nOffline Pacman Cache management tool that allows off-the-grid updates via\nsneakernet (usb drives) or mesh Wi-Fi networks.\n\n\n## Share Updates via USB Drive\n\nIn the below example, make sure that `usb-drive` is writable. Replace the path with\nthe correct one that points to your mounted USB drive.\n\n**Step 1**: On the machine _with_ internet connection, insert and mount the USB drive.\n\n```bash\n# Machine with internet connection\npacman-backup download /run/media/$USER/usb-drive;\npacman-backup cleanup /run/media/$USER/usb-drive;\nsync;\n\n# Unmount the USB drive and sneak/walk to other machine\n```\n\n**Step 2**: On the machine _without_ internet connection, insert and mount the USB drive.\n\n```bash\n# Machine without internet connection\npacman-backup upgrade /run/media/$USER/usb-drive;\n```\n\n## Share Updates via Wi-Fi Mesh Network\n\nIn the below example, the machine _with_ internet connection has the IP `192.168.0.10`.\nReplace the IP with the correct one that matches your setup. If in doubt, use `ip` or `ifconfig`.\n\n\n**Step 1**: On the machine with internet connection, download all updates and serve them as\nlocal pacman archive mirror.\n\n```bash\n# Machine with internet connection\nsudo pacman-backup download;\npacman-backup serve;\n```\n\n**Step 2**: On the machine _without_ direct internet connection, download updates from the\nlocal pacman archive mirror.\n\n```bash\n# Machine without internet connection\nsudo pacman-backup download http://192.168.0.10:15678/;\nsudo pacman-backup upgrade;\n```\n\n\n## Manual Export and Import of Database Files and Package Cache\n\nIf you don't trust automated upgrades and want to use `pacman` directly, that's fine. You\ncan do so by using `export` on the machine with internet connection and `import` on the\nmachine without internet connection.\n\n```bash\n# Machine with internet connection\nsudo pacman -Syuw;\npacman-backup export /run/media/$USER/usb-drive;\nsync;\n\n# Unmount the USB drive and sneak/walk to other machine\n```\n\n```bash\n# Machine without internet connection\nsudo pacman-backup import /run/media/$USER/usb-drive;\nsync;\n\nsudo pacman -Su;\n```\n\n\n# License\n\nGPL3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcookiengineer%2Fpacman-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcookiengineer%2Fpacman-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcookiengineer%2Fpacman-backup/lists"}