# Install fikadesk

This page is written for coding agents and scripts. It assumes Docker Compose and a Linux box.
The human guide with backups, reverse proxies and security defaults is
[docs/self-hosting.md](https://github.com/fikadesk/fikadesk/blob/main/docs/self-hosting.md).

## Get the code

```sh
git clone https://github.com/fikadesk/fikadesk.git
cd fikadesk
```

## Requirements

- Docker Engine 24 or newer with the Compose plugin.
- 2 GB of RAM and 10 GB of disk to start.
- A DNS name pointing at the box if you want HTTPS.
- A second name for attachments, `FIKADESK_MEDIA_URL`; nothing serves that origin yet.

## Quickstart

```sh
cp deploy/compose/.env.example deploy/compose/.env
openssl rand -hex 24   # POSTGRES_PASSWORD, FIKADESK_APP_PASSWORD
openssl rand -hex 32   # FIKADESK_AUTH_SECRET, FIKADESK_REALTIME_SECRET
$EDITOR deploy/compose/.env
docker compose -f deploy/compose/compose.yml --profile single up -d --wait
curl http://127.0.0.1/healthz
```

## First administrator

```sh
docker compose -f deploy/compose/compose.yml logs api | grep setupToken
curl -X POST http://127.0.0.1/api/setup -H 'content-type: application/json' \
  -d '{"token":"<the token>","email":"you@example.com","name":"You","password":"<at least 12 characters>"}'
```

## Go public

Set `FIKADESK_DOMAIN=support.example.com` and `FIKADESK_BIND=0.0.0.0` in `.env`. Caddy fetches a
certificate on start and redirects HTTP to HTTPS.

## Messenger

```html
<script data-workspace="<workspace-slug>" src="https://<your-host>/loader.js"></script>
```

Until a host domain is added to the workspace, the messenger loads nowhere.

## Upgrade

```sh
$EDITOR deploy/compose/.env    # bump FIKADESK_IMAGE to the new tag
docker compose -f deploy/compose/compose.yml --profile single pull
docker compose -f deploy/compose/compose.yml --profile single run --rm migrate
docker compose -f deploy/compose/compose.yml --profile single up -d --wait
```

OpenAPI at a stable URL, the MCP server and the SDK packages ship later. The compose quickstart
above is the install path today.
