%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 %pantheon
For 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.local
Subsequently, 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 %pantheon
In order to test back-end code changes, run the following commands:
> |nuke %pantheon-agent
$ cd $PANTHEON_DESK
$ rsync -uLrvP ./ $FAKEZOD_DESK/
> |commit %pantheon
> |revive %pantheon
In 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 dev
Also, 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