seasketch / next

A modernization version of the SeaSketch platform, released in 2022.
https://seasketch.org
BSD 3-Clause "New" or "Revised" License
7 stars 0 forks source link

Transition from next.seasket.ch domain to seasketch.org #515

Closed underbluewaters closed 1 year ago

underbluewaters commented 1 year ago

Current user path to our domain looks like the following for legacy SeaSketch. We point both bare and www subdomain to our javascript client, which then redirects to the homepage if the url doesn't include hash parameters indicating it's a deep link into the SeaSketch client app.

flowchart LR
    F["[oregon,mpatt,mapp].seasketch.org"] -->G["CNAME"]
    G -->H["Gandi web redirect"]
    H -->E[seasketch.org]
    E -->J["A record"]
    J--->B
    A[www.seasketch.org] -->I[CNAME]
    I-->E
    B[Legacy Seasketch JS Client]--> C{#project url?}
    C-->|No| D["/homepage.html"]
    C-->|Yes| B

All DNS records are hosted on Gandi, and most (all?) have a TTL of 3 hours (10800 seconds). It would be nice to move DNS records and web forwarding out of Gandi and on to Route53 or Cloudflare.

Current SSN Deployment for comparison:

flowchart LR
    A["next.seasket.ch"]-->B["Route53 A record"]
    B-->C["Cloudfront/S3 Bucket"]
    C-->D["SSN JS Client"]
    E["api.seasket.ch"]-->F["Route53 A record"]
    F-->G["GraphQL API Server (Fargate)"]
underbluewaters commented 1 year ago

I've probably left some internal services out of these diagrams for legacy which are critical. There's a seainternal domain, task server subdomain, db2.seasketch.org, and the url shortener. These will all have to be addressed.

underbluewaters commented 1 year ago

While something of a hassle, looking at the legacy codebase it doesn't look impossible to just manually change all the hard-coded urls to legacy.seasketch.org.

underbluewaters commented 1 year ago

This is what I'd like the final setup to look like:

flowchart TD
    K["legacy.seasketch.org"] --> B
    F["[oregon,mpatt,mapp].seasketch.org"] -->H["Gandi Redirect service"]
    H -->B
    A[www.seasketch.org] -->I["SeaSketch Next Client"]
    J[seasketch.org] -->I
    L[next.seasket.ch] -->I
    B[Legacy Seasketch JS Client]--> C{#project url?}
    C-->|No| D["/homepage.html"]
    C-->|Yes| B
    I-->|#project or #dashboard url?| B
    G["seasket.ch shortener"]-->B
    D-->|"Links to SSN as latest product"|I
underbluewaters commented 1 year ago

Steps towards migration

underbluewaters commented 1 year ago

Final switch-over checklist:

Prep work

Phase Two

Phase Three

Verification