
Deploy AionUi
AionUi: headless web AI agent workspace with document generation.
Just deployed
/data
Deploy and Host AionUi with Railway
AionUi is an AI agent workspace with a web UI: chat with AI agents, generate office documents (Word, Excel, PowerPoint, PDF, Mermaid diagrams), and run agent tasks — all from a headless server, no desktop app required.
About Hosting AionUi
This template deploys AionUi's WebUI mode: the same server that powers the desktop app, the official no-Electron web runtime from the pinned upstream release, running headless with HOME on a persistent volume at /data — the SQLite database, configuration, generated documents, and logs all survive redeploys. Remote access is enabled in the image and Railway's injected port is honored.
On first boot AionUi generates a random password for the built-in admin user, prints it in the deploy logs exactly once, and — thanks to the image's start wrapper — also saves it to /data/.aionui-web/initial-admin-password on the persistent volume, so it can be reprinted after any redeploy with aionui-credentials (see below). Change the password from the UI after your first sign-in.
Login credentials
| URL | the service's public domain (https://) |
| Username | admin (fixed, generated by AionUi on first boot) |
| Password | random, generated at first boot — not in any template variable |
Three ways to read the password:
- Deploy logs (first boot only): the
aionuiservice → Deploy Logs → lineGenerated initial admin password: .... It is printed once, on the very first deployment only — later redeploys never repeat it. - SSH helper (works forever):
Prints username and the stored password (the wrapper persisted it on the volume atrailway ssh --service aionui -- aionui-credentials/data/.aionui-web/initial-admin-password, mode 0600). - Direct file read inside the container:
cat /data/.aionui-web/initial-admin-password.
> Lost password, deployed before this wrapper existed? The stored file will be absent and the log line only lives in the first deployment's logs (dashboard keeps them; CLI: railway logs --service aionui --lines 500 | grep 'admin password'). If truly unrecoverable, the reset path is a fresh volume (data loss) — so change and store your own password in a password manager after first sign-in.
Why Deploy AionUi on Railway?
- One platform: host the agent workspace next to your APIs and databases on a private network.
- Always on: agents keep working after you close the laptop; sessions persist on the volume.
- Zero-config secrets: no passwords ship with the template — the first-boot password is random and only lives in your logs.
- Scale on demand: the image recommends ~2 GB RAM for document generation; vertical scaling takes seconds.
Common Use Cases
- Web-based AI chat workspace for a small team, reachable from anywhere.
- Automated document generation (reports, spreadsheets, slide decks) via agent tasks.
- A private, self-hosted alternative to hosted AI workspace products.
- Running Gemini/OpenAI/Antropic-powered agents against uploaded office files.
Dependencies for AionUi Hosting
- Docker image: official
aionui-web2.1.47release tarball (self-contained bun binary + aioncore), published aswotonews/aionui:v2.1.47-1 - Bun runtime, .NET officecli (ICU included), SQLite (embedded, volume-backed)
- Bring your own AI provider keys (Gemini, OpenAI, Anthropic, …) from the in-app settings
Deployment Dependencies
- Source: https://github.com/iOfficeAI/AionUi (Apache-2.0)
- Docs: https://github.com/iOfficeAI/AionUi/blob/main/docs/guides/webui.md
First Login
- Deploy the template — no variables to fill in.
- Generate a public domain on the service (if none was created).
- Get the password: first-boot deploy log line
Generated initial admin password: ..., orrailway ssh --service aionui -- aionui-credentials(works after any redeploy). - Sign in at
https://asadminwith that password and change it in settings. - Add AI provider keys in the in-app settings.
Environment Variables
None required. The image bakes AIONUI_ALLOW_REMOTE=true, HOME=/data, and honors the Railway-injected PORT. Optional overrides can be set as service variables (AIONUI_PORT, AIONUI_HOST).
Local Setup
docker build -t wotonews/aionui:v2.1.47-3 .
docker run -d --name aionui -p 3000:3000 -v aionui-data:/data wotonews/aionui:v2.1.47-3
docker logs aionui # banner + 'Generated initial admin password: ...'
docker exec aionui aionui-credentials # reprint username/password anytime
Template Content

