Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

295 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Solarpunk Gift Economy Mesh Network 🌱

Production-ready system for regenerative communities to coordinate mutual aid without internet dependency.

Status License Python TypeScript

πŸ“± Android App

Download APK

Standalone offline app - runs Python backend directly on your phone. No internet required after install.

  • Works 100% offline
  • 67 MB download
  • Android 8.0+ required
  • Mesh sync via WiFi Direct

View all releases


πŸš€ One-Line Install

Linux/Mac:

curl -sL https://raw.githubusercontent.com/lizTheDeveloper/solarpunk_utopia/main/setup.sh | bash

Termux (Android):

pkg install curl -y && curl -sL https://raw.githubusercontent.com/lizTheDeveloper/solarpunk_utopia/main/setup.sh | bash

Or using wget:

wget -qO- https://raw.githubusercontent.com/lizTheDeveloper/solarpunk_utopia/main/setup.sh | bash

Note: Requires Python 3.11 (not 3.12). The setup script will automatically install Python 3.11 if needed. See PYTHON_VERSION.md for details.

This installs everything and starts all services. Access at http://localhost:3000 when complete.

Running on Android (Termux)

Prerequisites

  • Android 7.0+ (Android 11+ requires extra steps below)
  • 2GB+ free storage
  • Stable WiFi connection

Installation Steps

  1. Install Termux from F-Droid (NOT Google Play - that version is broken)

    • Install F-Droid app: https://f-droid.org/
    • Search for "Termux" in F-Droid
    • Install Termux (version 0.118.x recommended)
  2. Grant Permissions (IMPORTANT for Android 11+)

    • Open Android Settings β†’ Apps β†’ Termux β†’ Permissions
    • Enable "Files and media" or "Storage"
    • For Android 11+: Enable "All files access" under Special app access
  3. First Launch

    • Open Termux
    • Wait for bootstrap installation (2-5 minutes)
    • Do not touch anything until you see a $ prompt
    • If you get "Permission denied" errors, see troubleshooting below
  4. Run the installer:

    pkg install curl -y && curl -sL https://raw.githubusercontent.com/lizTheDeveloper/solarpunk_utopia/main/setup.sh | bash

    Installation takes 5-15 minutes depending on your device.

  5. Access the app in your phone's browser:

    # Open Chrome/Firefox and go to:
    http://localhost:3000
  6. Keep services running after closing Termux:

    Prevent CPU sleep (required):

    termux-wake-lock

    This keeps services running even when screen is off.

    Start services in background:

    nohup ./run_all_services.sh > /dev/null 2>&1 &

    Prevent Android from killing Termux:

    • Settings β†’ Apps β†’ Termux β†’ Battery β†’ Unrestricted (or "Don't optimize")
    • This prevents Android from killing Termux in the background

    Keep screen on while working (optional, drains battery):

    • Settings β†’ Display β†’ Screen timeout β†’ 30 minutes (or higher)
    • Or use Developer Options β†’ Stay awake (while charging)
  7. Auto-start on phone boot (optional):

    • Install Termux:Boot from F-Droid
    • Create startup script:
      mkdir -p ~/.termux/boot
      cat > ~/.termux/boot/start-solarpunk.sh << 'EOF'
      #!/data/data/com.termux/files/usr/bin/sh
      termux-wake-lock
      cd ~/solarpunk_utopia
      ./run_all_services.sh > /dev/null 2>&1 &
      EOF
      chmod +x ~/.termux/boot/start-solarpunk.sh
  8. Check service health:

    curl http://localhost:8000/health

Troubleshooting Android Installation

"Unable to install bootstrap" or "Permission denied":

  1. Clean reinstall (this fixes 90% of issues):

    # In Android Settings:
    Settings β†’ Apps β†’ Termux β†’ Storage β†’ Clear Data
    Settings β†’ Apps β†’ Termux β†’ Uninstall
    # Then reinstall from F-Droid and grant permissions immediately
  2. Android 11+ Phantom Process Issue:

    • If bootstrap keeps failing, you may need to disable phantom process killer
    • Requires ADB: adb shell "settings put global settings_enable_monitor_phantom_procs false"
    • Then reboot phone and reinstall Termux
  3. Change repository mirror:

    termux-change-repo
    # Select "All repositories" β†’ Choose a different mirror
  4. Alternative: Use UserLAnd

    • If Termux won't work, install UserLAnd from Play Store/F-Droid
    • Choose Ubuntu distribution
    • Run the Linux installer instead

