From b0ce430841fae76d33c24c5235fccc0ab4ccb59e Mon Sep 17 00:00:00 2001 From: Alexander Svan Date: Tue, 1 Apr 2025 07:18:08 +0200 Subject: [PATCH] init --- README.md | 10 ++++++++++ docker-compose-nvidia.yml | 42 +++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 33 ++++++++++++++++++++++++++++++ flake.lock | 26 ++++++++++++++++++++++++ flake.nix | 21 ++++++++++++++++++++ 5 files changed, 132 insertions(+) create mode 100644 README.md create mode 100644 docker-compose-nvidia.yml create mode 100644 docker-compose.yml create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/README.md b/README.md new file mode 100644 index 0000000..2250085 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ + +# Vector Database POC + +## Getting started + +Start a developer console in NixOS with all need dependencies + +```bash +nix develop +``` diff --git a/docker-compose-nvidia.yml b/docker-compose-nvidia.yml new file mode 100644 index 0000000..438c614 --- /dev/null +++ b/docker-compose-nvidia.yml @@ -0,0 +1,42 @@ +services: + chroma: + image: chromadb/chroma:latest + ports: + - "8000:8000" + volumes: + - ./chroma_db_data:/db + environment: + - POSTGRES_HOST=chroma-db + - POSTGRES_PORT=5432 + - POSTGRES_USER=chroma + - POSTGRES_PASSWORD=chroma + - POSTGRES_DB=chroma + depends_on: + - chroma-db + + chroma-db: + image: postgres:15-alpine + environment: + POSTGRES_USER: chroma + POSTGRES_PASSWORD: chroma + POSTGRES_DB: chroma + volumes: + - ./chroma_db_data:/var/lib/postgresql/data + + ollama: + image: ollama/ollama:latest + ports: + - "11434:11434" + volumes: + - ./ollama_models:/root/.ollama + devices: + - /dev/nvidia0:/dev/nvidia0 + environment: + - OLLAMA_HOST=0.0.0.0 + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: all + capabilities: [gpu] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a588738 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,33 @@ +services: + chroma: + image: chromadb/chroma:latest + ports: + - "8000:8000" + volumes: + - ./chroma_db_data:/db + environment: + - POSTGRES_HOST=chroma-db + - POSTGRES_PORT=5432 + - POSTGRES_USER=chroma + - POSTGRES_PASSWORD=chroma + - POSTGRES_DB=chroma + depends_on: + - chroma-db + + chroma-db: + image: postgres:15-alpine + environment: + POSTGRES_USER: chroma + POSTGRES_PASSWORD: chroma + POSTGRES_DB: chroma + volumes: + - ./chroma_db_data:/var/lib/postgresql/data + + ollama: + image: ollama/ollama:latest + ports: + - "11434:11434" + volumes: + - ./ollama_models:/root/.ollama + environment: + - OLLAMA_HOST=0.0.0.0 \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f4fb252 --- /dev/null +++ b/flake.lock @@ -0,0 +1,26 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1743315132, + "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "52faf482a3889b7619003c0daec593a1912fddc1", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..304cf1b --- /dev/null +++ b/flake.nix @@ -0,0 +1,21 @@ +{ + description = "A flake for Terraform development"; + + inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; + + outputs = { self, nixpkgs }: { + devShells.x86_64-linux.default = + let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in + pkgs.mkShell { + buildInputs = with pkgs; [ + docker-compose + ]; + }; + }; +}