Since Esri retired the classic storymaps, they offered code (see fork source) to self host. However, the self host solution still relied on:
- Having a valid Esri account ID
- Hosting your data on their servers
This fork aims to walk former users of classic Esri Storymaps through self hosting their archived materials -- not just relying on Esri maintaining an open API.
This fork specifically supports the 'Cascade' template for Classic StoryMaps.
We hope to create similar forks for other types, starting with 'Journal'.
- a server
- knowledge of your storymaps' App IDs
- Access to your preferred ArcGIS OnLine (AGOL)account
- (TODO: create zip download)
- clone with git
- Log in to your organization's AGOL site
- navigate to 'Content' -> 'My content'
- https://<ORG>.maps.arcgis.com/home/content.html
- Find your StoryMap ('Web mapping application')
- Click on it to open it (or 'view details')
- Find the 'URL' section in the right column
- confirm it contains with 'Cascade' (this code only works with the 'Cascade' application type)
- copy the long set of characters after 'appid'
- https://<ORG>.maps.arcgis.com/apps/Cascade/index.html?appid=<APP_ID>
- you will need to use this ID a lot later on, so keep it handy
- At the bottom of the right column, note the 'Folder' field
- Navigate to https://assistant.esri-ps.com/content
- Find your 'Web Mapping Application' and click to open the 'Item Details'
- double check
- Item ID matches the one you found above
- URL includes 'Cascade' after "maps.arcgis.com/apps/"
JSON files contain a description about your storymap and a detailed breakdown of how it's constructed.
- Click 'View Item JSON' to open the JSON editor
- Click on 'Description' in the top left
- copy all text and save it to a file called
description.json
- copy all text and save it to a file called
- Click on 'Data' in the top left
- Copy all text and save it to a file called
data.json - NOTE: you need EVERY character exacly as written, so clicking inside the text and using
ctrl+ato highlight all text andctrl+cto copy it (or the Mac equivalent) will save you some grief.
- Copy all text and save it to a file called
Your storymap also likely relies on numerous maps and images to tell its story. You will need to download a copy of images and static files for your server. There may be maps and other dependencies that still rely on ArcGIS services -- this is not a fully offline archive.
- Still at 'ArcGIS Assistant' with your storymap selected:
- Click on 'Resources' in the top right corner of your screen
- Click on the blue 'Download All' button in the top left corner of your screen.
- After some time (Esri will zip your files together) a download will begin and you will get a file called
resources.zip - you will need this file in the next step.
A directory (folder) called storymaps should exist inside of the 'compiled' folder. It contains a README.md file as well. It also will contain a directory for each (Cascade) StoryMap you wish to serve.
- Create a directory with the name of your app ID
- Move your
data.jsoninto it - Move your
description.jsoninto it - Move your
resources.zipfile into it- If you already had a file named
resources.zipin your downloads folder, this one may be appended with a number, likeresources(1).zip. - Be sure to grab the file with a timestamp that matches when you downloaded this data from Esri to be sure you have the right one
- unzip
resources.zipinto this directory - it should create a folder calledresources- Be sure to rename the directory to
resourcesif it does have that number!
- Be sure to rename the directory to
- If you already had a file named
/path/to/storymap-cascade/compiled/storymaps/
- <APP ID> (directory)
- data.json
- description.json
- resources (directory)
- (your static files)