Skip to content

Subdomain-based tenants in Omeka S (optional, env-flagged) #2417

@tacman

Description

@tacman

Hi Omeka S team — first, thank you for all the work you’ve put into this project. It rocks.

We’d like to simplify running multiple sites without having to deploy separate containers and are thinking about adding subdomain-based “tenants” to Omeka S and want to ask upfront if a PR in this direction is something you’d be open to reviewing/accepting.

Idea (high level):

  • Tenants are based on subdomain (e.g. tenantCode.example.org).
  • Tenants are distinct from Omeka “sites” (sites remain at /s/:site-slug inside a tenant).
  • Single database (no per-tenant DBs).
  • Local file storage scoped per tenant under /public/<tenantCode> (later, S3 bucket config).
  • Tenant-specific settings would be minimal; currently we only need default locale per tenant.
  • The feature is off by default and gated behind env/config flags to avoid impacting existing installs.

As I see it, files likely to touch:

  • application/config/routes.config.php (Hostname route)
  • application/src/Mvc/MvcListeners.php (tenant context + session cookie)
  • application/src/Service/File/Store/LocalFactory.php (tenant base path/uri)
  • config/local.config.php.dist (new config/env docs, likely to move to a tenant table later)
  • likely a small tenant context class/service

Anything else you’d want us to look out for or any architectural guidance based on Omeka Classic’s tenant support?

If this is in-scope, we can share a more detailed implementation plan before coding.

Thanks again for the project and for your time!

PS I just released this: https://github.com/survos/omeka-bundle

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions