Development environment and example application
This is the development environment and example application (this repo).
1. Clone and install dependencies
# git clone this repogit clone [email protected]:Byline-CMS/bylinecms.dev.gitcd bylinecms.dev# install depspnpm install# build once so that all workspace packages and apps have their depspnpm build2. Set up your database
Byline currently requires PostgreSQL. There is a docker-compose.yml in the root postgres directory. Note that the default root password is set to test in docker-compose.yml.
2.1. Create the data subdirectory and start Postgres
# From the root of the projectcd postgresmkdir data# If you want to run docker detached, run './postgres.sh up -d'./postgres.sh up
# And then 'down' if you want to remove the Docker container and network# configuration when you're done../postgres.sh down2.2. Initialize the database and schema
Only the Postgres adapter is available at the moment.
# Copy .env.example to .env in the apps/dashboard directory.# Read the notes in .env.example.cd packages/db-postgrescp .env.example .env
# Again, the default database root password is 'test'# (assuming you're using our docker-compose.yml file).cd src/database./db_init.shcd ../..Foot-gun protection
Our ./db_init script sources (imports) common.sh, which has a guarded check that will only allow _dev or _test databases to be initialized or reset.
# You can optionally run pnpm drizzle:generate, although since# this is a development repo - migrations have already been generated# and committed.# pnpm drizzle:generatepnpm drizzle:migrate2.3. Configure the webapp, and optionally seed documents
# Seed the database with a single super-admin user — and optionally,# categories and documents.# From /apps/webapp. Note that our seed scripts live in# apps/webapp/byline/seeds, orchestrated by apps/webapp/byline/seed.ts# (for now and for 'reasons').cd apps/webapp
# .env configurationcp .env.local.example .env.local
# generate JWT session keyopenssl rand -base64 48# past the above output into your .env.local file for# BYLINE_JWT_SECRET=
# Set the seed superadmin username email address and password# BYLINE_SUPERADMIN_EMAIL=admin@byline.local# BYLINE_SUPERADMIN_PASSWORD=change-me
pnpm tsx --env-file=.env.local byline/seed.ts3. Start dev mode
Again, from the root of the project, start the dev environment.
pnpm devIf you've built the project (above) and have Postgres up and running, you should be able to view the app on http://localhost:5173/ .
Enjoy and stay tuned!