diff --git a/docs/deploying/docker.mdx b/docs/deploying/docker.mdx index a2a9e527..164898c8 100644 --- a/docs/deploying/docker.mdx +++ b/docs/deploying/docker.mdx @@ -11,10 +11,10 @@ OCI images for Continuwuity are available in the registries listed below. | Registry | Image | Notes | | --------------- | --------------------------------------------------------------- | -----------------------| -| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest][fj] | Latest tagged image. | -| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main][fj] | Main branch image. | - -[fj]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest) | Latest tagged image. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main) | Main branch image. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest-maxperf](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest-maxperf) | Performance optimised version. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main-maxperf](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main-maxperf) | Performance optimised version. | Use @@ -49,7 +49,7 @@ If you just want to test Continuwuity for a short time, you can use the `--rm` flag, which cleans up everything related to your container after you stop it. -### Docker-compose +### Docker Compose If the `docker run` command is not suitable for you or your setup, you can also use one of the provided `docker-compose` files. @@ -158,8 +158,19 @@ docker buildx build --load --tag continuwuity:latest -f docker/Dockerfile . # Example: Build for specific platforms and push to a registry. # docker buildx build --platform linux/amd64,linux/arm64 --tag registry.io/org/continuwuity:latest -f docker/Dockerfile . --push -# Example: Build binary optimized for the current CPU -# docker buildx build --load --tag continuwuity:latest --build-arg TARGET_CPU=native -f docker/Dockerfile . +# Example: Build binary optimised for the current CPU (standard release profile) +# docker buildx build --load \ +# --tag continuwuity:latest \ +# --build-arg TARGET_CPU=native \ +# -f docker/Dockerfile . + +# Example: Build maxperf variant (release-max-perf profile with LTO) +# Optimised for runtime performance and smaller binary size, but requires longer build time +# docker buildx build --load \ +# --tag continuwuity:latest-maxperf \ +# --build-arg TARGET_CPU=native \ +# --build-arg RUST_PROFILE=release-max-perf \ +# -f docker/Dockerfile . ``` Refer to the Docker Buildx documentation for more advanced build options. @@ -198,5 +209,3 @@ Alternatively, you can use Continuwuity's built-in delegation file capability. S ## Voice communication See the [TURN](../turn.md) page. - -[nix-buildlayeredimage]: https://ryantm.github.io/nixpkgs/builders/images/dockertools/#ssec-pkgs-dockerTools-buildLayeredImage diff --git a/docs/deploying/generic.mdx b/docs/deploying/generic.mdx index 90e42707..2c4fd2a2 100644 --- a/docs/deploying/generic.mdx +++ b/docs/deploying/generic.mdx @@ -10,27 +10,21 @@ ### Static prebuilt binary -You may simply download the binary that fits your machine architecture (x86_64 -or aarch64). Run `uname -m` to see what you need. +Download the binary for your architecture (x86_64 or aarch64) - run `uname -m` to check which you need. -You can download prebuilt fully static musl binaries from the latest tagged -release [here](https://forgejo.ellis.link/continuwuation/continuwuity/releases/latest) or -from the `main` CI branch workflow artifact output. These also include Debian/Ubuntu -packages. +Prebuilt static binaries are available from: +- **Tagged releases**: [Latest release page](https://forgejo.ellis.link/continuwuation/continuwuity/releases/latest) +- **Development builds**: CI artifacts from the `main` branch (includes Debian/Ubuntu packages) -You can download these directly using curl. The `ci-bins` are CI workflow binaries organized by commit -hash/revision, and `releases` are tagged releases. Sort by descending last -modified date to find the latest. +When browsing CI artifacts, `ci-bins` contains binaries organised by commit hash, while `releases` contains tagged versions. Sort by last modified date to find the most recent builds. -These binaries have jemalloc and io_uring statically linked and included with -them, so no additional dynamic dependencies need to be installed. +The binaries include jemalloc and io_uring statically linked, so you won't need to install any additional dependencies. -For the **best** performance: if you are using an `x86_64` CPU made in the last ~15 years, -we recommend using the `-haswell-` optimized binaries. These set -`-march=haswell`, which provides the most compatible and highest performance with -optimized binaries. The database backend, RocksDB, benefits most from this as it -uses hardware-accelerated CRC32 hashing/checksumming, which is critical -for performance. +#### Performance-optimised builds + +For x86_64 systems with CPUs from the last ~15 years, use the `-haswell-` optimised binaries for best performance. These binaries enable hardware-accelerated CRC32 checksumming in RocksDB, which significantly improves database performance. The haswell instruction set provides an excellent balance of compatibility and speed. + +If you're using Docker instead, equivalent performance-optimised images are available with the `-maxperf` suffix (e.g. `forgejo.ellis.link/continuwuation/continuwuity:latest-maxperf`). These images use the `release-max-perf` build profile with [link-time optimisation (LTO)](https://doc.rust-lang.org/cargo/reference/profiles.html#lto) and, for amd64, target the haswell CPU architecture. ### Compiling