%pantheon is an Urbit app which allows hosting, curation, and discovery of
arbitrary files, using the IPFS-based service Slate as a
method of interacting with the 30GB of free IPFS-based storage provided via
Slate and all of its associated metadata. To enable file sharing and discovery
across the network, %pantheon performs gossip-based metadata propagation and
provides associated search features. The application is implemented with a
standard Gall agent back-end and a React/Tailwind CSS
front-end.
While technically an optional dependency, the %pals app should be installed
with %pantheon to access the latter's complete functionality. Consequently,
the installation instructions below detail how to install each of these apps.
Within your Urbit ship's web interface, navigate to the home screen
(i.e. /apps/grid/) and do the following:
- In the search bar, type in:
~dister-dister-sidnym-ladrut. - Click on
~sidnym^ladrut.
- Under apps distributed by
~sidnym^ladrut, click on 'Pantheon.'
- Press the 'Get App' button. After installation, the app tile should appear.
To install %pals, type ~paldev into the search bar and repeat steps 2-4
with ~paldev instead of ~sidnym^ladrut.
Within your Urbit ship's command-line interface, enter the following command(s):
> |install ~paldev %pals
> |install ~dister-dister-sidnym-ladrut %pantheonFor development, we recommend creating a fake ~zod and deploying
the repo's /desk subdirectory to this ship's %pantheon desk. We reference the
following paths in the workflows below:
$ export PANTHEON_UI=/path/to/pantheon/ui/
$ export PANTHEON_DESK=/path/to/pantheon/desk/
$ export FAKEZOD_DESK=/path/to/zod/pantheon/The following commands should be executed after each fresh clone of the project to set up the Vite and the UI development environment:
$ cd $PANTHEON_UI
$ npm install
$ echo "VITE_SHIP_URL=http://127.0.0.1:8080" >> .env.localSubsequently, run the following commands to create a new fake ~zod
and create a container desk %pantheon:
$ cd $FAKEZOD_DESK/../../
$ urbit -F zod -B $(([ -f urbit-v1.17.pill ] || curl -LO bootstrap.urbit.org/urbit-v1.17.pill) && echo "urbit-v1.17.pill")
> |merge %pantheon our %base
> |mount %pantheon
$ rm -rI $FAKEZOD_DESK/*
$ cd $PANTHEON_DESK
$ rsync -uLrvP ./ $FAKEZOD_DESK/
> |commit %pantheon
> |install our %pantheonIn order to test back-end code changes, run the following commands:
> |nuke %pantheon-agent
$ cd $PANTHEON_DESK
$ rsync -uLrvP ./ $FAKEZOD_DESK/
> |commit %pantheon
> |revive %pantheonIn order to test front-end code changes, run the following commands (these only need to be run once per development session; Vite hot swaps assets when changes are saved):
$ cd $PANTHEON_UI
$ npm run devAlso, be sure to authenticate via both the NPM web portal (default:
localhost:3000) and the development ship's web portal (fake ~zod
default: localhost:8080).
In order to test the web package deployment process for the current front-end build, run the following commands:
$ cd $PANTHEON_UI
$ npm run build
$ rsync -avL --delete ./dist/ $FAKEZOD_DESK/pantheon/
> |commit %pantheon
> -garden!make-glob %pantheon /pantheon
$ cd $FAKEZOD_DESK/../.urb/put
$ sed -r "s/(glob-http\+\[).*(\])/\1\'http:\/\/127.0.0.1:8000\/$(ls | grep glob)\' $(ls | grep glob | sed -r 's/glob-(.*)\.glob/\1/g')\2/g" -i ../../pantheon/desk.docket-0
$ python3 -m http.server 8000
> |commit %pantheon