This repository is the development entry point for Papyrus.
Clone the repository with its submodules:
git clone --recurse-submodules https://github.com/PapyrusReader/papyrus.git
cd papyrusIf the repository was cloned without --recurse-submodules, initialize the
projects afterward:
git submodule update --init --recursiveIn VS Code, run the Setup workspace task once. It installs the client and
server dependencies, creates missing local configuration from the supplied
examples, generates development PowerSync keys, starts the prerequisite
containers, applies database migrations, and configures PowerSync replication.
You can also run the setup script directly in a terminal as ./.vscode/setup.sh.
Run these VS Code tasks independently, in order:
StorageBack-endClient
The services are then available at:
- Client: http://papyrus.localhost:3000
- API: http://localhost:8080
- PowerSync: http://localhost:8081
- Mailpit: http://localhost:8025
The equivalent terminal commands are:
cd server
docker compose up database mailpit powersync-storage powersynccd server
uv run uvicorn papyrus.main:app --reload --host 0.0.0.0 --port 8080cd client/app
flutter run -d chrome \
--web-hostname papyrus.localhost \
--web-port 3000 \
--dart-define-from-file=.dart_definesThe Purge task deletes local Papyrus databases, uploaded media, PowerSync
state, and browser storage before recreating clean service state.