Home / Playbooks / Grass in Docker

Run the Grass Node in Docker (Linux, VPS & Home Server)

Headless Grass node setup: login via cookie, keep the connection alive through reboots, and stay inside ToS while your IP earns.

Beginner⏱ ~20 minutes·Free (uses hardware you have)·Updated 2026-08-24
Contents
  1. Prerequisites
  2. Grab your auth cookie
  3. Deploy the container
  4. VPS-specific notes
  5. Maintenance & troubleshooting

1. Prerequisites

- A registered Grass account (sign up here — referral supports future testing)

- Any Linux machine: home server, N100, Pi (64-bit OS), or VPS

- Docker installed (see our Pi playbook for base setup)

ToS note: one account per person. Multiple devices on one account are fine; multiple accounts are how people lose everything.

2. Grab your auth cookie

The Docker node authenticates with your session token rather than email/password directly. From any browser where you're logged into app.grass.io:

1. Press F12 → Application/Storage tab → Cookies → https://app.grass.io

2. Copy the value of the auth-related cookie (current name per community docs; if renamed, take the longest JWT-looking value)

Session tokens expire periodically. When logs show repeated auth failures, refresh the cookie from a browser login. Some community images handle re-auth via credentials instead — check the image's README for the current preferred method.

3. Deploy the container

# ~/stack/docker-compose.yml (add to existing stack)
services:
  grass:
    image: gogol/grass-node:latest
    container_name: grass
    restart: unless-stopped
    environment:
      - USER_EMAIL=you@example.com
      - USER_PASSWORD=yourpassword
      # or cookie-based auth per image docs:
      # - GRASS_TOKEN=paste_cookie_here
    mem_limit: 400m
cd ~/stack && docker compose up -d grass
docker compose logs -f grass

Healthy logs show websocket connections and epoch/heartbeat messages. Unhealthy looks like endless reconnect loops — usually expired token or blocked networking.

4. VPS-specific notes

Grass accepts datacenter IPs but pays them a fraction of residential rates. VPS nodes make sense when:

- The VPS is otherwise idle (sunk cost already)

- You're accumulating referral-network volume legitimately

Expectations per datacenter node: roughly $1–3/month equivalent. Not rent money — satellite income.

ISP caution: residential users on metered or strict ISPs should set router-level expectations. Grass traffic is modest (GBs/day), but sustained proxy patterns occasionally trigger ISP notices. If yours does, pause and reassess — no payout is worth an ISP dispute.

5. Maintenance & troubleshooting

SymptomFix
Auth failed loopsRefresh cookie/token from browser login
No epochs creditedCheck platform status page; verify device shows online in dashboard
Container restartingdocker compose logs grass — usually OOM; raise mem_limit
Earnings droppedNormal variance + token price movement; check network-wide announcements

Monthly routine: confirm device online in dashboard, claim rewards when sensible, let Watchtower handle image updates.

Tools used in this playbook

This guide contains referral links to some of the services mentioned. They cost you nothing and fund more testing. See disclosure.