├── .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 |
--------------------------------------------------------------------------------