Self-Hosting
Requirements
- Ruby 3.4.6 through mise or another Ruby manager
- SQLite for local development
- PostgreSQL for production
- Docker for container builds and runner execution
- Kamal for production deploys
Local Setup
mise exec -- bundle install
mise exec -- bin/rails db:setup
mise exec -- bin/dev
The default seeded account is admin@xmode.local with password password123 unless ADMIN_EMAIL and ADMIN_PASSWORD are set.
Demo data is seeded by default for bender.demo@xmode.local with password password123. Set DEMO_PLANET_EXPRESS=0 to disable it, or override DEMO_BENDER_EMAIL and DEMO_BENDER_PASSWORD.
Planet Express demo workspaces use a fake agent simulator for provider and local-shell actions. The dashboard includes a demo operation form that creates an issue, runs the Implement Issue pipeline, and writes mock logs and artifacts without calling an external agent.
Production Shape
xmode is designed to run as:
- web process: Rails/Puma/Thruster
- job process: Solid Queue workers
- Postgres accessory
- persistent
/rails/storagevolume for run artifacts
Kamal config lives in config/deploy.yml.