# Installing on your own server

> How to run the Eggent open core on your own machine or VPS — the one-command installer, the published Docker image, building from source and the first launch.

Source: https://eggent.ai/docs/self-host-install/

The Eggent open core is the same workspace as in the cloud, on your own machine: every chat, file, memory and key lives in the `./data` folder. MIT licence, code on [GitHub](https://github.com/eggent-ai/eggent).

How it differs from the cloud: no Eggent AI (you need your own model key), no quick-start skill cards, no shared Telegram bot, no Syncthing sync and no sleep. Everything else is the same.

This is one workspace. Eggent for a whole company, with a workspace for each person, limits and shared files, is installed on your servers as [Eggent Enterprise](https://eggent.ai/docs/enterprise.md).

## Requirements {#requirements}

- Linux, macOS, or Windows with WSL2.
- **Docker** (the installer sets it up if it can) or Node.js 22 to run without Docker.
- At least 2 GB of RAM and a few gigabytes of free disk for the image and data.
- An API key from any model provider, or a local model with an OpenAI-compatible API.

## One-command install {#installer}

```bash
curl -fsSL https://get.eggent.ai | bash
```

The installer:

1. downloads Eggent into `~/.eggent`;
2. installs Docker if it is missing;
3. builds and starts the container;
4. waits for Eggent to answer and prints the address.

By default Eggent is reachable only from this machine: `http://127.0.0.1:3000`.

Installer options are set with variables:

```bash
EGGENT_INSTALL_DIR=/opt/eggent \
APP_PORT=3000 \
EGGENT_APP_BIND_HOST=127.0.0.1 \
bash -c "$(curl -fsSL https://get.eggent.ai)"
```

## The published Docker image {#image}

Nothing to build: the `ghcr.io/eggent-ai/eggent` image is published with every release.

```bash
curl -O https://raw.githubusercontent.com/eggent-ai/eggent/main/docker-compose.ghcr.yml
docker compose -f docker-compose.ghcr.yml up -d
```

`docker-compose.ghcr.yml` can also be pasted into Portainer. Better to pin a version in `.env` (`EGGENT_VERSION=0.2.9`) than to follow `latest`.

## Building from source {#source}

```bash
git clone https://github.com/eggent-ai/eggent.git
cd eggent
cp .env.example .env   # optional
docker compose up -d --build
```

Data is stored in `./data`, which is `/app/data` inside the container.

## Without Docker, for development {#dev}

```bash
git clone https://github.com/eggent-ai/eggent.git
cd eggent
npm install
npm run dev
```

Needs Node.js 22. For voice, install `ffmpeg` and `whisper.cpp`.

## First launch {#first-run}

1. Open `http://127.0.0.1:3000`.
2. Sign in with the login `admin` and password `admin` — Eggent asks you to replace them with your own right away.
3. Connect a model provider: pick it and paste the key. The key does not have to go into `.env` — it is kept in `data/`.
4. Start your first chat. From here it is all as in [First steps](https://eggent.ai/docs/first-steps.md), except the quick-start cards.

## Exposing it to the internet {#public}

On a VPS, the right way is to keep Eggent on `127.0.0.1` and put a reverse proxy with HTTPS in front of it (Caddy, Nginx, Traefik). Details and an example are in [Configuring your server](https://eggent.ai/docs/self-host-config.md#reverse-proxy).
