{"id":22018435,"url":"https://github.com/flavienbwk/ppa-mirror-docker","last_synced_at":"2026-03-03T05:40:04.531Z","repository":{"id":124243378,"uuid":"581110511","full_name":"flavienbwk/ppa-mirror-docker","owner":"flavienbwk","description":"Dockerized PPA downloader for apt installs.","archived":false,"fork":false,"pushed_at":"2022-12-22T23:54:47.000Z","size":5,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T03:34:26.549Z","etag":null,"topics":["airgapped","apt-get","apt-mirror","docker","ppa","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/flavienbwk.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}},"created_at":"2022-12-22T09:53:20.000Z","updated_at":"2023-11-29T16:13:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"e844512f-90a0-4867-a14a-f7bd491f4307","html_url":"https://github.com/flavienbwk/ppa-mirror-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flavienbwk/ppa-mirror-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2Fppa-mirror-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2Fppa-mirror-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2Fppa-mirror-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2Fppa-mirror-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flavienbwk","download_url":"https://codeload.github.com/flavienbwk/ppa-mirror-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flavienbwk%2Fppa-mirror-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30033494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T05:09:26.876Z","status":"ssl_error","status_checked_at":"2026-03-03T05:09:23.944Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["airgapped","apt-get","apt-mirror","docker","ppa","ubuntu"],"created_at":"2024-11-30T05:12:11.830Z","updated_at":"2026-03-03T05:40:04.524Z","avatar_url":"https://github.com/flavienbwk.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PPA Mirror Docker\n\nDockerized PPA downloader for apt installs.\n\n## Why\n\nSince Ubuntu 20.04, `snap` is the new package management standard for Ubuntu, over the old-school `apt`. Unlike `apt`, `snap` packages embark all dependencies into a single file to be easily deployed (packages are self-contained).\n\nHowever, it requires tricky configuration for offline infrastructures. For example, in Ubuntu 22.04, Chromium is not in the official `apt` mirror anymore, which is either installable through `snap` or [through the install of a PPA](https://askubuntu.com/questions/1204571/how-to-install-chromium-without-snap) (_Personal Packages Archives_). This is not possible on \"on-the-edge\" infrastructures because it requires Internet.\n\nThis repositories allows to easily retrieve files from a specific PPA for Ubuntu systems, for packages to be downloadable through the traditional `apt` command.\n\nIt is useful for large-clients infrastructures. Another reason might be `snap` is not allowed to be used by your organization.\n\n\u003e Note : If you are allowed to use `snap` and only have 1 package to download, you might consider [downloading it manually](https://askubuntu.com/questions/761742/is-it-possible-to-install-the-snap-application-in-an-offline-computer).\n\n## Downloading \u0026 updating\n\n1. Copy and edit the `.env` file with your own configuration\n\n    ```bash\n    cp .env.example .env\n    ```\n\n2. Run the `mirror` container :\n\n    ```bash\n    docker-compose build\n    docker-compose run mirror\n    ```\n\n\u003e Tips: We recommend you downloading the mirror from [a cloud provider](https://www.scaleway.com/en/) and then transfer files to your computer.\n\n## Serving\n\n1. Check your mirroring succeeded typing `du -sh ./mirror` to check the folder volume. Size varies depending on the PPA downloaded.\n\n2. Run the server :\n\n    ```bash\n    docker-compose up -d server\n    ```\n\n    Server will run on [`localhost:8080`](http://localhost:8080)  \n\n## Client configuration\n\n1. Add the GPG keys of the downloaded PPAs\n\n    ```bash\n    cat ./mirror/ppa.launchpadcontent.net/savoury1/ffmpeg4/ubuntu/savoury1-ffmpeg4.pgp | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/savoury1-ffmpeg4.pgp --import -\n    cat ./mirror/ppa.launchpadcontent.net/savoury1/chromium/ubuntu/savoury1-chromium.pgp | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/savoury1-chromium.pgp --import -\n    ```\n\n2. Make your Ubuntu computer point to your mirror by creating a `/etc/apt/source.list.d/ppa-mirror.list` file as follow :\n\n    ```conf\n    # For default example with ppa.launchpadcontent.net/savoury1 on Ubuntu Jammy (amd64)\n    deb [arch=amd64] http://localhost:8080/ppa.launchpadcontent.net/savoury1/ffmpeg4/ubuntu jammy main\n    deb [arch=amd64] http://localhost:8080/ppa.launchpadcontent.net/savoury1/chromium/ubuntu jammy main\n    ```\n\n:point_right: Feel free to add a reverse proxy or update the [nginx configuration file](./nginx.conf) to secure the mirror with SSL/TLS  \n:point_right: Feel free to send **pull requests** as well !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflavienbwk%2Fppa-mirror-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflavienbwk%2Fppa-mirror-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflavienbwk%2Fppa-mirror-docker/lists"}