启动前必须修改 docker-compose.yml 中的 BASE_URL、SECRET_KEY、POSTGRES_PASSWORD 和 DATABASE_URL,否则无法正常使用;默认账号密码为 demo/demo,部署后应尽快更换;默认访问地址是 http://localhost:3000,需自行配置反向代理对外提供服务
4gaBoards
RARgamesMIT活跃维护轻量级实时看板工具,支持暗色模式、可折叠待办列表和多任务处理,帮助团队直观追踪任务、提升协作效率。
Straightforward realtime kanban boards management for intuitive task tracking. 4ga Boards features an elegant dark mode, collapsible todo lists, and multitasking tools to supercharge your team's productivity.
curl -L https://raw.githubusercontent.com/RARgames/4gaBoards/main/docker-compose.yml -o docker-compose.yml
docker compose up -dREADME 未说明具体硬件要求;部署需 Docker 与 Docker Compose,数据库使用 PostgreSQL
自托管的实时看板项目管理系统,支持多级层级与多人协作,适合团队替代 Trello
轻量级实时看板工具,支持暗色模式、可折叠待办列表和多任务处理,帮助团队直观追踪任务、提升协作效率。
核心能力
- 实时更新看板,无需刷新页面
- 支持项目→看板→列表→卡片→任务多级层级
- 内置 Markdown 编辑器与看板导入导出
- 支持 Google/GitHub/Microsoft/OIDC 单点登录
- 可从 Trello 直接导入看板数据
容易踩的坑
- v3.3.144ga Boards 3.3.14最新正式版2026-10-24 · 2026-10-24 22:20 UTC
Changes since last release:
- 🎨 style: Added notification icon in users settings 4bba7cb
- 💢 ci: Run e2e test only on main 548717f
- 📄 Update CodeQL workflow triggers 02aaf0d
- 💄 chore(deps): update actions/checkout action to v7 2ef6dc7 @renovate-bot
- 📄 Merge pull request #1061 from RARgames/renovate/actions-checkout-7.x 82875e7
- 🌟 feat: Started dnd rework f1a3ea2
- 📖 docs: Updated Readme 1036768
- 🌟 feat: Removed obsolete isDragOverTask from Card e31b0ff
- 🌟 feat: Card dnd - extra checks 2107a40
- 🌟 feat: Dnd cards, tasks, lists - rework d3f7ba1
- 🌟 feat: Board/Project move failure action 58ce0c0
- 🌟 feat: Project reordering language 96dfdec
- 🌟 feat: Added position to project memberships (db_update) c9c97e6
- 🌟 feat: Project reordering prep 42120b7
- 🌟 feat: Project reordering f361ca4
- 🐝 refactor: Sidebar refs 1f3ed2f
- 🐝 refactor: Added BoardView 02a614a
- 🐞 fix: Sidebar boards reordering flicker f899d80
- 🌟 feat: Limit tasks height in variants != Cardmodal 57a3e9b
- 💄 chore(deps): Deps maintenance d9e35b0
- 💄 chore(deps): Deps maintenance 7c104b1
- 🌟 feat: Tanstack/react-table migration to 9 p0 a48b3af
- 🌟 feat: Tanstack/react-table migration to 9 p1 bf813b5
- 💄 chore(deps): Dependency maintenance d7423b3
- 💄 chore(deps): Bumped deps a2cfe73
- 💄 chore(deps): update dependency rollup to v4.64.6 0937862 @renovate-bot
- 📄 Merge pull request #1090 from RARgames/renovate/rollup-4.x-lockfile d97b384
- 💄 chore(deps): Bumped deps b168a6a
- 💄 chore(deps): update dependency @testing-library/user-event to v14.6.8 7b3efa3 @renovate-bot
- 📄 Merge pull request #1075 from RARgames/renovate/testing-library-monorepo b8fa78d
- 🐞 fix: Fixed notif mail title containing translated listName eab3b8c
- 🐞 fix: Fixed user receiving notif after deleting board 0f302bd
- 🐞 fix: Fixed Pre-account takeover vulnerability (thanks @avrlab233) 62192a1
- 💄 chore: Approved @tanstack/react-table skills to suppress extra logs 3231abe
- 💄 chore(deps): Removed legacy overrides 51b321f
- 💄 chore(security): Bump deps a242855
- 💄 chore(deps): update dependency fflate@>=0.7.0 <0.7.5 to ^0.8.0 3b94f8e @renovate-bot
- 📄 Merge pull request #1104 from RARgames/renovate/fflate-=0.7.0-0.7.5-0.x cb33927
- 🐞 fix: Attempt to fix false positive - Uncontrolled data used in path expression c76f364
- 💄 chore(deps): update dependency body-parser@<1.20.6 to v2 08b94d5 @renovate-bot
- 📄 Merge pull request #1105 from RARgames/renovate/body-parser-1.20.6-2.x 24baeac
- 💄 chore(deps): update dependency eslint-plugin-prettier to v5.5.7 f1231fc @renovate-bot
- 📄 Merge pull request #1103 from RARgames/renovate/eslint-plugin-prettier-5.x-lockfile 4cb5550
- 🔙 revert: body-parser bump 425f35b
- 🌟 feat(oidc): add PKCE support 2828b8a @OllieJC
- 🌟 feat: Added url to fetchRetry errors f2c1c03
- 💄 chore(deps): Bumped jose 2bc5161
- 💊 clean: Cleanup .env.sample 702182f
- 🐞 fix: Disabled cron notifications batching hook in test mode a9995ca
- 🐞 fix: Fixed Eslint warnings 2ce83c5
- 🐝 refactor: Enable PKCE by default in OIDC, renamed key 082e029
- 💄 chore(deps): update dependency i18next to v26.4.5 3d2bcff @renovate-bot
- 📄 Merge pull request #1088 from RARgames/renovate/i18next-26.x-lockfile 49a4a94
- 🌟 feat: Added /list-view, /board-view to url for direct links for custom view c72cc6e
- 💄 chore(deps): update dependency rollup to v4.64.7 a4073fa @renovate-bot
- 📄 Merge pull request #1109 from RARgames/renovate/rollup-4.x-lockfile 1deed28
- 💄 chore(deps): update dependency dotenv to v18.0.8 c5bf27f @renovate-bot
- 📄 Merge pull request #1107 from RARgames/renovate/dotenv-18.x-lockfile 178b880
- 💄 chore(deps): update dependency @azure/msal-node to v7.1.0 d4fa452 @renovate-bot
- 📄 Merge pull request #1063 from RARgames/renovate/azure-ad-microsoft-authentication-library-for-js-monorepo 2d1a5f9
- 📄 init commit - submission ab444b4 @manoonan1
- 📄 Added drag test and removed unused files 155ac8f
- v3.3.134ga Boards 3.3.132026-07-15 · 2026-07-15 21:24 UTC
查看更新说明
Changes since last release:
- 🐞 fix(security): unsafe url construction in background component en db455dd @tomaioo
- 🐝 refactor: Moved isSafeUrl to utils 672fab7
- 🐞 fix: Getting Started Project required reload before showing (missing boardMembership) ebab08a
- 🌟 feat: Added suppressed system notifications tags and show full precision due dates in user prefs (db_update) 7e79ef7
- 🎨 style: One line Task DueDate 9724ce0
- 🎨 style: Minor changes b325024
- 💄 chore(deps): update helm release postgresql to v18.7.12 211d54d @renovate-bot
- 🐞 fix(deps): update dependency webpack-dev-server to v6 f5b6ac3 @renovate-bot
- 💄 chore(deps): update dependency @opentelemetry/core to v2.9.0 1ece3f4 @renovate-bot
- 💄 chore(deps): update docker/login-action action to v4.4.0 d56eea4 @renovate-bot
- 💄 chore(deps): update dependency webpack to v5.108.4 2958d31 @renovate-bot
- 💄 chore(deps): update dependency browserslist to v4.28.5 7225201 @renovate-bot
- 🌟 feat: Updated boards restore/backup scripts 9d3ce2c
- 💢 ci: Added minimumReleaseAge to renovatebot config 13834a2
- 💄 chore: Bumped docker compose postgres version 3e5cba6
- 🐞 fix: Fixed undefined system-notifications endpoint when NODE_ENV not set and HOST_NOTIFICATIONS_URL not set 906b0bf
- 💄 chore(deps): update dependency @azure/msal-node to v5.4.0 12f5078 @renovate-bot
- 📄 Merge pull request #1043 from RARgames/renovate/azure-ad-microsoft-authentication-library-for-js-monorepo 3e37cdb
- 💄 chore(deps): update dependency eslint-plugin-perfectionist to v5.10.0 b0cde86 @renovate-bot
- 📄 Merge pull request #1041 from RARgames/renovate/eslint-plugin-perfectionist-5.x-lockfile b2f1172
- 🌟 feat: Added NODE_ENV production in sample .env 7087a57
- 🌟 feat: Updated config 59e1879
- 💄 chore(deps): update helm release postgresql to v18.7.13 e3c5ad3 @renovate-bot
- 📄 Merge pull request #1045 from RARgames/renovate/postgresql-18.x 6cac1e1
- 💄 chore(deps): update dependency i18next to v26.3.6 63ce978 @renovate-bot
- 📄 Merge pull request #1044 from RARgames/renovate/i18next-26.x-lockfile 79c9b8a
- 💄 chore(deps): update dependency browserslist to v4.28.6 f00d540 @renovate-bot
- 📄 Merge pull request #1047 from RARgames/renovate/browserslist-4.x-lockfile 06a9862
- 💄 chore(deps): update dependency node-cron to v4.6.0 122eb25 @renovate-bot
- 📄 Merge pull request #1009 from RARgames/renovate/node-cron-4.x-lockfile 578da9b
- 💄 chore(deps): update dependency @floating-ui/react to v0.27.20 ab8dd97 @renovate-bot
- 📄 Merge pull request #1046 from RARgames/renovate/floating-ui-react-0.x-lockfile b35a2fe
- 💄 chore(deps): update dependency filesize to v11.0.22 980a0f2 @renovate-bot
- 📄 Merge pull request #1049 from RARgames/renovate/filesize-11.x-lockfile 3cbb3a9
- 💄 chore(deps): update dependency postcss to v8.5.17 29fd395 @renovate-bot
- 📄 Merge pull request #1050 from RARgames/renovate/postcss-8.x-lockfile 71bfc99
- 💄 chore(deps): update dependency react-i18next to v17.0.9 6f27d7e @renovate-bot
- 📄 Merge pull request #1052 from RARgames/renovate/react-i18next-17.x-lockfile 3f5b5c8
- 💄 chore(deps): update dependency prettier to v3.9.5 0c67c1d @renovate-bot
- 📄 Merge pull request #1051 from RARgames/renovate/prettier-3.x-lockfile c026579
- 🐞 fix: Use findOrCreate instead of create to prevent warning (reported multiple times in issues) c9f627a
- 🌟 feat: Added rate limits for upload endpoints, maxBytes limits, sharp limits, board import extraction limits - thanks @phamkhanhhung1998 0f02795
- 🌟 feat: Added new variables to deployment.yaml 940bad8
- 🌟 feat: Added redis to helm chart 8e3883e
- 💄 chore(deps): update dependency tar to v7.5.20 ebae71b @renovate-bot
- 📄 Merge pull request #1053 from RARgames/renovate/tar-7.x-lockfile 36cde1b
- 🐞 fix(deps): update dependency @hyperdx/browser to ^0.25.0 64bc065 @renovate-bot
- 📄 Merge pull request #1054 from RARgames/renovate/hyperdx-browser-0.x db5bb5b
- 💄 chore(deps): update dependency postcss to v8.5.19 f
- v3.3.124ga Boards 3.3.122026-07-03 · 2026-07-03 09:16 UTC
查看更新说明
Changes since last release:
- 🌟 feat: Added time to dueDate related activities 83da29b
- 🐞 [PATCH] fix: Fixed langs not loading 75b6c5a
Install this release using:
docker pull ghcr.io/rargames/4gaboards:3.3.12View the changelog summary on the: 4ga Boards Blog - v3.3.114ga Boards 3.3.112026-07-02 · 2026-07-02 18:06 UTC
查看更新说明
Changes since last release:
- 🐞 fix: Fixed board title with notification pushing tasks status outside the box 2d02089
- 🐞 fix: Returning server error instead of wrong pass message (if there is no pass) 4fcaa8b
- 🌟 feat: Added card completed/uncompleted status, lists for completed/uncompleted cards + related activity etc. e54c017
- 🌟 feat: CardModal - added CompleteCard button for not done cards 2f593e5
- 🌟 feat: Simplified language for completing tasks/cards cc4c60f
- 🐞 fix: Fixed trans for other langs 9948eed
- 🎨 style: Changed icon for mark as not done c730f4a
- 🐞 fix: Sidebar - mark props as optional 56ca974
- 🐞 fix: Sidebar props cfc8f30
- 🌟 feat: Added card counter to Boards view 54e3a3a
- 🐞 fix: Boards view counters display d4846f4
- 🐞 fix: Activity move manually to completed list af9e385
- 🐞 fix: Activity - missing card activities when mark list as done 3f7ea8b
- 🐝 refactor: Standardized translations 292fd10
- 💢 ci: Dependabot - changed frequency 948df2e
- 💢 ci: Fixed dependabot failure d3375de
- 💢 ci: Test - removed devEngines enforcment 24dd311
- 📄 Add renovate.json e1182a8 @renovate-bot
- 💢 ci: Reverted devEngines 645907d
- 💢 ci: Removed dependabot, configured renovate e6a3a34
- 💢 ci: Updated renovate config fc34eab
- 💄 chore: Bumped github actions faaf9de
- 💄 chore: Bumped deps 0c4c084
- 💄 chore: Bumped github actions 4a329f8
- 💄 chore: Bumped deps e3be919
- 💄 chore(deps): update helm release postgresql to v18.7.10 57a6f59 @renovate-bot
- 💄 chore: Bumped deps 14a5116
- 💄 chore(deps): update dependency sharp to v0.35.3 b8b55ed @renovate-bot
- 💄 chore(deps): update docker/login-action action to v4.3.0 a3c4e05 @renovate-bot
- 💄 chore(deps): update docker/setup-buildx-action action to v4.2.0 19bd4d4 @renovate-bot
- 🌟 feat: Added completed_at/by for cards and tasks 6707f91
- 🌟 feat: Added hours/minutes to DueDate, adjusted DueDate colors to switch exactly when dueDate zones pass b320c7f
- 💄 [PATCH] chore: Bumped deps c5ab580
Install this release using:
docker pull ghcr.io/rargames/4gaboards:3.3.11View the changelog summary on the: 4ga Boards Blog - v3.3.104ga Boards 3.3.102026-06-20 · 2026-06-20 21:36 UTC
查看更新说明
Changes since last release:
- 💄 chore(deps): Bumped multiple packages 63060dd
- 💢 ci: Get pnpm version form package.json d4ac609
- 🌟 feat: Removed babel-preset-react-app 07a2df5
- 💄 chore(deps): Bumped deps e3bdc7e
- 🌟 feat: Added .well-known/assetlinks.json for PWA 7420c94
- 🌟 feat: Changed manifest for PWA 0e7aad9
- 🌟 feat: Added task completed/task total in project view 8c5c629
- 📄 [PATCH] Release ee6259c
Install this release using:
docker pull ghcr.io/rargames/4gaboards:3.3.10View the changelog summary on the: 4ga Boards Blog
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Features
- Dark Mode
- Intuitive UI/UX
- Advanced Markdown Editor
- Export/Import Boards
- Web App Design - realtime updates without reloading page
- Multitasking Capabilities - simultaneously edit/review cards and filter/rearrange the board, while keeping local description changes
- Google/GitHub/Microsoft/OIDC SSO Login/Register
- Simplistic Wide Screen Design - minimal clutter and no wasted space
- Powerful Shortcuts
- Multiple Language Support (CS, DA, DE, EN, ES, FR, IT, JA, KO, PL, PT, RU, SK, SV, UZ, ZH, UZ)
- Collapsable Lists and Sidebar - saves screen space and allows for easier navigation in complex projects
- Multi-level Hierarchy - projects -> boards -> lists -> cards -> tasks
- Github 2-way sync - Coming soon
Demo
Documentation
Website
Don't want to get your hands dirty?
Check 4ga Boards Professional Hosting.
Donate
If you find this project useful for you, please consider donating.
Donations are highly appreciated and help us spend more time improving 4ga Boards.
You can also include your email address with the donation and later contact us about a feature request - we'll increase its priority accordingly.
Deploy
- 4ga Boards Professional Hosting (The Easiest)
- Docker Compose (Recommended)
- Kubernetes
- TrueNAS
- Manual
Docker Compose (Recommended)
Requirements: Docker, Docker Compose
Download docker-compose.yml (or create docker-compose.yml based on the example)
curl -L https://raw.githubusercontent.com/RARgames/4gaBoards/main/docker-compose.yml -o docker-compose.yml
Configure 4ga Boards instance variables
Configure environment sections in docker-compose.yml:
Edit BASE_URL to match your domain name or IP address.
Edit SECRET_KEY with a random value. You can generate it by openssl rand -hex 64.
Edit POSTGRES_PASSWORD and DATABASE_URL replacing notpassword with randomly generated db password.
4ga Boards instance variables
Pull images and start 4ga Boards
docker compose up -d
Default 4ga Boards url: http://localhost:3000
Default user: demo
Default password: demo
Backup and Restore
Before executing backup/restore scripts, change current directory to the directory where docker-compose.yml is located.
Backup 4ga Boards instance data
./boards-backup.sh
Restore 4ga Boards instance data
./boards-restore.sh 4gaBoards-backup.tgz
You can use any relative path.
When restoring, the password has to match docker-compose password (If you don't remember it, you can set new password in docker-compose, but you have to skip altering the default user in backup.tgz/postgres.sql file e.g. comment line ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'XXX' before restoring the backup).
Import from Trello
It's already available in 4ga Boards. Just add a project, then click Import while creating a new board.
Development
Requirements: Node.js
Optional requirements: Docker, Docker Compose
Clone 4ga Boards repository into a directory of your choice
git clone https://github.com/RARgames/4gaBoards.git .
Install dependencies
pnpm i
Copy .env
cp server/.env.sample server/.env
Optional: Build client, copy build to the server directory to suppress startup warnings
pnpm client:build
cp -r client/build server/public
cp client/build/index.html server/views/index.ejs
Start the provided development database (Optionally, use your own database)
docker compose -f docker-compose-dev.yml up -d
If using your own database, edit DATABASE_URL in server/.env.
Initialize the database
pnpm server:db:init
Start the development server
pnpm dev
Default 4ga Boards url: http://localhost:3000
Default user: demo
Default password: demo
Web Server Configuration
SSO (Single Sign-On)
Contributing
Full 4ga Boards Contribution Guidelines
Security
Full 4ga Boards Security Information
Tech Stack
- React, Redux, Redux-Saga, Redux-ORM, floating-ui
- Sails.js, Knex.js
- PostgreSQL

