Worklenz is a free, open source project & work management project written in TypeScript and released under a custom open-source licence. It has 3,179 GitHub stars, 372 forks and 78 open issues, and was last pushed 14 days ago. On this registry it ranks #26 of 62 tracked projects in Project & Work Management, with 5 head-to-head comparisons available. It gained 8 stars over the last 6 tracked days.

What is Worklenz?

What it is

Worklenz is an open source project management tool built for organizations that want to manage projects, tasks, and team collaboration in one place. The repository holds both the frontend and backend code. The frontend is built with React and uses Ant Design as its UI library, while the backend is written in TypeScript on Express.js and stores data in PostgreSQL. The project lives in the JavaScript and TypeScript ecosystem, and the topic list places it alongside Express, React, REST API, and PostgreSQL tooling. Categorized as business software for project and work management, it carries the tagline of an open source agency management tool for streamlined success.

The concrete problem it addresses is the fragmentation of agency and team workflows. Project planning, task assignment, due dates, priorities, progress tracking, file sharing, comments, time tracking, and reporting are handled inside one application rather than across separate tools. Because time tracking feeds into resource allocation and billing, agencies gain a single record of what was worked on and for how long. The backend exposes a REST API, so the same data can support integrations and reporting outside the packaged interface.

Key capabilities

  • Project planning: create and organize projects, then assign tasks to team members.
  • Task management: break projects into smaller tasks, set due dates and priorities, and track progress.
  • Collaboration: share files and leave comments so teams communicate inside the tool.
  • Time tracking: monitor time spent on tasks and projects to support resource allocation and billing.
  • Reporting: generate detailed reports on project status, team workload, and performance metrics.
  • Resource management: schedule and distribute work across people, as reflected in the repository topics.
  • REST API backend: TypeScript and Express.js services backed by PostgreSQL.

Who uses it and how

  • Agencies and teams running client projects use project planning and time tracking together, since tracked hours feed billing and resource allocation.
  • Managers review reporting output covering project status, team workload, and performance metrics to rebalance assignments.
  • Self-hosters run the stack with Docker Compose, reaching the frontend on port 5000, the backend API on port 3000, and the MinIO console on port 9001.
  • Developers run backend and frontend
project readme (upstream, from github) — read inline

Worklenz Logo
Worklenz

License Release Stars Forks Issues

Task Management | Time Tracking | Analytics | Resource Management | Project Templates

Worklenz /> </a>

Worklenz is a project management tool designed to help organizations improve their efficiency. It provides a comprehensive solution for managing projects, tasks, and collaboration within teams.

Table of Contents

Features

  • Project Planning: Create and organize projects, assign tasks to team members.
  • Task Management: Break down projects into smaller tasks, set due dates, priorities, and track progress.
  • Collaboration: Share files, leave comments, and communicate seamlessly with your team members.
  • Time Tracking: Monitor time spent on tasks and projects for better resource allocation and billing.
  • Reporting: Generate detailed reports on project status, team workload, and performance metrics.

Tech Stack

This repository contains the frontend and backend code for Worklenz.

  • Frontend: Built using React with Ant Design as the UI library.
  • Backend: Built using TypeScript, Express.js, with PostgreSQL as the database.

Requirements

  • Node.js version v18 or newer
  • PostgreSQL version v15 or newer
  • Docker and Docker Compose (for containerized setup)

Getting Started

Choose your preferred setup method below. Docker is recommended for quick setup and testing.

🚀 Quick Start (Docker - Recommended)

The fastest way to get Worklenz running locally with all dependencies included.

Prerequisites:

  • Docker and Docker Compose installed on your system
  • Git

Steps:

  1. Clone the repository:
git clone https://github.com/Worklenz/worklenz.git
cd worklenz
  1. Start the Docker containers:
docker-compose up -d
  1. Access the application:

  2. To stop the services:

docker-compose down

Alternative startup methods:

  • Windows: Run start.bat
  • Linux/macOS: Run ./start.sh

Video Guide: For a visual walkthrough of the local Docker deployment process, check out our step-by-step video guide.

🛠️ Manual Installation (For Development)

For developers who want to run the services individually or customize the setup.