Services won't start:

  • Make sure you have enough storage (check with df -h)
  • Try killing existing processes: ./stop_all_services.sh then restart

Can't access localhost:3000:

  • Check if services are running: ps aux | grep python
  • Check logs: tail -f logs/dtn_bundle_system.log
  • Make sure you're using http:// not https://

What is This?

A complete offline-first mesh network system for Solarpunk communes to:

  • 🎁 Share resources via gift economy (offers, needs, exchanges)
  • πŸ“¦ Distribute bundles via delay-tolerant networking
  • πŸ” Search distributed indexes across mesh islands
  • πŸ“š Share knowledge through chunked file distribution
  • πŸ€– Get AI assistance for matching, planning, and coordination
  • 🌐 Operate autonomously without internet or corporate platforms

This is not a demo. This is production software for real communities.


Quick Start

Manual Setup (if you prefer not to use the one-liner above)

# Clone repository
git clone https://github.com/lizTheDeveloper/solarpunk_utopia.git
cd solarpunk_utopia
# Setup backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Start all services
./run_all_services.sh
# Start frontend (new terminal)
cd frontend
npm install
npm run dev
# Access at http://localhost:3000

See QUICKSTART.md for detailed guide.


What's Included

Core Systems (28 of 31 complete - 90%)

TIER 0 - Foundation

  • βœ… DTN Bundle System (5 systems) - Delay-tolerant networking with store-and-forward
  • βœ… ValueFlows Node (6 systems) - Complete gift economy coordination (VF v1.0)
  • ⏳ Phone Deployment (0 systems) - Deferred for physical hardware

TIER 1 - Core Functionality

  • βœ… Discovery & Search (3 systems) - Distributed queries across mesh
  • βœ… File Chunking (3 systems) - Knowledge distribution with Merkle trees
  • βœ… Multi-AP Mesh Network (4 systems) - Physical infrastructure (Mode A/C)

TIER 2 - Intelligence

  • βœ… Agent System (7 systems) - AI agents for coordination (proposals require approval)

Infrastructure

  • βœ… Complete unified frontend (React + TypeScript, 47 files)
  • βœ… Systemd service management (Linux)
  • βœ… Nginx reverse proxy
  • βœ… End-to-end integration tests
  • βœ… Comprehensive documentation (8,000+ lines)

Statistics

  • 235+ source files
  • 32,000+ lines of production code
  • 90+ REST API endpoints (auto-documented)
  • 20+ test suites (100% pass rate)

Key Features

🎁 Gift Economy Coordination

  • Create offers and needs in <1 minute
  • AI matchmaker finds compatible offers/needs
  • Exchange coordination with bilateral approval
  • Event recording for accountability and provenance
  • All 13 ValueFlows object types implemented

πŸ“¦ Delay-Tolerant Networking

  • Store-and-forward between AP islands
  • Priority-based forwarding (emergency β†’ perishable β†’ normal β†’ low)
  • Ed25519 cryptographic signing
  • TTL enforcement and cache budgets
  • Bundle propagation <10 min via bridge nodes

πŸ” Distributed Discovery

  • Periodic index publishing (offers, needs, files, services)
  • Query propagation through mesh network
  • Cached indexes enable offline discovery
  • Bridge nodes serve as query responders

πŸ“š Knowledge Distribution

  • Content-addressed file distribution (SHA-256)
  • Intelligent chunking (256KB-1MB)
  • Merkle tree verification
  • Library nodes cache popular content
  • Resume partial downloads

🌐 Multi-AP Mesh Infrastructure

  • Multiple AP islands with independent subnets
  • Bridge nodes walk between islands carrying bundles
  • Mode C (DTN-only) always works (mandatory)
  • Mode A (BATMAN-adv) optional speedup
  • Graceful degradation

πŸ€– AI Coordination Agents

  • 7 specialized agents (matchmaker, scheduler, planner, etc.)
  • Proposal-based (NOT allocations) - human approval required
  • Completely opt-in (no surveillance)
  • Transparent reasoning (explanation + inputs + constraints)

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Solarpunk Mesh Network β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DTN Bundle β”‚ ← Foundation: Store-and-forward transport
β”‚ System β”‚ Port 8000, Ed25519 signing
β”‚ (TIER 0) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β”‚
 β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 ↓ ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ValueFlows β”‚ β”‚ Discovery & β”‚ ← Core: Economic coordination
