An open-source, self-hosted workspace with installable tools. Add a mail client, kanban boards, documents, chat, file storage, calendars, to-do lists, or video rooms — each shared with collaborators you choose.
Built with Ruby on Rails 8.1, Hotwire, and Tailwind CSS.
| Tool | Description |
|---|---|
| IMAP/SMTP email client with rich text compose, contacts, and conversations | |
| Board | Kanban boards with columns, cards, comments, and attachments |
| Docs | Rich text documents with real-time collaborative editing |
| Chat | Real-time messaging with typing indicators, replies, and file sharing |
| Todos | Task lists with due dates, assignments, comments, and attachments |
| Files | File storage with folders, sharing via public links, and previews |
| Calendar | CalDAV-compatible calendar with recurring events and local mode |
| Room | Video conferencing powered by LiveKit |
git clone https://github.com/smgdkngt/dobase.git
cd dobase
bin/setup
This installs dependencies, prepares the database, seeds tool types, and starts the dev server.
Or start manually:
bundle install
bin/rails db:prepare
bin/dev
The app runs at http://localhost:3000. Sign up to create your first account.
docker compose up
This starts the app with a pre-built image. Visit http://localhost:3000.
For production deployment, see the Dockerfile and config/deploy.yml (Kamal).
All branding is configurable via environment variables:
| Variable | Default | Purpose |
|---|---|---|
APP_NAME |
Dobase |
App name in UI, emails, page titles |
APP_LOGO_PATH |
/icon.svg |
Logo path (sidebar, auth pages, mobile header) |
APP_HOST |
localhost:3000 |
Host for mailer URLs |
APP_FROM_EMAIL |
notifications@dobase.co |
Sender address for notification emails |
letter_opener. For production, set SMTP_* environment variables (see Deployment).Every feature is a Tool instance linked to a ToolType. Users add tools to their workspace and optionally share them with collaborators. Permissions are binary: owner (full control) or collaborator (functional access).
has_secure_passwordDobase ships with Kamal for zero-downtime Docker deployments to any server.
All you need is a simple VPS with Ubuntu installed. Kamal handles the rest (Docker, SSL, zero-downtime deploys). Make sure to enable a firewall (allow 22, 80, 443 — plus LiveKit ports if using video), enable unattended security updates, and use SSH key authentication (disable password auth).
Edit config/deploy.yml — set your server IP and domain:
service: dobase
image: dobase
servers:
web:
- your-server-ip
proxy:
ssl: true
host: your-domain.com
registry:
server: localhost:5555
Generate a secret key base and add your credentials to .kamal/secrets (this file is gitignored):
bin/rails secret # generates a SECRET_KEY_BASE value
# .kamal/secrets
SECRET_KEY_BASE=your-generated-secret
# Required for sending notification/invitation emails
SMTP_USERNAME=your-smtp-user
SMTP_PASSWORD=your-smtp-password
# Optional — only needed for the Room (video) tool
LIVEKIT_API_KEY=your-key
LIVEKIT_API_SECRET=your-secret
Non-sensitive settings (SMTP address/port, app name, etc.) are configured in config/deploy.yml under env/clear.
kamal setup # First deploy: provisions server, builds image, starts app
kamal deploy # Subsequent deploys
Kamal handles SSL certificates (Let’s Encrypt), zero-downtime deploys, and asset bridging automatically.
bin/kamal console # Rails console on server
bin/kamal logs # Tail production logs
bin/kamal shell # SSH into app container
SQLite database and Active Storage files live in a persistent Docker volume. Back up /rails/storage on your server regularly.
bin/dev # Start dev server (Rails + Tailwind watcher)
bin/rails test # Run tests (Minitest)
bin/rails test:system # Run system tests (Capybara + Selenium)
bin/rubocop # Lint Ruby
bin/brakeman --quiet # Security analysis
O’Saasy License — MIT-style with SaaS restriction. Free to use, modify, and self-host. Cannot be offered as a competing hosted service.