Choose the hobby profile
The hobby profile runs one HTTP service with a persistent SQLite database. An operator invites users through server administration; each person signs in and authorises their remote MCP client.
This is the small-group route for MCP clients that support Tutor’s HTTPS and OAuth flow. For the native Tutor ACP experience with a shared institutional catalogue, public-key identities and managed roles, use the institution profile.
1. Prepare your VPS and domain
- Install Git and Docker with the Compose plugin on a Linux VPS.
- Point a domain’s DNS A record at the VPS. Add an AAAA record only if IPv6 actually reaches the server.
- Allow inbound TCP 80 and 443 for Caddy. Keep SSH available for administration.
- Replace
tutor.example.orgbelow with your own domain.
Caddy obtains the HTTPS certificate when DNS and network access are ready. The Tutor application port stays inside the container network; Caddy is the public entry point.
2. Download and initialise the service
git clone --branch v0.7.0 --depth 1 https://github.com/ArnaudGuiovanna/tutor-mcp.git
cd tutor-mcp
export TUTOR_DOMAIN=tutor.example.org
export TUTOR_VERSION=v0.7.0
docker compose -f deploy/compose.hobby.yml build
docker compose -f deploy/compose.hobby.yml run --rm --no-deps tutor \
init --profile hobby --data-dir /data/hobby --public-url "https://$TUTOR_DOMAIN"Keep TUTOR_VERSION explicit and use the same release for the checkout and image build. The command above follows the latest stable server release, v0.7.0. Review its release notes before applying the procedure to an existing service.
Initialisation prints a private account invitation. Keep it for the next step and share it only with its intended recipient. You can open it once HTTPS is running. An initial invitation is valid for 24 hours.
3. Start Tutor and check HTTPS
docker compose -f deploy/compose.hobby.yml up -d
curl --fail "https://$TUTOR_DOMAIN/ready"A successful readiness response confirms that the service and its database are available through HTTPS. If it fails, check the DNS records, firewall and Caddy logs before configuring a client.
Open the private invitation over HTTPS to create the first account. Creating an account and authorising a client are separate steps.
4. Connect an MCP client
Give each user the MCP endpoint:
https://tutor.example.org/mcpIn a compatible remote MCP client, add that URL, sign in with the invited account and approve the client’s access. Connector availability and allowed authentication methods depend on the client and its account policy.
Follow Connect another MCP client, then ask the assistant to use Tutor to start a learning session.
5. Invite people and preserve your data
Run administrative commands on the server, through the existing container:
docker compose -f deploy/compose.hobby.yml exec tutor /usr/local/bin/tutor-mcp users invite --data-dir /data/hobbyThe same CLI provides users list, users reset alice and users disable alice. Use the same profile directory as the running service.
Preserve the tutor_data, caddy_data and caddy_config volumes through upgrades. Keep the Compose project name stable and follow the backup procedure before replacing a version. Removing the volumes also removes their data.
If the default Docker subnet overlaps your network, change the subnet, static addresses and trusted proxy settings together as explained in the operator installation guide.
Prefer systemd to Docker? The repository includes a separate native VPS procedure with Caddy.
Keep going.
Source documentation
Before deploying or upgrading, read the release notes for the version you install. The repository provides the full contracts and operator details:
Found something unclear? Report a documentation issue.