Files
wild-directory/karrot/versions/1/README.md
Paul Payne 74570413fc fix(karrot): fix nginx DNS resolver for Kubernetes and add README
The karrot-frontend nginx template hardcodes Docker's DNS resolver
(127.0.0.11) which doesn't exist in Kubernetes. Added a ConfigMap to
override the template, removing the Docker DNS resolver by using a
direct proxy_pass with no nginx variable (which would force runtime
resolution). Also adds a README with usage instructions.

Documents lessons learned in ADDING-APPS-NOTES.md:
- Note 24: nginx Docker DNS resolver doesn't work in Kubernetes; any
  nginx variable in proxy_pass (including $request_uri) forces runtime
  DNS resolution requiring a resolver directive
- Note 25: ConfigMap changes don't restart pods; subPath mounts never
  auto-update; always follow with kubectl rollout restart
- Note 26: includeSelectors mismatch affects every deployment in an
  app — check all endpoints, not just the web-facing one

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 04:08:04 +00:00

1.3 KiB

Karrot

Karrot is a community platform for sharing resources, coordinating food-saving activities, and organizing volunteers. Groups can manage pickups, track saved food, and communicate through a shared feed.

Dependencies

  • PostgreSQL - Database for storing groups, users, and activity data
  • SMTP - For account verification and notifications

Configuration

Key settings in config.yaml:

  • domain - Where Karrot will be accessible (default: karrot.{your-cloud-domain})
  • storage - Persistent volume size for uploaded files (default: 2Gi)
  • redis.host - Redis instance for caching and background jobs (default: app-local karrot-redis)
  • smtp - Email settings inherited from your Wild Cloud SMTP service

First-Time Setup

  1. Add and deploy the app:

    wild app add karrot
    wild app deploy karrot
    
  2. Visit https://karrot.{your-cloud-domain} and register an account. The first user to register becomes the site admin.

  3. Log in and create your first group to start coordinating.

Notes

  • Karrot supports federation — groups can connect with other Karrot instances
  • The secretKey and dbPassword are auto-generated in secrets.yaml
  • Uploaded files (photos, attachments) are stored in the persistent volume and shared between the frontend and backend pods