{
  "name": "Eddyline",
  "maker": {
    "name": "SectorFlow",
    "url": "https://sectorflow.ai"
  },
  "summary": "Eddyline is a self-hosted issue tracker for software agencies and consultancies. Issues, boards, docs and time tracking in one tool, with clients free and unlimited, and your data on your own server.",
  "currency": "USD",
  "clientsFree": "Clients are free and unlimited on every edition.",
  "editions": [
    {
      "id": "free",
      "name": "Free",
      "teamMembers": 3,
      "clients": "unlimited, free",
      "price": null,
      "period": null,
      "trialDays": null
    },
    {
      "id": "trial",
      "name": "Trial",
      "teamMembers": 25,
      "clients": "unlimited, free",
      "price": null,
      "period": null,
      "trialDays": 30
    },
    {
      "id": "team",
      "name": "Team",
      "teamMembers": 15,
      "clients": "unlimited, free",
      "price": 490,
      "period": "year",
      "trialDays": null
    },
    {
      "id": "studio",
      "name": "Studio",
      "teamMembers": 50,
      "clients": "unlimited, free",
      "price": 990,
      "period": "year",
      "trialDays": null
    }
  ],
  "teamMemberRule": "Your staff and anyone you give the admin or member role on a project. Clients never count.",
  "freeTier": {
    "teamMembers": 3,
    "clients": "unlimited, free",
    "licenceRequired": false
  },
  "trial": {
    "teamMembers": 25,
    "clients": "unlimited, free",
    "days": 30,
    "url": "https://eddyline.app/trial"
  },
  "managed": {
    "plans": [
      {
        "name": "Managed Team",
        "teamMembers": 15,
        "clients": "unlimited, free",
        "monthly": 79,
        "annual": 790
      },
      {
        "name": "Managed Studio",
        "teamMembers": 50,
        "clients": "unlimited, free",
        "monthly": 149,
        "annual": 1490
      }
    ],
    "setupService": 299,
    "url": "https://eddyline.app/managed"
  },
  "designPartner": {
    "percentOff": 40,
    "places": 10,
    "promoCode": "DESIGNPARTNER",
    "url": "https://eddyline.app/design-partners"
  },
  "install": {
    "line": "curl -fsSL https://get.eddyline.app | sh",
    "requirements": [
      "Ubuntu 22.04 or 24.04, or Debian 12",
      "amd64 or arm64",
      "1 GB of RAM, 2 GB recommended",
      "Ports 80 and 443 free",
      "A DNS A record pointing at the server"
    ],
    "url": "https://eddyline.app/install"
  },
  "whatLeavesTheServer": [
    {
      "from": "App",
      "to": "get.eddyline.app/releases.json",
      "when": "Once a day",
      "canTurnOff": "Yes, UPDATE_CHECK=false"
    },
    {
      "from": "App",
      "to": "Your SMTP server or SendGrid",
      "when": "When mail is sent",
      "canTurnOff": "Yes, by not setting up mail"
    },
    {
      "from": "App",
      "to": "Google",
      "when": "Google sign-in",
      "canTurnOff": "Yes, by not setting it up"
    },
    {
      "from": "App and users' browsers",
      "to": "Your OpenID Connect provider",
      "when": "OpenID Connect sign-in",
      "canTurnOff": "Yes, by not setting it up"
    },
    {
      "from": "Users' browsers",
      "to": "Google's image host",
      "when": "Showing avatars of people who signed in with Google",
      "canTurnOff": "Not yet"
    },
    {
      "from": "Caddy",
      "to": "Let's Encrypt",
      "when": "Certificate issue and renewal",
      "canTurnOff": "Only with --no-tls"
    },
    {
      "from": "Installer and update",
      "to": "Docker's apt repo, GHCR, Docker Hub (Caddy and Postgres images), get.eddyline.app",
      "when": "Install and update only",
      "canTurnOff": "No, they fetch the software"
    }
  ],
  "sso": {
    "onEveryEdition": true,
    "methods": [
      "Google",
      "OpenID Connect"
    ]
  },
  "backupAndRestore": "A nightly backup runs on the server and keeps the newest 14 dumps. One dump is the whole install, attachments included. A hook can copy backups off the server, and a restore command rebuilds from a dump.",
  "support": {
    "email": "hello@eddyline.app",
    "responseTime": "one business day"
  },
  "latestRelease": {
    "version": null,
    "date": null,
    "notes": "https://eddyline.app/changelog",
    "source": "changelog"
  },
  "docsUrl": "https://eddyline.app/docs",
  "pricingUrl": "https://eddyline.app/pricing",
  "mcpUrl": "https://eddyline.app/api/mcp"
}