diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index f32146b3..f780dc85 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -27,7 +27,7 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: cargo-build-${{ hashFiles('**/Cargo.lock') }} + key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/Cargo.toml') }} restore-keys: | cargo-build @@ -59,7 +59,7 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: cargo-test-${{ hashFiles('**/Cargo.lock') }} + key: cargo-test-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/Cargo.toml') }} restore-keys: | cargo-test cargo-build @@ -92,7 +92,7 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: cargo-make_test-${{ hashFiles('**/Cargo.lock') }} + key: cargo-make_test-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/Cargo.toml') }} restore-keys: | cargo-make_test cargo-build diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index be7c504e..279db48d 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -21,7 +21,7 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: cargo-docker-${{ hashFiles('**/Cargo.lock') }} + key: cargo-docker-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('**/Cargo.toml') }} restore-keys: | cargo-docker cargo-build @@ -35,7 +35,7 @@ jobs: run: devbox run -- make update_version - name: Build servers - run: devbox run -- make build_cli_release build_web + run: devbox run -- make build_cli_release build_web_release - name: Docker build signal uses: mr-smithers-excellent/docker-build-push@v5 @@ -43,7 +43,6 @@ jobs: image: fledgre/flsignal registry: docker.io dockerfile: Dockerfile.flsignal - directory: target-common/release username: ${{ secrets.DOCKERHUB_NAME }} password: ${{ secrets.DOCKERHUB }} tags: latest @@ -54,7 +53,6 @@ jobs: image: fledgre/fledger registry: docker.io dockerfile: Dockerfile.fledger - directory: target-common/release username: ${{ secrets.DOCKERHUB_NAME }} password: ${{ secrets.DOCKERHUB }} tags: latest diff --git a/Dockerfile.fledger b/Dockerfile.fledger index 5108ff26..3bc26bb8 100644 --- a/Dockerfile.fledger +++ b/Dockerfile.fledger @@ -1,15 +1,12 @@ -FROM jetpackio/devbox:latest +FROM debian:bookworm-slim -# Installing your devbox project -WORKDIR /code -USER root:root -RUN mkdir -p /code && chown ${DEVBOX_USER}:${DEVBOX_USER} /code -USER ${DEVBOX_USER}:${DEVBOX_USER} -COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.json devbox.json -COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.lock devbox.lock +RUN apt update && apt install patchelf -RUN devbox run -- echo "Installed Packages." +COPY target-common/release/fledger fledger +RUN patchelf --set-interpreter /usr/lib64/ld-linux-x86-64.so.2 fledger +FROM debian:bookworm-slim WORKDIR /fledger -COPY ./fledger fledger +COPY --from=0 fledger /fledger/fledger + ENTRYPOINT ["/fledger/fledger", "-vv"] diff --git a/Dockerfile.flsignal b/Dockerfile.flsignal index 13526458..b62756f9 100644 --- a/Dockerfile.flsignal +++ b/Dockerfile.flsignal @@ -1,15 +1,12 @@ -FROM jetpackio/devbox:latest +FROM debian:bookworm-slim -# Installing your devbox project -WORKDIR /code -USER root:root -RUN mkdir -p /code && chown ${DEVBOX_USER}:${DEVBOX_USER} /code -USER ${DEVBOX_USER}:${DEVBOX_USER} -COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.json devbox.json -COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.lock devbox.lock +RUN apt update && apt install patchelf -RUN devbox run -- echo "Installed Packages." +COPY target-common/release/flsignal flsignal +RUN patchelf --set-interpreter /usr/lib64/ld-linux-x86-64.so.2 flsignal +FROM debian:bookworm-slim WORKDIR /fledger -COPY ./flsignal flsignal +COPY --from=0 flsignal /fledger/flsignal + ENTRYPOINT ["/fledger/flsignal", "-vv"] diff --git a/Makefile b/Makefile index 743c843e..4cd47cef 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,9 @@ build_cli: build_cli_release: cd cli && cargo build --release -p fledger && cargo build --release -p flsignal +build_web_release: + cd flbrowser && trunk build --release + build_web: cd flbrowser && trunk build diff --git a/cli/Cargo.lock b/cli/Cargo.lock index 90a50cd1..2da63bfa 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -491,6 +491,16 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1545,6 +1555,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + [[package]] name = "p256" version = "0.13.2" @@ -1987,6 +2003,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -2029,6 +2058,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2067,6 +2105,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "1.0.23" @@ -2475,7 +2536,10 @@ dependencies = [ "futures-util", "log", "rustls", + "rustls-native-certs", + "rustls-pki-types", "tokio", + "tokio-rustls", "tungstenite", ] @@ -2591,6 +2655,8 @@ dependencies = [ "httparse", "log", "rand", + "rustls", + "rustls-pki-types", "sha1", "thiserror", "utf-8", diff --git a/flbrowser/Cargo.toml b/flbrowser/Cargo.toml index 1429c218..ef5fabfa 100644 --- a/flbrowser/Cargo.toml +++ b/flbrowser/Cargo.toml @@ -7,6 +7,10 @@ description = "Web interface for fledger" repository = "https://github.com/ineiti/fledger" license = "AGPLv3" +[profile.release] +lto = true +opt-level = 's' + [features] local = [] diff --git a/flnet/Cargo.lock b/flnet/Cargo.lock index 9dc92654..72229a10 100644 --- a/flnet/Cargo.lock +++ b/flnet/Cargo.lock @@ -441,6 +441,16 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1453,6 +1463,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + [[package]] name = "p256" version = "0.13.2" @@ -1929,6 +1945,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "2.1.3" @@ -1971,6 +2000,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2009,6 +2047,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "1.0.23" @@ -2428,7 +2489,10 @@ dependencies = [ "futures-util", "log", "rustls", + "rustls-native-certs", + "rustls-pki-types", "tokio", + "tokio-rustls", "tungstenite", ] @@ -2544,6 +2608,8 @@ dependencies = [ "httparse", "log", "rand", + "rustls", + "rustls-pki-types", "sha1", "thiserror", "utf-8", diff --git a/flnet/Cargo.toml b/flnet/Cargo.toml index eb5591c1..a0f55853 100644 --- a/flnet/Cargo.toml +++ b/flnet/Cargo.toml @@ -53,7 +53,7 @@ tokio-stream = "0.1" # For libc rand = { version = "0.8", optional = true } -tokio-tungstenite = { version = "0.23", features = ["rustls"], optional = true } +tokio-tungstenite = { version = "0.23", features = ["rustls-tls-native-roots"], optional = true } webrtc = { version = "0.11", optional = true } # For wasm