Dev Setup
Learn how to set up your local development environment.
Monorepo Structure
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/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.
Necessary Environment Variables
DATABASE_URL
(PostgreSQL)NUXT_OAUTH_GITHUB_CLIENT_ID
(or google)NUXT_OAUTH_GITHUB_CLIENT_SECRET
(or google)NUXT_PRIVATE_ENCRYPTION_KEY
To set up the development environment for Shelve, follow these steps:
Clone the Repository:
terminal
git clone https://github.com/HugoRCD/shelve.git
cd shelve
Install Dependencies:
terminal
pnpm install
Copy the Example Environment File:
terminal
cp apps/shelve/.env.example apps/shelve/.env
Update Environment Variables:
Edit the apps/shelve/.env
file and update the necessary environment variables.
Start the Development Server:
terminal
pnpm run dev:app
Edit this page