Skip to content
Andesine

Self-hosting

Run Andesine on your own server with Docker Compose.

Andesine is open source. You can run it on your own server with Docker Compose. A self-hosted instance has all features of the Pro plan, no billing, and sends no analytics.

Requirements

  • A server with Docker and Docker Compose.

  • An email service: Resend or any SMTP server. Andesine sends sign-in codes and invitations by email.

  • An S3-compatible bucket for images, such as AWS S3 or Cloudflare R2. Without it, image uploads are off.

  • Optional: an OpenAI API key, or a key of another OpenAI-compatible API, for semantic search, AI answers, and image analysis.

Run Andesine

  1. Get the code

    Clone the repository: git clone https://github.com/vriteio/andesine.git, and open its folder.

  2. Configure

    Copy .env.example to .env, and set the values in the next section.

  3. Start

    Run docker compose up -d. Compose builds the images, starts PostgreSQL, Redis, Typesense, and the worker, and runs the database migrations.

  4. Sign up

    Open the app address and create your account and workspace.

The web app listens on port 3000, and the API on port 3333.

Required settings

Setting

Value

PUBLIC_APP_HOST

The host of the app, such as andesine.example.com

PUBLIC_API_HOST

The host of the API, such as api.andesine.example.com

PUBLIC_SECURE

true when you serve Andesine over HTTPS

PUBLIC_COOKIE_DOMAIN

The domain of the sign-in cookies, such as andesine.example.com

SECRET

A random secret. Create it with openssl rand -hex 32.

ENCRYPTION_KEYS

Keys that encrypt stored secrets, as JSON: [{"id":"key-1","key":"<key>"}]. Create each key with openssl rand -base64 32.

SENDER_EMAIL, SENDER_NAME

The sender of emails

RESEND_API_KEY, or SMTP_*

The email service

TYPESENSE_API_KEY

A random secret for search

Optional settings

Settings

Turn on

ASSET_S3_*

Image uploads

OPENAI_API_KEY, OPENAI_BASE_URL

Semantic search, AI answers, and image analysis

GOOGLE_CLIENT_*, GITHUB_CLIENT_*

Sign-in with Google and GitHub

PUBLIC_EXTENSIONS_ENABLED, EXTENSIONS_REGISTRY_URL

Extensions from a registry, such as https://extensions.andesine.app/index.json

PRO_VERSION_RETENTION_DAYS

How many days automatic versions are kept; the default is 30

ASSET_MAX_UPLOAD_BYTES

The maximum image size

To show the Google and GitHub sign-in buttons, also set PUBLIC_GOOGLE_AUTH_ENABLED=true and PUBLIC_GITHUB_AUTH_ENABLED=true for the web app. These are build arguments, like the other PUBLIC_* values. Without them, members sign in with email codes and passkeys.

.env.example describes all settings. Set PUBLIC_* values before you build, because they are built into the web app.

HTTPS

Put a reverse proxy, such as Caddy or nginx, in front of the app and the API, and serve both over HTTPS. Set TRUST_PROXY to the address of the proxy, so that the API sees the real addresses of visitors.

Do not open the ports of PostgreSQL, Redis, and Typesense to the internet. Block them with a firewall.

Use the CLI and the SDK

Point the CLI and the SDK to your API:

sh
ts

For AI apps, the MCP server is at https://<your API host>/mcp. Apps that connect from their own servers, such as Claude and ChatGPT, need the API on a public HTTPS address.

Update

sh

The migrate service updates the database before the API starts. Back up the database before you update.

Last updated