- Full dark mode
- Intuitive UI/UX
- Advanced Markdown Editor (card description and comments)
- App design - no need to reload page
- Multitasking capabilities (while editing a card, you can still scroll, filter and review other cards. You can exit the card at any time, the description changes will be saved locally for you.)
- Projects/Boards sidebar (easier navigation for many complex projects and boards)
- SSO Login/Register (Google SSO + Github/Microsoft [Coming soon])
- App uses full screen (no wasted screen space)
- Simplistic design (No useless buttons/options, everything included by default)
- Automation of common actions with shortucts
- Internationalization (EN, PL, FR - 100%, other languages - partial support)
- Github 2-way sync [Coming soon]
- Collapsable lists (saves screen space for complex projects)
- Projects -> Boards -> Lists -> Cards -> Tasks
- Project: Title, Boards
- Board: Title, Lists, Board Members(Editor, Commenter, Viewer), Card Filters
- List: Title, Cards
- Card: Description, Members, Labels, Due Date, Timer, Notifications, Tasks, Attachments, Comments
- Task: Title, Members, Due Date
- Real-time updates
- Filter by members and labels
- Customizable project backgrounds
- User notifications
Check out 4ga Boards using our demo.
Recommended: Create a new account - You can use non-existing email (no email confirmations).
or use: Demo user: demo
Demo password: demo
(please note that many users might be using it at the same time causing disturbed experience e.g. changing user preferences).
- Disabled changing instance settings
- Disabled changing other users data
- Every new user receives admin privileges
- Data is cleared every day at 1:55 CET
Our main priority is to finish all tasks from the #1 issue.
All tasks from #1 issue are described in separate issues.
There are 2 types of installation:
- Make sure you have Docker and Docker Compose installed and operational.
- Create
docker-compose.yml
based on the example. This is the ONLY file you will need. You can create this file on your machine by copying and pasting the content or download it:
curl -L https://raw.githubusercontent.com/RARgames/4gaBoards/main/docker-compose.yml -o docker-compose.yml
- Edit
BASE_URL
to match your domain name or IP address. - Edit
SECRET_KEY
with random value. You can generate it byopenssl rand -hex 64
. - Replace 2 occurrences of
notpassword
with generated db password inPOSTGRES_PASSWORD
andDATABASE_URL
.
Pull images and start services:
docker compose up -d
Default url: http://localhost:3000 Demo user: demo
Demo password: demo
Installing without Docker is a bit more complicated, here's what you need to do:
- Clone this repository into a directory of your choice. (e.g.
/var/www/4gaBoards
)
mkdir -p /var/www/4gaBoards
cd /var/www/4gaBoards
git clone https://github.com/RARgames/4gaBoards.git .
- Install dependencies, build client, copy build to the
server
directory.
npm i
npm run client:build
cp -r client/build server/public
cp client/build/index.html server/views/index.ejs
Note: You can use yarn
or pnpm
instead of npm
.
- Configure environment variables.
cp server/.env.sample server/.env
# Edit .env file (You could use nano, vim, etc.)
nano server/.env
Note: Before continuing, make sure you have your selected database created and running.
- Copy start script from the root directory to the
server
directory and start the server.
cp start.sh server
cd server
./start.sh
Note: You can use pm2
or systemd
to run the server in the background.
Default url: http://localhost:1337 Demo user: demo
Demo password: demo
Additional information (Google SSO, Nginx Configuration, Logging, Rotating Logs, Fail2ban, Helm Chart)
Before executing backup/restore scripts, change current directory to the directory where docker-compose is located.
To backup your data use: ./boards-backup.sh
To restore it use: ./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).
It's already available in 4ga Boards. Just add a project, then click Import while creating a new board.
Clone the repository into a directory of your choice, install dependencies, copy .env:
git clone https://github.com/RARgames/4gaBoards.git .
npm i
cp server/.env.sample server/.env
Optional: Build client, copy build to the server
directory to suppress startup warnings
npm run client:build
cp -r client/build server/public
cp client/build/index.html server/views/index.ejs
Either use a local database or start the provided development database:
docker compose -f docker-compose-dev.yml up -d
Edit DATABASE_URL
in server/.env
if needed, then initialize the database:
npm run server:db:init
Start the development server:
npm start
Demo user: demo
Demo password: demo
- React, Redux, Redux-Saga, Redux-ORM, react-beautiful-dnd
- Sails.js, Knex.js
- PostgreSQL