mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
153 lines
3.7 KiB
Markdown
153 lines
3.7 KiB
Markdown
# Backend
|
|
|
|
## Installation
|
|
{% tabs %}
|
|
{% tab title="Docker" %}
|
|
|
|
Run the following command to install everything through docker.
|
|
|
|
The installation takes a bit longer on the first pass or on rebuild ...
|
|
|
|
```bash
|
|
$ docker-compose up
|
|
|
|
# rebuild the containers for a cleanup
|
|
$ docker-compose up --build
|
|
```
|
|
Open another terminal and create unique indices with:
|
|
|
|
```bash
|
|
$ docker-compose exec neo4j migrate
|
|
```
|
|
|
|
{% endtab %}
|
|
|
|
{% tab title="Without Docker" %}
|
|
|
|
For the local installation you need a recent version of [node](https://nodejs.org/en/)
|
|
(>= `v10.12.0`) and [Neo4J](https://neo4j.com/) along with
|
|
[Apoc](https://github.com/neo4j-contrib/neo4j-apoc-procedures) plugin installed
|
|
on your system.
|
|
|
|
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
|
|
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`.
|
|
Start Neo4J and confirm the database is running at [http://localhost:7474](http://localhost:7474).
|
|
|
|
Now install node dependencies with [yarn](https://yarnpkg.com/en/):
|
|
```bash
|
|
$ cd backend
|
|
$ yarn install
|
|
```
|
|
|
|
Copy Environment Variables:
|
|
```bash
|
|
# in backend/
|
|
$ cp .env.template .env
|
|
```
|
|
|
|
Configure the new files according to your needs and your local setup.
|
|
|
|
Create unique indices with:
|
|
|
|
```bash
|
|
$ ./neo4j/migrate.sh
|
|
```
|
|
|
|
Start the backend for development with:
|
|
```bash
|
|
$ yarn run dev
|
|
```
|
|
|
|
or start the backend in production environment with:
|
|
```bash
|
|
yarn run start
|
|
```
|
|
|
|
{% endtab %}
|
|
{% endtabs %}
|
|
|
|
Your backend is up and running at [http://localhost:4000/](http://localhost:4000/)
|
|
This will start the GraphQL service \(by default on localhost:4000\) where you can issue GraphQL requests or access GraphQL Playground in the browser.
|
|
|
|

|
|
|
|
You can access Neo4J through [http://localhost:7474/](http://localhost:7474/)
|
|
for an interactive `cypher` shell and a visualization of the graph.
|
|
|
|
|
|
#### Seed Database
|
|
|
|
If you want your backend to return anything else than an empty response, you
|
|
need to seed your database:
|
|
|
|
{% tabs %}
|
|
{% tab title="Docker" %}
|
|
|
|
In another terminal run:
|
|
```bash
|
|
$ docker-compose exec backend yarn run db:seed
|
|
```
|
|
|
|
To reset the database run:
|
|
```bash
|
|
$ docker-compose exec backend yarn run db:reset
|
|
# you could also wipe out your neo4j database and delete all volumes with:
|
|
$ docker-compose down -v
|
|
```
|
|
{% endtab %}
|
|
|
|
{% tab title="Without Docker" %}
|
|
Run:
|
|
```bash
|
|
$ yarn run db:seed
|
|
```
|
|
|
|
To reset the database run:
|
|
```bash
|
|
$ yarn run db:reset
|
|
```
|
|
{% endtab %}
|
|
{% endtabs %}
|
|
|
|
|
|
# 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!
|
|
|
|
|
|
{% tabs %}
|
|
{% tab title="Docker" %}
|
|
|
|
Run the _**jest**_ tests:
|
|
|
|
```bash
|
|
$ docker-compose exec backend yarn run test:jest
|
|
```
|
|
|
|
Run the _**cucumber**_ features:
|
|
|
|
```bash
|
|
$ docker-compose exec backend yarn run test:cucumber
|
|
```
|
|
|
|
{% endtab %}
|
|
|
|
{% tab title="Without Docker" %}
|
|
|
|
Run the _**jest**_ tests:
|
|
|
|
```bash
|
|
$ yarn run test:jest
|
|
```
|
|
|
|
Run the _**cucumber**_ features:
|
|
|
|
```bash
|
|
$ yarn run test:cucumber
|
|
```
|
|
|
|
{% endtab %}
|
|
{% endtabs %}
|