neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
8가지 도구(메일·보드·문서·채팅·투두·파일·캘린더·영상방)를 갖춘 오픈소스 자체 호스팅 워크스페이스, ONCE·Kamal·Docker로 배포
Open-source, self-hosted workspace with 8 installable tools. Mail, boards, docs, chat, todos, files, calendar, and video rooms. Deploy with ONCE, Kamal, or Docker.
개발 도구Ruby · GoGitHub @smgdkngt온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Open-source, self-hosted workspace with installable tools. Mail, boards, docs, chat, todos, files, calendar, and video rooms. Deploy with ONCE, Kamal, or Docker.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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.README 전문 보기 ↗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 with threaded conversations, search, drafts that sync, and calendar invites you accept from the message | |
| Board | Kanban boards with labels, due dates, assignees, comments with @mentions, attachments, and an archive |
| Docs | Rich text documents several people write in at once, with each other's cursors shown live |
| Chat | Real-time messaging with replies, @mentions, edits, file sharing, and who's online and typing |
| Todos | Task lists with due dates, assignees, repeating tasks, comments, and attachments |
| Files | Folders, a picture gallery with slideshow, readable text, markdown and code, and public links with a password and expiry |
| Calendar | Syncs with any CalDAV server (iCloud, Fastmail, Nextcloud) or runs on its own; recurring events and invites |
| Room | Video calls powered by LiveKit, with screen sharing |
Dobase follows your system's light and dark mode, or wears one of 22 themes: Tokyo Night, Catppuccin, Gruvbox, Nord, Rosé Pine and the rest of the Omarchy set. Pick one under Profile → Appearance, or press Cmd+K and type its name. The typeface can be the system's monospace font, which on Omarchy is the font the desktop is set in. The mails Dobase sends you come in your theme as well. A theme goes all the way: labels, icons, the logo, the sign-in page, shared links and the installed app's title bar. On an Omarchy desktop, dobase theme follow makes Dobase switch along whenever you change the desktop's theme, with your own themes too.
Everything in your tools is also reachable through a JSON API. Create a personal access token under Profile → API; tokens are read-only or read-and-write and can't touch account settings. See docs/api.
The dobase CLI is built on that API. Run it on its own and
it opens a full-screen app for your boards, todos and chats; give it a command
and it's made for scripts, and a Claude Code skill, so an AI assistant can read
your board, add todos or draft a reply for you:
curl -fsSL https://raw.githubusercontent.com/smgdkngt/dobase/main/cli/install.sh | sh
dobase login https://dobase.example.com
dobase card list "Product Launch"
dobase todo create "Launch Tasks" "Book the venue" --due tomorrow --assignee me
dobase search packaging
Dobase runs as a single Docker container. Everything — web server, background jobs, database — is included.
The easiest way to self-host Dobase is with ONCE by 37signals: an open-source tool that installs a Docker image on a machine of yours and looks after updates, backups and SSL from a terminal dashboard. It runs on Linux and macOS: a cloud VPS, a Raspberry Pi, or your laptop.
curl https://get.once.com | sh
When it asks which application to install, enter the image's path and then a hostname:
ghcr.io/smgdkngt/dobase:latest
Or without the dashboard:
once deploy ghcr.io/smgdkngt/dobase:latest --host dobase.example.com
That's it. Dobase uses what ONCE gives it: the hostname for links in mail, and the server and sender from ONCE's email settings screen for the mail it sends. Backups from ONCE hold the whole installation (the database and every uploaded file).
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.
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.
To run a public demo next to it, where visitors try Dobase in a throwaway workspace without signing up, deploy a second Kamal destination with DEMO_MODE=true. See docs/demo.md.
No server of your own? Railway builds Dobase from this repository and runs it with a volume for the database. See docs/railway.md for the settings.
docker run -d \
-p 80:80 \
-v dobase_storage:/rails/storage \
-e DISABLE_SSL=true \
ghcr.io/smgdkngt/dobase:latest
Visit http://localhost and sign up; the first account needs no invitation. Remove DISABLE_SSL=true when running behind a TLS proxy or with a domain.
Without a SECRET_KEY_BASE, the container makes one on first start and keeps it in the storage volume, so it survives updates. If you pass your own, keep passing the same one: stored mail and calendar passwords are encrypted with it.
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
docker compose up -d
It answers on http://localhost:3000. A fresh key per up would sign everyone out on every restart, so leave SECRET_KEY_BASE unset (the container keeps its own) or put a fixed one in an .env file next to docker-compose.yml. Behind a proxy that does TLS, put DISABLE_SSL= (empty) in that .env: Dobase then insists on https.
Or create your own docker-compose.yml:
services:
web:
image: ghcr.io/smgdkngt/dobase:latest
ports:
- "80:80"
environment:
- APP_HOST=your-domain.com
# With no proxy in front that does TLS, serve plain http:
# - DISABLE_SSL=true
volumes:
- storage:/rails/storage
restart: unless-stopped
volumes:
storage:
| Variable | Default | Purpose |
|---|---|---|
SECRET_KEY_BASE | Kept in the storage volume | Signs sessions and encrypts stored mail and calendar passwords. The Docker image makes one on first start if unset; if you set it (openssl rand -hex 64), never change it |
APP_NAME | Dobase | App name in UI, emails, page titles |
APP_HOST | localhost | Host for the links in mail. ONCE's BASE_URL is used when this is unset |
APP_LOGO_PATH | /icon.svg | Logo path (sidebar, auth pages) |
APP_FROM_EMAIL | [email protected] | Sender address for emails. ONCE's MAILER_FROM_ADDRESS is used when this is unset |
DISABLE_SSL | — | Set to true for non-TLS deployments (ONCE sets this by itself when an app runs without TLS) |
SOLID_QUEUE_IN_PUMA | true in the Docker image | Background jobs (mail and calendar sync, sending mail, notifications) run inside the web process, so one container does everything. Set to false when you run bin/jobs in a container of its own |
OPEN_REGISTRATION | — | Set to true to allow public signup (default: invite-only) |
DEMO_MODE | — | Set to true for a public demo: visitors get a throwaway example workspace, and email, mail and calendar servers, public links and invitations are off. See docs/demo.md |
SENTRY_DSN | — | Report errors to a Sentry-compatible collector — self-hosted Bugsink or GlitchTip work. Off when unset; nothing leaves the server |
SENTRY_ENV | Rails environment | Name this installation in those reports |
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 |
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 |
LIVEKIT_ROOM_PREFIX | — | Prefix for room names, for installations sharing one LiveKit server (e.g. demo-) |
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
All data lives in /rails/storage (SQLite database + uploaded files). Back up this volume regularly.
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.
Seed the database with a fictional company ("Moonshot Snacks") to explore all tools:
SEED_DEMO=1 bin/rails db:seed
Log in as [email protected] / password123.
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
ALLOW_PRIVATE_NETWORK_HOSTS| — |
Set to true to let mail and calendar accounts use servers on a private network (10.x, 172.16–31.x, 192.168.x). Local addresses are always refused |