{
  "id": "osc-stack-host-app-in-sweden",
  "job": "Run an app and its database on managed open source services hosted in Sweden, and know before you start where it runs, who operates it, what sits outside the EU/EEA and how to leave.",
  "aliases": [
    "managed open source hosting in sweden",
    "postgresql hosting sweden",
    "mariadb hosting sweden",
    "open source hosting in the eu with a sweden location"
  ],
  "distinctFrom": [
    {
      "id": "osc-stack-deploy-agent-written-app",
      "why": "That recipe is the deploy chain. This one hands off to it and adds the location facts and the database choice."
    },
    {
      "id": "osc-stack-plan-own-ai-app",
      "why": "That recipe plans which services an AI-built app should use. This one answers where they run."
    },
    {
      "id": "osc-stack-provision-agent-backend",
      "why": "That recipe provisions a backend for an agent. This one carries no agent-specific steps."
    }
  ],
  "inputs": [
    {
      "protocol": "git",
      "source": "the app's git repository (GitHub or any HTTPS git host)"
    }
  ],
  "outputs": [
    {
      "protocol": "HTTPS",
      "consumer": "the app's users",
      "runtimes": ["nodejs"]
    }
  ],
  "handsOffTo": {
    "id": "osc-stack-deploy-agent-written-app",
    "descriptorUrl": "https://www.osaas.io/stacks/deploy-agent-written-app.json",
    "why": "Follow that recipe for the deploy itself (database, storage, parameter store, create-my-app, wait-for-app-ready). This recipe adds the location fields below and MariaDB as an alternative to its PostgreSQL step."
  },
  "recommendedPath": {
    "chain": [
      {
        "step": 1,
        "serviceId": "birme-osc-postgresql",
        "role": "relational database, hosted in Sweden",
        "requiredConfig": ["name", "PostgresPassword"],
        "requiresCredential": true,
        "note": "Same as step 1 of the hand-off recipe. Use this or step 2."
      },
      {
        "step": 2,
        "serviceId": "linuxserver-docker-mariadb",
        "role": "relational database (MySQL-compatible), hosted in Sweden",
        "requiredConfig": ["name", "RootPassword"],
        "requiresCredential": true,
        "note": "Alternative to step 1: use one of the two. Optional at setup: Database, User, Password (live schema 2026-10-16)."
      },
      {
        "step": 3,
        "action": "deploy",
        "role": "follow handsOffTo from its step 2 onward, with the connection string of the database you chose"
      }
    ]
  },
  "location": {
    "infrastructureProvider": "Elastx AB",
    "infrastructureProviderOwnership": "Swedish-owned",
    "infrastructureRegion": "Stockholm, Sweden",
    "operator": "Eyevinn Technology AB",
    "appsAndDataHostedIn": "Sweden",
    "residencyStatement": "OSC's primary infrastructure is Elastx in Stockholm, a Swedish-owned provider, and the applications you deploy and the data they store are hosted in Sweden. Some supporting functions rely on providers that operate outside the EU/EEA, such as payment processing, optional third-party sign-in and our AI features; the current list, and the transfer safeguard we rely on for each, is at www.osaas.io/subprocessors. If your own application or a service you configure calls a third-party API, that data goes wherever that provider operates, and it is your choice whether it does. You can also self-host any of our open source components.",
    "residencyStatementSource": "https://www.osaas.io/about (FAQ: Where is OSC hosted?)",
    "outsideEuEea": {
      "categories": [
        "payment processing",
        "optional third-party sign-in",
        "AI features"
      ],
      "register": "https://www.osaas.io/subprocessors",
      "note": "The register is the authority for each provider, its location and the transfer safeguard. This recipe does not copy it. An entry still being confirmed is marked as such there."
    },
    "thirdPartyApis": "Data your app sends to a third-party API goes wherever that provider operates."
  },
  "exit": {
    "services": "Each catalog service is the unmodified open source project, so it also runs on your own servers or another cloud.",
    "data": [
      "PostgreSQL: pg_dump",
      "MariaDB: mysqldump or mariadb-dump",
      "MinIO: any S3 client"
    ],
    "code": "The app is built from your own git repository."
  },
  "notVerified": [
    "a connection from a My App to linuxserver-docker-mariadb (the hand-off recipe's own run used PostgreSQL)"
  ],
  "servicesVerifiedLive": {
    "date": "2026-10-16",
    "method": "osc_call_tool wrap (name=get-service-schema) on birme-osc-postgresql and linuxserver-docker-mariadb. Location fields from www.osaas.io/about and www.osaas.io/subprocessors (last updated 2026-10-12), read 2026-10-16."
  },
  "gateCheck": {
    "gatedServiceId": "eyevinn-just-go-live",
    "usesGatedService": false,
    "note": "This stack does not name or link eyevinn-just-go-live."
  },
  "verifiedOn": "2026-10-16",
  "publishedAt": "https://www.osaas.io/open-source-hosting-sweden",
  "descriptorUrl": "https://www.osaas.io/stacks/host-app-in-sweden.json"
}
