Shelve uses a monorepo structure to manage multiple packages and applications. The main packages are:
apps/shelve: The main Shelve application.apps/lp: The landing page for Shelve.apps/vault: The vault application.apps/base: This is the base layer that contains the shared configuration lp and shelve (components, plugins, etc).packages/cli: The CLI connected to the Shelve application (push, pull, etc).packages/crypto: The encryption and decryption package.packages/types: The shared types inside the monorepo.packages/utils: The shared utilities inside the monorepo.The monorepo is managed utilizing Turborepo. With Turborepo, it is possible to execute commands across all packages or target specific packages. Consequently, you will primarily operate from the root of the repository and execute commands such as pnpm run dev:app to initiate the Shelve application.
DATABASE_URL (PostgreSQL)NUXT_OAUTH_GITHUB_CLIENT_ID (or google)NUXT_OAUTH_GITHUB_CLIENT_SECRET (or google)NUXT_PRIVATE_ENCRYPTION_KEYTo set up the development environment for Shelve, follow these steps:
git clone https://github.com/HugoRCD/shelve.git && cd shelve
pnpm install
cp apps/shelve/.env.example apps/shelve/.env
Edit the apps/shelve/.env file and update the necessary environment variables.
pnpm run dev:app