Skip to content

The realtime kanban boards for groups

License

Notifications You must be signed in to change notification settings

RARgames/4gaBoards

Repository files navigation

4ga Boards

GitHub release (latest by date) GitHub GitHub contributors

The realtime kanban boards for groups inspired by discontinued GitKraken Glo Boards.

4gaBoards_gif

4ga Boards

Features

  • 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)

Boards Structure

  • 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

Basic Features

  • Real-time updates
  • Filter by members and labels
  • Customizable project backgrounds
  • User notifications

Demo

Check out 4ga Boards using our demo.

Recommended: Create a new account - You can use fake 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).

Demo mode - changed features:

  • Disabled changing instance settings
  • Disabled changing other users data
  • Every new user receives admin privileges
  • Data is cleared every day at 1:55 CET

Documentation

English | Polski

Roadmap

Our main priority is to finish all tasks from the #1 issue.

All tasks from #1 issue are described in separate issues.

Deploy

There are 2 types of installation:

  1. Dockerized
  2. Without Docker

1. Docker Compose

  • 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 by openssl rand -hex 64.
  • Replace 2 occurrences of notpassword with generated db password in POSTGRES_PASSWORD and DATABASE_URL.

Pull images and start services:

docker compose up -d

Default url: http://localhost:3000 Demo user: demo Demo password: demo

2. Without Docker

Installing without Docker is a bit more complicated, here's what you need to do:

  1. 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 .
  1. 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.

  1. 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.

  1. 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

Backup and Restore

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).

Import from Trello

It's already available in 4ga Boards. Just add a project, then click Import while creating a new board.

Development

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

Tech stack

  • React, Redux, Redux-Saga, Redux-ORM, react-beautiful-dnd
  • Sails.js, Knex.js
  • PostgreSQL

License

MIT license

Main maintainers

RARgames wilkobyl