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