# Self-host

One Compose file starts the app and an S3-compatible store. It is limited to 1 vCPU and 256 MB of RAM and still streams Full Syncs.

## Run it on a small box

1. Copy the environment file
   
   Then set your domain and secrets.
   
   Environment
   
   ```
   cp docker/.env.example .env
   ```
2. Start the stack
   
   Start
   
   ```
   docker compose --env-file .env -f docker/compose.self-hosted.yml up -d
   ```
3. Read the setup token
   
   The one-time setup token is printed in the app logs.
   
   Logs
   
   ```
   docker compose --env-file .env -f docker/compose.self-hosted.yml logs app | grep -i setup
   ```
4. Create the admin
   
   Open `/setup`, enter the token, create the admin and choose a registration mode: `open` or `closed`.
5. Point Anki at it
   
   In Anki, set the custom sync server to your base URL. The client adds `/sync/` and `/msync/` itself.
   
   Sync address
   
   ```
   https://sync.example.com/
   ```

> Full guide
> 
> Backups, upgrades, reverse proxies and every setting are in `docs/self-hosting.md` in the repository. Once the server is running, continue with [Sync with Anki](https://ankinize.com/docs/sync).
