diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index cd8b898c..be4bcb30 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -1,6 +1,25 @@ # Development -## Running in development mode +## Setup local database + +You can install PostgreSQL local https://www.postgresql.org/download/ or use Docker (see `postgres.yml`): +``` +version: "3.2" +services: + postgres: + image: postgres + environment: + POSTGRES_PASSWORD: example + ports: + - 127.0.0.1:5432:5432 + volumes: + - ./database:/var/lib/postgresql/data +``` + +To run it execute: `docker compose -f postgres.yml up -d` where `-d` is used for background run. +If you have outdated version of docker, try use `docker-compose` instead of `docker compose` (https://docs.docker.com/compose/) + +## Running application in development mode To run application in development mode you need to run `npm run dev` command. It will start application with `nodemon` and restart it on any changes in source code. @@ -9,18 +28,28 @@ You can try to build and run it in local Docker: ``` version: "3.2" services: - api: + api: build: dockerfile: Dockerfile context: . ports: - "127.0.0.1:3000:3000" + volumes: + - ./app-config.yaml:/usr/app/app-config.yaml + restart: unless-stopped ``` ## Configuration -Default application configuration is stored in `app-config.yaml` file. -To override default configuration you can create `app-config.local.yaml` file and override any configuration value. +Default application configuration is stored in `app-config.yaml` file. This file is intended for docker configuration since it's using `dsn: 'postgres://postgres:example@postgres:5432/codex-notes'`. + +To override default configuration you can create `app-config.local.yaml` file and override any configuration value locally. +You can also override settings in docker by overriding `app-config.local.yaml` via volumes: +``` + volumes: + - ./app-config.yaml:/usr/app/app-config.yaml + - ./app-config.local.yaml:/usr/app/app-config.local.yaml +``` ## Logging diff --git a/app-config.yaml b/app-config.yaml index 3edd88f6..b7ab31f9 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -28,7 +28,7 @@ logging: database: info database: - dsn: 'postgres://postgres:pass@localhost:5432/codex-notes' + dsn: 'postgres://postgres:example@postgres:5432/codex-notes' openai: token: 'token' diff --git a/postgres.yml b/postgres.yml new file mode 100644 index 00000000..318fe372 --- /dev/null +++ b/postgres.yml @@ -0,0 +1,10 @@ +version: "3.2" +services: + postgres: + image: postgres + environment: + POSTGRES_PASSWORD: pass + ports: + - 127.0.0.1:5432:5432 + volumes: + - ./database:/var/lib/postgresql/data \ No newline at end of file