mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
138 lines
3.0 KiB
Markdown
138 lines
3.0 KiB
Markdown
# Backend
|
|
|
|
|
|
## Installation with Docker
|
|
|
|
Make sure you are on a [node](https://nodejs.org/en/) version >= `v10.12.0`:
|
|
|
|
```text
|
|
node --version
|
|
```
|
|
|
|
Run:
|
|
|
|
```bash
|
|
docker-compose up
|
|
|
|
# create indices etc.
|
|
docker-compose exec neo4j migrate
|
|
|
|
# if you want seed data
|
|
# open another terminal and run
|
|
docker-compose exec backend yarn run db:seed
|
|
```
|
|
|
|
App is [running on port 4000](http://localhost:4000/)
|
|
|
|
To wipe out your neo4j database run:
|
|
|
|
```bash
|
|
docker-compose down -v
|
|
```
|
|
|
|
## Installation without Docker
|
|
|
|
Install dependencies:
|
|
|
|
Download [Neo4j Community Edition](https://neo4j.com/download-center/#releases) and unpack the files.
|
|
|
|
Download [Neo4j Apoc](https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases) and drop the file into the `plugins` folder of the just extracted Neo4j-Server
|
|
|
|
Start Neo4j
|
|
|
|
```text
|
|
neo4j\bin\neo4j start
|
|
```
|
|
|
|
and confirm it's running [here](http://localhost:7474)
|
|
|
|
```bash
|
|
yarn install
|
|
# -or-
|
|
npm install
|
|
```
|
|
|
|
Copy:
|
|
|
|
```text
|
|
cp .env.template .env
|
|
```
|
|
|
|
Configure the file `.env` according to your needs and your local setup.
|
|
|
|
Start the GraphQL service:
|
|
|
|
```bash
|
|
yarn dev
|
|
# -or-
|
|
npm dev
|
|
```
|
|
|
|
And on the production machine run following:
|
|
|
|
```bash
|
|
yarn start
|
|
# -or-
|
|
npm start
|
|
```
|
|
|
|
This will start the GraphQL service \(by default on localhost:4000\) where you can issue GraphQL requests or access GraphQL Playground in the browser:
|
|
|
|

|
|
|
|
## Configure
|
|
|
|
Set your Neo4j connection string and credentials in `.env`. For example:
|
|
|
|
_.env_
|
|
|
|
```yaml
|
|
NEO4J_URI=bolt://localhost:7687
|
|
NEO4J_USERNAME=neo4j
|
|
NEO4J_PASSWORD=letmein
|
|
```
|
|
|
|
> You need to install APOC as a plugin for the graph you create in the neo4j desktop app!
|
|
|
|
Note that grand-stack-starter does not currently bundle a distribution of Neo4j. You can download [Neo4j Desktop](https://neo4j.com/download/) and run locally for development, spin up a [hosted Neo4j Sandbox instance](https://neo4j.com/download/), run Neo4j in one of the [many cloud options](https://neo4j.com/developer/guide-cloud-deployment/), [spin up Neo4j in a Docker container](https://neo4j.com/developer/docker/) or on Debian-based systems install [Neo4j from the Debian Repository](http://debian.neo4j.org/). Just be sure to update the Neo4j connection string and credentials accordingly in `.env`.
|
|
|
|
# Seed and Reset the Database
|
|
|
|
Optionally you can seed the GraphQL service by executing mutations that will write sample data to the database:
|
|
|
|
```bash
|
|
yarn run db:seed
|
|
# -or-
|
|
npm run db:seed
|
|
```
|
|
|
|
For a reset you can use the reset script:
|
|
|
|
```bash
|
|
yarn db:reset
|
|
# -or-
|
|
npm run db:reset
|
|
```
|
|
|
|
# Testing
|
|
|
|
**Beware**: We have no multiple database setup at the moment. We clean the database after each test, running the tests will wipe out all your data!
|
|
|
|
Run the _**jest**_ tests:
|
|
|
|
```bash
|
|
yarn run test
|
|
# -or-
|
|
npm run test
|
|
```
|
|
|
|
Run the _**cucumber**_ features:
|
|
|
|
```bash
|
|
yarn run test:cucumber
|
|
# -or-
|
|
npm run test:cucumber
|
|
```
|
|
|
|
When some tests fail, try `yarn db:reset` and after that `yarn db:seed`. Then run the tests again
|