Prerequisites:

  • Node.js (version 18 or higher)
  • PostgreSQL (version 15 or higher)
  • An S3-compatible storage service (like MinIO) or Azure Blob Storage

Steps:

  1. Clone the repository:
git clone https://github.com/Worklenz/worklenz.git
cd worklenz
  1. Set up environment variables:
cp worklenz-backend/.env.template worklenz-backend/.env
# Update the environment variables with your configuration
  1. Install dependencies:
# Backend dependencies
cd worklenz-backend
npm install

# Frontend dependencies
cd ../worklenz-frontend
npm install
  1. Set up the database:
# Create a PostgreSQL database named worklenz_db
cd worklenz-backend

# Execute the SQL setup files in the correct order
psql -U your_username -d worklenz_db -f database/sql/0_extensions.sql
psql -U your_username -d worklenz_db -f database/sql/1_tables.sql
psql -U your_username -d worklenz_db -f database/sql/indexes.sql
psql -U your_username -d worklenz_db -f database/sql/4_functions.sql
psql -U your_username -d worklenz_db -f database/sql/triggers.sql
psql -U your_username -d worklenz_db -f database/sql/3_views.sql
psql -U your_username -d worklenz_db -f database/sql/2_dml.sql
psql -U your_username -d worklenz_db -f database/sql/5_database_user.sql
  1. Start the development servers:
# Terminal 1: Start the backend
cd worklenz-backend
npm run dev

# Terminal 2: Start the frontend
cd worklenz-frontend
npm run dev
  1. Access the application at http://localhost:5000

Deployment

For local development, follow the Quick Start (Docker) section above.

Remote Server Deployment

When deploying to a remote server:

  1. Set up the environment files with your server's hostname:

    # For HTTP/WS
    ./update-docker-env.sh your-server-hostname
    
    # For HTTPS/WSS
    ./update-docker-env.sh your-server-hostname true
    
  2. Pull and run the latest Docker images:

    docker-compose pull
    docker-compose up -d
    
  3. Access the application through your server's hostname:

  4. Video Guide: For a complete walkthrough of deploying Worklenz to a remote server, check out our deployment video guide.

Configuration

Environment Variables

Worklenz requires several environment variables to be configured for proper operation. These include:

  • Database credentials
  • Session secrets
  • Storage configuration (S3 or Azure)
  • Authentication settings

Please refer to the .env.example files for a full list of required variables.

The Docker setup uses environment variables to configure the services:

  • Frontend:

    • VITE_API_URL: URL of the backend API (default: http://backend:3000 for container networking)
    • VITE_SOCKET_URL: WebSocket URL for real-time communication (default: ws://backend:3000)
  • Backend:

    • Database connection parameters
    • Storage configuration
    • Other backend settings

For custom configuration, edit the .env file or the update-docker-env.sh script.

MinIO Integration

The project uses MinIO as an S3-compatible object storage service, which provides an open-source alternative to AWS S3 for development and production.

Working with MinIO

MinIO provides an S3-compatible API, so any code that works with S3 will work with MinIO by simply changing the endpoint URL. The backend has been configured to use MinIO by default, with no additional configuration required.

  • MinIO Console: http://localhost:9001

    • Username: minioadmin
    • Password: minioadmin
  • Default Bucket: worklenz-bucket (created automatically when the containers start)

Backend Storage Configuration

The backend is pre-configured to use MinIO with the following settings:

// S3 credentials with MinIO defaults
export const REGION = process.env.AWS_REGION || "us-east-1";
export const BUCKET = process.env.AWS_BUCKET || "worklenz-bucket";
export const S3_URL = process.env.S3_URL || "http://minio:9000/worklenz-bucket";
export const S3_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID || "minioadmin";
export const S3_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY || "minioadmin";

Security Considerations

For production deployments:

  1. Use strong, unique passwords and key

readme truncated — read the full docs on github

Frequently asked questions

Is Worklenz free to use?

Worklenz is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Worklenz do?

Open source agency management tool for streamlined success

What is Worklenz written in?

Worklenz is primarily written in TypeScript. Its source is publicly available at https://github.com/worklenz/worklenz, and it has 3,179 GitHub stars.