Two console steps — deploy and create the owner. From there the
platform guides you itself: the dashboard shows a setup panel that
links to every screen and checks off what's done.
Before you begin
What you'll need
A Linux server (VPS) with Docker and Docker Compose installed — from 2 vCPU and 8 GB RAM (details in step 1).
A domain whose A record points to the server.
An AI provider API key — Anthropic, OpenAI, Google, a model aggregator (OpenRouter and the like), or your own OpenAI-compatible server, including local Ollama.
SMTP access (a mail server for outgoing email) — needed to invite employees. Can be added later.
Console · step 1
Deployment
The platform ships as a set of Docker containers: the database,
queues, backend, frontend, and reverse proxy all come up with a single
command.
Server requirements
minimum · recommended
AI hub (no knowledge base)2 vCPU · 8 GB RAM · 40 GB SSD
With knowledge base and built-in embedder8 vCPU · 16 GB RAM · 80 GB SSD
the built-in embedder keeps the model in memory (peak ~6 GB);
if an external provider computes the embeddings, the minimum is enough.
Running the embedder on an 8 GB host? Add swap (4 GB is enough) —
the load peak is transient, but without swap it can OOM the service
1
Clone the repository and fill in the settings
The .env file is the only place
you need to edit before launch.
git clone https://github.com/maestrokj/Achilles.git
cd Achilles
cp .env.example .env
A fresh platform has no accounts at all. You create the first one —
the Owner — yourself; everyone else signs in later by invitation.
There are two ways to do it, and both work only while the database is
still empty.
A
In the browser — the first-run screen
Just open https://<your-domain>/.
On an empty database the platform takes you straight to the
owner-creation screen — enter a name, email, and password, and
you land in the admin panel already signed in.
B
In the console — a command
Prefer to keep the form off the public domain? Create the Owner
on the server, then sign in at
https://<your-domain>/login.
The first-run screen is open to whoever reaches the domain first, so
create the Owner right after deployment. Once any account exists, both
the screen and the command switch off for good, and the domain shows
the normal login.
Roles in the platform: Owner — everything, including
the audit log and security settings; Admin — the
control panel; Member — chat, agents, and personal
settings.
In the browser
The setup panel takes it from here
After the first login the admin dashboard greets you with a setup
panel: six steps, each linking to the right screen. The platform
checks them off on its own as you go, and once everything is
configured the panel retires itself. The sections below walk the same
six steps in the same order.
the panel on the dashboard — here every row jumps to its section below
Panel · 1
Models for answers
The heart of the platform. One provider and one model is the minimum
for chat to work. Everything happens on one screen —
https://<your-domain>/admin/ai-models
(the "AI models" menu item).
1
Add a provider
"Add provider" → paste the API key → "Test". Any major
provider works (Anthropic, OpenAI, Google), as does a model
aggregator or your own OpenAI-compatible model — for the
latter just point at the server URL.
New provider
Test
ProviderAnthropic
API keysk-ant-•••••••••••••
2
Enable models
Switch on the models you need from the provider's catalog.
3
Assign them to chat
In the "Assignments" block pick which of the enabled models are
available to employees in chat.
Chat is live. Open
https://<your-domain>/chat and try
it — the remaining panel steps don't block it. This is the
employees' workspace: they talk to the AI here, and set up their
own agents next door.
The same "AI models" screen, the "Assignments" block. The embedding
model turns documents into vectors for search — the knowledge base
can't be built without one. A built-in embedder ships with the
platform and runs on your server, so an external provider is
optional.
Pick the model before the first source sync: changing it later means
reindexing the entire base.
Panel · 3 for the knowledge base
Data sources
This step turns the platform from an AI hub into company memory:
Jira, Confluence, and other sources are gathered into a knowledge
graph, and answers start drawing on your documents — with links to
the source. The screen is
https://<your-domain>/admin/harvester
(the "Data sources" menu item).
1
Add a source
The "Add source" button opens a wizard: source type,
credentials, connection test, scope.
2
Run a sync
Start it manually or wait for the schedule. The incremental
interval is shared across all sources; an individual source can
be given its own schedule in its card.
3
Check that people got matched
After the first sync the platform links source accounts to
platform users by email. Anyone it couldn't match shows up on
the dashboard ("unlinked accounts") and on
https://<your-domain>/admin/users
→ the "Data source links" tab — link them there manually in a
couple of clicks. Until an account is linked, that employee
only gets public documents in their answers.
4
Keep an eye on the storage
https://<your-domain>/admin/knowledge-store
(the "Storage" item) — graph state (entities, chunks, links,
vectors), the curation schedule, retention policy, and backups
to external storage.
Source access rights are carried into the graph: an employee only gets
the documents in their answers that they can access in the original
source.
Agents are autonomous assistants employees set up for recurring work
at https://<your-domain>/agents.
On the "AI models" screen, in the same "Assignments" block, mark the
models agents may use — each employee then picks from that list for
their agent.
Without it, employee invitations and password resets won't work. On
https://<your-domain>/admin/platform
(the "Platform" menu item) fill in the SMTP card and click "Test" —
the platform sends a test email.
Email (SMTP)
Test
Hostsmtp.yourcompany.com
Port · Encryption465 · SSL/TLS
Username · Passwordnoreply@yourcompany.com · ••••
Sender addressnoreply@yourcompany.com
a snippet of the "Platform" screen — green marks what to fill in
Employees can ask the platform right from their messenger — each
thread is its own conversation. The cards live on the "Platform"
screen, in the "Surfaces" block; connect any or all three.
Surfaces
Platform · what each one needs
Slackbot token · signing secret
Mattermostserver URL · bot token
Telegrambot token
each card has its own "Test" button — the platform verifies the
credentials right away
For the platform to recognize who's writing, each employee links
their messenger account in their personal settings — see
"Inviting the team" below.
All six checkmarks — the panel retires itself. The
platform is configured; what's left is to bring people in.
Accounts are created by invitation only — there's no self-signup.
You'll need email configured (panel step 5); if SMTP isn't set up,
the invitations screen reminds you.
1
Send an invitation
https://<your-domain>/admin/users
(the "Users" item) → the "Invitations" tab → email and role. The
link in the email is valid for 48 hours.
Invite an employee
Send
Emailcolleague@company.com
RoleMember
2
The employee accepts the invitation
From the link in the email they set a name and password — and
land in chat. Their agents, conversation history, notification
feed, and personal settings are already waiting for them.
3
Linking a messenger optional
In personal settings
(https://<your-domain>/account,
the "Connected accounts" section) the employee picks a
messenger — the platform issues a short-lived code to send to
the bot in a direct message, and the accounts are linked.
Fine-tuning optional
Making it yours
Beyond the setup panel — worth a look once the platform is running.
Organization
Company name, logo, timezone, interface language, and date format
— defaults every employee can override.
/admin/platform
Spend limits
A weekly token cap for agents and a monthly budget alert; spend
per employee and per model shows up here too.
/admin/ai-usage
AI tools
Web search and page fetching for chat and agents.
/admin/ai-tools
Organization prompt
The company's tone, rules, and context that the AI factors into
every answer.
/admin/ai-prompt
Notifications
Which events reach people and through which channels — in-app
feed and email.
/admin/notifications
Growing further optional
Customization
The platform extends in four directions — each described in the
architecture documentation.
Your own surfaces — Public API
An internal portal, another messenger, your own tool — any surface
connects through an open HTTP API. Access keys are issued on the
"API keys" screen (/admin/api-keys).
External AI assistants — MCP
Claude, IDEs, and other MCP clients connect to the company
knowledge base as a tool — switched on with a kill switch on the
"Platform" screen.
Your own connectors
A non-standard data source connects via the Harvester contract —
syncing, scheduling, and monitoring come for free.
Your own AI tools
The tool catalog is open: the next iteration adds connecting MCP
servers with tools for agents.