• 9 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle























  • Ahh, I see, Why didn’t I remember this before that I can do something like this. Thanks for the help :). Actually the thing is I am not very good at docker, and I am in the process of finding someone who can actually work on in this area like for example reducing build times, caching, etc. One of the things we want to improve right now is reducing build time like I am using layered caching approach but still it takes about 800 seconds which is not very great. So if you are interested then I would suggest making a PR at our repository. We would be glad to have you as part of the project contributors. And Maybe in future as the maintainer too. Currently, the Dockerfile looks like this:

    FROM rust:latest AS chef
    # We only pay the installation cost once,
    # it will be cached from the second build onwards
    RUN cargo install cargo-chef
    
    WORKDIR /app
    
    FROM chef AS planner
    COPY . . 
    RUN cargo chef prepare --recipe-path recipe.json
    
    FROM chef AS builder
    COPY --from=planner /app/recipe.json recipe.json
    # Build dependencies - this is the caching Docker layer!
    RUN cargo chef cook --release --recipe-path recipe.json
    
    # Build application
    COPY . .
    RUN cargo install --path .
    
    # We do not need the Rust toolchain to run the binary!
    FROM gcr.io/distroless/cc-debian12
    COPY --from=builder /app/public/ /opt/websurfx/public/
    COPY --from=builder /app/websurfx/config.lua /etc/xdg/websurfx/config.lua # -- 1
    COPY --from=builder /app/websurfx/config.lua /etc/xdg/websurfx/allowlist.txt # -- 2
    COPY --from=builder /app/websurfx/config.lua /etc/xdg/websurfx/blocklist.txt # -- 3
    COPY --from=builder /usr/local/cargo/bin/* /usr/local/bin/
    CMD ["websurfx"]
    

    Note: The 1,2 and 3 marked in the Dockerfile are the files which are the user editable files like config file and custom filter lists.


  • Sorry for the delay in the reply.

    Ok, thanks for suggesting this out. I have not thought about particularly in this area, but I would be really interested to have the docker image uploaded to docker hub. The only issue is that the app requires that the config file and blocklist and allowlists should be included within the docker hub. So the issue is that if a prebuilt image is provided, then is it possible to edit it within the docker container ?? If so then it is ok, otherwise it would still be good, but it would limit the usage to users who are by default satisfied by the default config. While others would still need to build the image manually, which is not very great.

    Also, As side comment in case you have missed this. Some updates on the project:

    • We have just recently got the custom filter lists feature merged. If you wish to take a look at this PR, here.
    • Also, recently there has been ongoing on getting new themes added, and an active discussion is going on that topic and some themes’ proposal have been placed. Here is a quick preview of one of the theme and what it might look like:

    Home Page

    Search Page