eve is a starter project featuring Node, Postgres, PostGraphile / Graphile Worker / Graphile Migrate, Next.js, Apollo Client, and Material UI.
Copy sample.env
to .env
and add database passwords throughout.
Start the local development environment with Docker Compose:
docker compose up
More information coming soon.
This service runs Postgres, a powerful, open source object-relational database system. It uses the official Postgres Docker image based on Alpine Linux, initialized with sensible roles, databases, and permissions.
This service runs graphile-migrate, an opinionated SQL-powered productive roll-forward migration tool for Postgres. It uses the official Node.js Docker image based on Alpine Linux, configured to work with the database service.
When started using docker compose up
, this service runs graphile-migrate in watch mode which runs any un-executed committed migrations and then runs and watches the current migration, re-running it on any change.
This service runs graphile-worker, a job queue for Postgres. It uses the official Node.js Docker image based on Alpine Linux, configured to work with the database service.
When started using docker compose up
, this service runs graphile-worker in watch mode which watches task files for changes, automatically reloading the task code without restarting worker.
This service runs PostGraphile, an instant lightning-fast GraphQL API backed primarily by the Postgres database. It uses the official Node.js Docker image based on Alpine Linux, configured to work with the database service and with recommended plugins.
When started using docker compose up
, this service runs PostGraphile in watch mode which automatically updates your GraphQL schema when your database schema changes.
This service runs Next.js, a production-ready React framework. It uses Apollo Client to interact with the graphql service and leverages the Material UI component library.
The /graphql
and /graphiql
endpoints are proxied from this service to the graphql
service.
When started using docker compose up
, this service runs Next.js in development mode with hot-code reloading, error reporting, and more.
scripts/migrate.sh
allows you to easily run commands in a "migrate" container. For example:./scripts/migrate.sh graphile-migrate commit
scripts/reset.sh
allows you to reset your development environment (delete volumes with the-v
option). For example:./scripts/reset.sh -v
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.