Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 30 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,42 @@
<img src="https://github.com/Kompakkt/Assets/raw/main/server-logo.png" alt="Kompakkt Logo" width="600">
</p>

## Prerequisites
## Requirements

- [NodeJS](https://nodejs.org/en/)
- Node Package Manager ([NPM](https://www.npmjs.com/))
- MongoDB
- Redis
- **[Bun](https://bun.sh/)** - runtime and package manager. `npm` / `yarn` / `pnpm` are **not** supported.
- **[MongoDB](https://www.mongodb.com/)** - primary data store.
- **[Redis](https://redis.io/)** (or a compatible drop-in such as [Dragonfly](https://www.dragonflydb.io/)) - cache layer.
- **[Sonic](https://github.com/valeriansaliou/sonic)** - full-text search backend.
- **[Kompressor](https://github.com/Kompakkt/Kompressor)** - mesh processing backend (3d meshes, gaussian splatting, point clouds, ...).

## Development setup
The Kompakkt configuration for Sonic is available at [`sonic-config.cfg`](https://github.com/Kompakkt/Mono/blob/main/sonic-config.cfg) in the Kompakkt/Mono repository.

In order to setup your own development environment, you have to have [NodeJS](https://nodejs.org/en/) as well as Node Package Manager ([NPM](https://www.npmjs.com/)) installed.
## Development setup

Clone this repository, cd to the project directory and run the following commands:
Clone the repository, then install the dependencies with Bun:

```
$ git clone https://github.com/Kompakkt/Common.git src/common
$ npm i
```bash
git clone https://github.com/Kompakkt/Server
cd Server
bun install
```

Ensure that MongoDB and Redis is running then start the server with
Shared code from upstream Kompakkt packages (`@kompakkt/common`) is pulled in automatically as a git-pinned npm dependency.

### Starting the supporting services

Make sure MongoDB, Redis/Dragonfly, Sonic and Kompressor are running locally (see the `CONFIGURATION_*` environment variables in `src/configuration.ts` for the hostnames, ports and credentials the server expects by default). Also see "Running the full stack" below.

### Starting the server

For local development with hot reload:

```bash
bun run dev
```
$ npm run start
```

The server listens on port **3030** by default.

## Running the full stack

This repository only contains the Server. To run Server, Repo and Viewer together (with all required supporting services such as Redis, Sonic, MongoDB and Kompressor), use the [Kompakkt/Mono](https://github.com/Kompakkt/Mono) development environment.
Loading