SkillAgentSearch skills...

Dobase

Open-source, self-hosted workspace with installable tools. Mail, boards, docs, chat, todos, files, calendar, and video rooms. Deploy with ONCE, Kamal, or Docker.

Install / Use

/learn @smgdkngt/Dobase
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Dobase

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.

Dobase

Tools

| Tool | Description | |------|-------------| | Mail | 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 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 |

Self-hosting

Dobase runs as a single Docker container. Everything — web server, background jobs, database — is included.

Install with ONCE

The easiest way to self-host Dobase is with ONCE by 37signals. ONCE handles installation, updates, backups, and SSL — all from a simple terminal dashboard.

Point ONCE at:

ghcr.io/smgdkngt/dobase:latest

That's it. ONCE takes care of the rest — including SSL, persistent storage, and automatic backups. Works on any Linux server, cloud VPS, or even a Raspberry Pi.

All tools work out of the box except the Room (video) tool, which requires an external LiveKit server. ONCE runs a single container per app, so LiveKit needs to run separately — either via LiveKit Cloud or as a standalone Docker container. See Video conferencing for setup.

Deploy with Kamal

For the complete experience — SSL, zero-downtime deploys, LiveKit as an accessory — use Kamal. All you need is a VPS with Ubuntu.

git clone https://github.com/smgdkngt/dobase.git
cd dobase

Edit config/deploy.yml with your server IP and domain, then add secrets to .kamal/secrets:

# .kamal/secrets
SECRET_KEY_BASE=<generate with: bin/rails secret>
SMTP_USERNAME=your-smtp-user
SMTP_PASSWORD=your-smtp-password
kamal setup    # First deploy — provisions server, builds image, starts app
kamal deploy   # Subsequent deploys

Kamal handles SSL certificates (Let's Encrypt), asset bridging, and rolling restarts automatically. LiveKit can run as a Kamal accessory — uncomment the livekit section in config/deploy.yml.

Docker

docker run -d \
  -p 80:80 \
  -v dobase_storage:/rails/storage \
  -e SECRET_KEY_BASE=$(openssl rand -hex 64) \
  ghcr.io/smgdkngt/dobase:latest

Visit http://localhost and sign up.

Docker Compose

For a persistent setup with all options, clone the repo and use the included docker-compose.yml:

git clone https://github.com/smgdkngt/dobase.git
cd dobase
SECRET_KEY_BASE=$(openssl rand -hex 64) docker compose up -d

Or create your own docker-compose.yml:

services:
  web:
    image: ghcr.io/smgdkngt/dobase:latest
    ports:
      - "80:80"
    environment:
      - SECRET_KEY_BASE=<your-secret>
      - APP_HOST=your-domain.com
    volumes:
      - storage:/rails/storage
    restart: unless-stopped

volumes:
  storage:

Configuration

| Variable | Default | Purpose | |----------|---------|---------| | SECRET_KEY_BASE | — | Required. Generate with openssl rand -hex 64 | | APP_NAME | Dobase | App name in UI, emails, page titles | | APP_HOST | localhost:3000 | Host for mailer URLs | | APP_LOGO_PATH | /icon.svg | Logo path (sidebar, auth pages) | | APP_FROM_EMAIL | notifications@dobase.co | Sender address for emails | | DISABLE_SSL | — | Set to true for non-TLS deployments (ONCE sets this automatically on localhost) |

Email (SMTP)

Email sending requires SMTP configuration. Without it, all other features work fine — invitation and notification emails just won't be sent.

| Variable | Default | Purpose | |----------|---------|---------| | SMTP_ADDRESS | — | SMTP server hostname | | SMTP_PORT | 587 | SMTP port | | SMTP_USERNAME | — | SMTP username | | SMTP_PASSWORD | — | SMTP password |

Video conferencing (LiveKit)

The Room tool requires a LiveKit server. All other tools work without it.

LiveKit runs as a separate container — browsers connect to it directly via WebSocket, so it needs its own public URL.

| Method | How to run LiveKit | |--------|--------------------| | Docker Compose | Uncomment the livekit service in docker-compose.yml | | Docker | Run docker run -d -p 7880:7880 -p 7881:7881 -e LIVEKIT_KEYS=key:secret livekit/livekit-server | | Kamal | Uncomment the livekit accessory in config/deploy.yml | | ONCE | Run LiveKit separately, or use LiveKit Cloud |

| Variable | Default | Purpose | |----------|---------|---------| | LIVEKIT_URL | — | Public WebSocket URL browsers connect to (e.g. wss://room.your-domain.com) | | LIVEKIT_API_KEY | — | LiveKit API key | | LIVEKIT_API_SECRET | — | LiveKit API secret |

Example with Docker Compose (uncomment in docker-compose.yml):

livekit:
  image: livekit/livekit-server:latest
  ports:
    - "7880:7880"
    - "7881:7881"
  environment:
    - LIVEKIT_KEYS=your-api-key:your-api-secret
  restart: unless-stopped

Then add to the web service environment:

- LIVEKIT_URL=wss://room.your-domain.com
- LIVEKIT_API_KEY=your-api-key
- LIVEKIT_API_SECRET=your-api-secret

Storage & backups

All data lives in /rails/storage (SQLite database + uploaded files). Back up this volume regularly.

Development

Requirements

  • Ruby 3.4+
  • SQLite 3
  • libvips (for image processing)

Setup

git clone https://github.com/smgdkngt/dobase.git
cd dobase
bin/setup

Or manually:

bundle install
bin/rails db:prepare
bin/dev

The app runs at http://localhost:3000.

Demo data

Seed the database with a fictional company ("Moonshot Snacks") to explore all tools:

SEED_DEMO=1 bin/rails db:seed

Log in as sophie@moonshot-snacks.com / password123.

Commands

bin/dev                    # Start dev server (Rails + Tailwind watcher)
bin/rails test             # Run tests
bin/rails test:system      # Run system tests
bin/rubocop                # Lint Ruby
bin/brakeman --quiet       # Security analysis

License

MIT License

View on GitHub
GitHub Stars159
CategoryDevelopment
Updated10h ago
Forks5

Languages

Ruby

Security Score

100/100

Audited on Apr 6, 2026

No findings