Initial container images
# Description Bootstrap the Oniomages project. This can be useful for the community and also serve base images for other projects (such as Onionprobe and Oniongroove). # Tasks * [x] C Tor image (from the existing Onionprobe configuration): * [x] Dockerfile. * [x] Default configuration. * [x] Debian packaging (keys etc) * [x] Arti image (from the existing Oniongroove configuration): * [x] Dockerfile. * [x] Default configuration. * [x] Disable SOCKS proxy. * [x] Building: * [x] ~CI (build and publish). * [x] Docker Compose (from both Onionprobe and Oniongroove). * [x] Setup scheduled builds. * [x] Building Debian image variants. * [x] Build an Alpine C Tor image variant. * [x] Build an Alpine Arti image variant, handled at #2. * [x] Custom HTTP backend server image. * [x] Testing: * [x] Ensure ~CI is working. * [x] Test the C Tor images (Debian stable and alpine). * [x] Test the Arti image for Debian. * [x] Test the Arti image for Alpine, handled at #2. * [x] Do a final test. * [x] Documenting: * [x] What it is. * [x] How to use (C Tor). * [x] How to use (Arti), including the current limitation, ref. tpo/core/arti#1921. * [x] Customization: * [x] C Tor. * [x] Arti. * [x] How to contribute and ask for support. * [x] Announcing: * [x] Make the 0.1.0 release. * [x] Dedicated forum post (stating that this project is still experimental, asking for feedback). Done [here](https://forum.torproject.org/t/announcing-onimages-onion-service-container-images/18212). * [x] Replying [this forum post][] (making the same abovementioned remarks). * [x] Document in the [Ecosystem docs][]: * [x] Full documentation. Added [here](https://onionservices.torproject.org/apps/base/containers/). * [x] Reference in the [deployment tools for onionsites](https://onionservices.torproject.org/apps/web/deployment/). * [x] Loop Pavel about this (pointing to the blog post). * [x] Add a comment on tpo/core/arti#1904, pointing to the Onimages project and suggesting that a base [Rust][] container on the [base-images][] repository, ready for the `cargo install`, could be a good starting point, which would also be useful for other projects. * [x] Organize: * [x] Create tickets/tasks in other projects that could use these base images. * [~] Create ticket/merge request at [base-images][], asking/implementing a base [Rust][] container, ready for the `cargo install`, useful for the `arti` container and other projects (check related task above). Moved to #4. * [x] Create ticket to update the `latest` tag on Debian images pointing to `trixie`, once it's released, then create a ticket for the next stable release (setting due dates so we can track this properly). Done: #5. * [x] Create ticket for reproducible builds, [for Arti][repro-arti] and C Tor. Done: #3. [this forum post]: https://forum.torproject.org/t/tor-docker-image-to-run-hidden-service/17111 [base-images]: https://gitlab.torproject.org/tpo/tpa/base-images [Rust]: https://www.rust-lang.org/ [Ecosystem docs]: https://onionservices.torproject.org [repro-arti]: https://gitlab.torproject.org/tpo/core/arti/-/blob/main/doc/safer-build.md # Time estimation * Complexity: very small (0.5 day) * Uncertainty: low (x1.1) * [Reference](https://jacobian.org/2021/may/25/my-estimation-technique/) (adapted)
issue