├── .gitignore ├── main-window-selection.jwmrc ├── startapp.sh ├── .github └── workflows │ └── docker-image-builder.yml ├── LICENSE ├── Dockerfile └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | doc 2 | .DS_Store -------------------------------------------------------------------------------- /main-window-selection.jwmrc: -------------------------------------------------------------------------------- 1 | normal 2 | Grass 3 | Grass 4 | Grass -------------------------------------------------------------------------------- /startapp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #export LC_ALL="en.utf-8" 4 | export LC_ALL=C 5 | export HOME=/config 6 | exec /usr/bin/grass -------------------------------------------------------------------------------- /.github/workflows/docker-image-builder.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image Builder 2 | on: 3 | push: 4 | branches: 5 | - main 6 | workflow_dispatch: 7 | 8 | jobs: 9 | Docker_Image_Builder: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Set up QEMU 14 | uses: docker/setup-qemu-action@v3 15 | 16 | - name: Set up Docker Buildx 17 | uses: docker/setup-buildx-action@v3 18 | 19 | - name: Login to Docker Hub 20 | uses: docker/login-action@v3 21 | with: 22 | username: ${{ secrets.DOCKERHUB_USERNAME }} 23 | password: ${{ secrets.DOCKERHUB_TOKEN }} 24 | 25 | - name: Build and push 26 | uses: docker/build-push-action@v5 27 | with: 28 | push: true 29 | tags: ${{ secrets.DOCKERHUB_USERNAME }}/grass:latest 30 | platforms: | 31 | linux/amd64 32 | 33 | - name: Delete workflow runs 34 | uses: Mattraks/delete-workflow-runs@main 35 | with: 36 | retain_days: 30 37 | keep_minimum_runs: 4 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2025 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jlesage/baseimage-gui:ubuntu-22.04-v4.5.3 AS builder 2 | 3 | RUN apt-get update && \ 4 | apt-get install -y --no-install-recommends --no-install-suggests ca-certificates curl 5 | 6 | RUN mkdir -p /grass 7 | 8 | COPY startapp.sh /grass/startapp.sh 9 | RUN chmod +x /grass/startapp.sh 10 | 11 | COPY main-window-selection.jwmrc /grass/main-window-selection.jwmrc 12 | 13 | ARG APP_URL=https://files.grass.io/file/grass-extension-upgrades/v5.5.4/Grass_5.5.4_amd64.deb 14 | RUN curl -sS -L ${APP_URL} -o /grass/grass.deb 15 | 16 | 17 | FROM jlesage/baseimage-gui:ubuntu-22.04-v4.5.3 18 | LABEL org.opencontainers.image.authors="217heidai@gmail.com" 19 | 20 | ENV KEEP_APP_RUNNING=1 21 | # jlesage/baseimage-gui:ubuntu-22.04-v4.6 报错:Could not create surfaceless EGL display: EGL_NOT_INITIALIZED,待jlesage/baseimage-gui修复 22 | # jlesage/baseimage-gui:ubuntu-22.04-v4.5 不支持 web auth 23 | ENV SECURE_CONNECTION=1 24 | ENV WEB_AUTHENTICATION=1 25 | ENV WEB_AUTHENTICATION_USERNAME=grass 26 | ENV WEB_AUTHENTICATION_PASSWORD=grass 27 | 28 | RUN set-cont-env APP_NAME "Grass" && \ 29 | set-cont-env APP_VERSION "5.5.4" 30 | 31 | RUN apt-get update && \ 32 | apt-get install -y --no-install-recommends --no-install-suggests ca-certificates libayatana-appindicator3-1 libwebkit2gtk-4.1-0 libegl-dev && \ 33 | apt-get autoremove -y && \ 34 | apt-get -y --purge autoremove && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | COPY --from=builder /grass/ /grass/ 38 | 39 | RUN mkdir -p /etc/jwm && \ 40 | mv /grass/main-window-selection.jwmrc /etc/jwm/main-window-selection.jwmrc && \ 41 | mv /grass/startapp.sh /startapp.sh && \ 42 | dpkg -i /grass/grass.deb && \ 43 | rm -rf /grass 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # grass-desktop-node 2 | Docker image for [Grass Desktop Node](https://app.getgrass.io/register/?referralCode=mym0QmjqhIN89gy). 3 | The Grass Desktop Node is a lightweight standalone application that is designed to run on any desktop. Users of the desktop node are awarded priority network traffic and are able to earn additional rewards for occasional access to the user's bandwidth. 4 | 5 | ## Setup 6 | ```bash 7 | docker run -d \ 8 | --restart unless-stopped \ 9 | --name grass \ 10 | --network host \ 11 | -v $HOME/appdata/grass:/config \ 12 | -e USER_ID=$(id -u) \ 13 | -e GROUP_ID=$(id -g) \ 14 | -e WEB_LISTENING_PORT=5800 15 | 217heidai/grass:latest 16 | ``` 17 | or 18 | ```bash 19 | docker run -d \ 20 | --restart unless-stopped \ 21 | --name grass \ 22 | -v $HOME/appdata/grass:/config \ 23 | -e USER_ID=$(id -u) \ 24 | -e GROUP_ID=$(id -g) \ 25 | -p 5800:5800 \ 26 | 217heidai/grass:latest 27 | ``` 28 | 29 | ## Setting 30 | 1. Open the webpage https://yourip:5800 31 | 2. Login grass with your grass account 32 | 3. Earn more rewards 33 | 34 | ## ChangeLog 35 | | Date | Content | 36 | |-----------|----------------------------------------------------------------------| 37 | | 2025.07.16 | grass 5.5.4 | 38 | | 2025.05.07 | grass 5.3.1 | 39 | | 2025.03.21 | grass 5.2.2 | 40 | | 2025.03.14 | grass 5.2.0 | 41 | | 2025.03.02 | grass 5.1.1 | 42 | | 2025.02.24 | grass 5.1.0 | 43 | | 2025.02.05 | grass 4.32.0 | 44 | | 2025.01.23 | grass 4.31.2 | 45 | | 2024.12.16 | grass 4.30.0 | 46 | | 2024.11.20 | grass 4.29.0 | 47 | | 2024.11.06 | grass 4.28.2 | 48 | | 2024.11.04 | grass 4.28.1 | 49 | | 2024.11.01 | grass 4.28.0 | 50 | | 2024.10.31 | grass 4.27.3 | 51 | --------------------------------------------------------------------------------