Skip to main content
Skye is self-hostable. Run it on a machine you own and keep it on; she answers only while it is running. This page is the operator guide, so it is more technical than the rest of these docs.

What you need

  • A machine that stays on, with Docker and Docker Compose.
  • A Telegram bot token from @BotFather.
  • A model endpoint that speaks the OpenAI API. Any OpenAI-compatible base URL works, for example OpenAI or OpenRouter.
  • Your Telegram user id as the owner. A bot such as @userinfobot can tell you.

Install

1

Create the bot

Talk to @BotFather and copy the token. Do not paste secrets into chat.
2

Copy the project

Clone skye-next and enter the folder.
3

Configure

Copy .env.example to .env and fill in at least the required values below.
4

Start

Run docker compose up -d. Follow the logs with docker compose logs -f.
5

Update

Pull the latest code and run docker compose up -d --build.

Required settings

At least one provider key is required. If you set an OpenRouter key with no explicit base URL, https://openrouter.ai/api/v1 is used.

Models

Skye is provider-agnostic. Each role is a model your provider offers.
If a provider rejects audio or non-PDF file parts, leave SKYE_NATIVE_MEDIA=false (the default). Skye then transcribes audio and extracts text locally, which works with text-and-image models such as DeepSeek V4.

Web chat

The browser app is optional and off until configured. The container listens on SKYE_WEB_HOST:SKYE_WEB_PORT (by default 127.0.0.1:8080). Put a reverse proxy in front for TLS.

Code workspace

The sandbox that runs shell and Python is off by default. The bot container reaches the host Docker socket; the provided compose.yaml mounts it. Commands run in throwaway containers as a non-root user with no host access. See How Skye works.

Access control

Access is deny-by-default for groups.
  • Direct chats are open to everyone unless banned.
  • The owner is always allowed.
  • A group is allowed if it is on the allowlist, or if a group admin has Skye Plus or complimentary access.
  • Use /admin in a private chat to allow or ban people and groups.

Where data lives

Settings, memories, skills, agents, automations, and web projects live in a local SQLite database (SKYE_DATABASE_PATH). Web files live under SKYE_WEB_FILES_PATH. Code workspaces live on the skye-sandbox-work Docker volume. Back up the database and those paths together.

A safe default

Keep .env out of version control, expose the web port only through a proxy, and leave the sandbox network off unless a task truly needs it.