# Installing via docker-compose

The official Omnixent repository includes a useful docker-compose file that can be used and customized for launching your own Omnixent instance in a matter of minutes.

The docker-compose file will include three different images:

1. **Omnixent**: the official Omnixent image, to be pulled from Dockerhub directly.
2. **Redis**: to be used as a caching layer. It is optional, and you can disable it if you'd like to.
3. **Caddy**: high-performance reverse-proxy for exposing Omnixent to the outside world.

Here is how the **docker-compose.yml** file should look like:

{% tabs %}
{% tab title="YAML" %}
{% code title="docker-compose.yml" %}

```yaml
version: '3.7'

services:
  node:
    container_name: omnixent-node
    image: omnixent/omnixent:v0.0.36
    ports:
      - 3000:3000
    restart: unless-stopped
    links:
      - redis
    environment:
      - NODE_ENV=production
      - REDIS_URL=redis://redis:6379
    networks:
      - caddynet

  caddy:
    image: abiosoft/caddy
    container_name: omnixent-caddy
    cap_add:
      - CAP_NET_BIND_SERVICE
    ports:
      - 80:80
      - 443:443
    expose:
      - 80
      - 443
    links:
      - node
    depends_on:
      - node
    volumes:
      - ./Caddyfile:/etc/Caddyfile
    command: -conf /etc/Caddyfile
    environment:
      CA_URL: https://acme-staging-v02.api.letsencrypt.org/directory
    restart: always
    networks:
      - caddynet

  redis:
    image: "redis:alpine"
    container_name: omnixent-cache
    expose:
      - 6379
    networks:
      - caddynet

networks:
  caddynet:
    driver: bridge
```

{% endcode %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omnixent.com/installing-omnixent/installing-via-docker-compose.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