β”‚ Node β”‚ β”‚ Search β”‚ and distributed search
β”‚ (TIER 0) β”‚ β”‚ (TIER 1) β”‚
β”‚ Port 8001 β”‚ β”‚ Port 8003 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β”‚ β”‚
 β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 ↓ ↓ ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Agent System β”‚ β”‚ File β”‚ β”‚ Multi-AP β”‚
β”‚ (TIER 2) β”‚ β”‚ Chunkingβ”‚ β”‚ Mesh β”‚
β”‚ 7 AI agents β”‚ β”‚(TIER 1) β”‚ β”‚ (TIER 1) β”‚
β”‚ β”‚ β”‚Port 8004β”‚ β”‚ Port 8002 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Documentation

Getting Started

System Details

  • BUILD_PLAN.md - Vision, architecture, and specifications
  • FINAL_SUMMARY.md - Complete summary of what was built
  • Component READMEs - Each system has detailed documentation

API Documentation

Auto-generated interactive docs available at:


Technology Stack

Backend: Python 3.12, FastAPI, SQLite, asyncio, Ed25519 crypto Frontend: React 18, TypeScript, Vite, Tailwind CSS, React Query Infrastructure: Systemd, Nginx, Python venv Mesh: BATMAN-adv, hostapd, dnsmasq Testing: pytest, pytest-asyncio


Use Cases

For Solarpunk Communes

  • Share surplus food before it spoils (perishables dispatcher)
  • Lend tools and equipment easily (offer/need matching)
  • Coordinate seasonal planting and harvests (permaculture planner)
  • Teach and learn skills within community (education pathfinder)
  • Plan work parties and events (scheduler agent)
  • Track resource flows for accountability (event recording)
  • Operate entirely offline and autonomously (DTN networking)

For Developers

  • Complete reference implementation of ValueFlows v1.0
  • Production-ready DTN bundle system with Ed25519 signing
  • Multi-agent AI coordination framework with approval gates
  • Content-addressed file distribution with Merkle trees
  • Distributed discovery and search across mesh networks
  • Real-world offline-first architecture patterns

Project Structure

solarpunk_utopia/
β”œβ”€β”€ app/ # DTN Bundle System + AI Agents
β”œβ”€β”€ valueflows_node/ # ValueFlows implementation + React UI
β”œβ”€β”€ discovery_search/ # Discovery & Search system
β”œβ”€β”€ file_chunking/ # File chunking system
β”œβ”€β”€ mesh_network/ # Multi-AP mesh network software
β”œβ”€β”€ frontend/ # Unified frontend application
β”œβ”€β”€ tests/integration/ # End-to-end tests
β”œβ”€β”€ openspec/ # OpenSpec proposals (7 proposals)
β”œβ”€β”€ setup.sh # One-line installer
β”œβ”€β”€ run_all_services.sh # Start all services
└── stop_all_services.sh # Stop all services

Contributing

This is infrastructure for regenerative communities. Contributions welcome!

  1. Read CLAUDE.md for repository architecture
  2. Check BUILD_STATUS.md for what's complete
  3. Review openspec/ for proposals and specifications
  4. Run tests: pytest tests/integration/ -v
  5. Follow existing patterns (FastAPI, React Query, Pydantic, TypeScript)

License

MIT License - Use this to build a better world!

See LICENSE file for details.


Vision

From the original specification:

"We're building the infrastructure for regenerative gift economy communities. This isn't just softwareβ€”it's a tool for communities to coordinate mutual aid, share resources, plan permaculture work, and learn together, all without depending on corporate platforms or internet infrastructure."

When this system works, communes can:

  • βœ… Share surplus food before it spoils
  • βœ… Lend tools and equipment easily
  • βœ… Coordinate seasonal planting and harvests
  • βœ… Teach and learn skills within the community
  • βœ… Plan work parties and events
  • βœ… Track resource flows for accountability
  • βœ… Operate entirely offline and autonomously

This is infrastructure for a better world. Let's build it together. 🌱


Status

Current: βœ… Production ready (28 of 31 systems complete) Next: Hardware deployment (Raspberry Pi APs, Android bridge nodes) Future: Multi-commune federation via NATS


Support


Built with ❀️ for regenerative gift economy communities

Let's coordinate mutual aid without corporate platforms. Let's build solidarity infrastructure. Let's create the world we want to see. 🌱

About

🌱 Production-ready gift economy mesh network for Solarpunk communes - Complete offline-first system for mutual aid coordination

Topics

Resources

Contributing

Stars

42 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /