Getting started with development is a breeze! Follow these steps and you'll be contributing in no time.
- Node.js version v20 or newer - Node.js
- PostgreSQL version v15 or newer - PostgreSQL
- S3-compatible storage (like MinIO) for file storage
$ npm install -g typescript(optional, but recommended)
Clone the repository:
git clone https://github.com/Worklenz/worklenz.git
cd worklenz-
Navigate to the frontend project directory:
cd worklenz-frontend -
Install dependencies:
npm install
-
Run the frontend:
npm start
-
Navigate to http://localhost:5173 (development server)
-
Navigate to the backend project directory:
cd worklenz-backend -
Open your IDE:
Open the project directory in your preferred code editor or IDE like Visual Studio Code.
-
Configure Environment Variables:
- Create a copy of the
.env.examplefile and name it.env. - Update the required fields in
.envwith your specific configuration.
- Create a copy of the
-
Set up Database
- Create a new database named
worklenz_dbon your local PostgreSQL server. - Update the database connection details in your
.envfile. - Execute the SQL setup files in the correct order:
# From your PostgreSQL client or command line 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.sqlAlternatively, you can use the provided shell script:
# Make sure the script is executable chmod +x database/00-init-db.sh # Run the script (may need modifications for local execution) ./database/00-init-db.sh
- Create a new database named
-
Install Dependencies:
npm install
-
Run the Development Server:
Option 1: Combined development mode (Recommended)
npm run dev:all
This single command runs both the build watch process and the server with auto-restart. No need to run
npm run devandnpm startseparately.Option 2: Separate commands
# Terminal 1: Build and watch for changes npm run dev # Terminal 2: Start the server npm start
The first option (
npm run dev:all) is recommended as it simplifies the development workflow.
For an easier setup with production-ready features, use the new Docker setup with automated scripts:
Option 1: Automated Setup (Easiest)
# From the root directory, run the automated setup
./quick-setup.shThis script will:
- Create
.envfile with auto-generated security secrets - Configure URLs for localhost
- Set up SSL certificates (self-signed for localhost)
- Install and start all services (PostgreSQL, Redis, MinIO, nginx)
Option 2: Manual Docker Setup
# Copy environment configuration
cp .env.example .env
# Edit .env if needed (defaults work for localhost)
# Start services (Express mode - all services bundled)
docker compose --profile express up -d- Application: https://localhost (or http://localhost)
- MinIO Console: http://localhost:9001 (login: minioadmin/minioadmin)
./manage.sh status # View service status
./manage.sh logs # View logs
./manage.sh stop # Stop all services
./manage.sh start # Start all services
./manage.sh backup # Create database backup
./manage.sh restart # Restart all servicesThe Docker setup now includes:
- ✅ Nginx reverse proxy with SSL/TLS support
- ✅ Redis caching for improved performance
- ✅ Automated database backups
- ✅ Health checks on all services
- ✅ Network isolation and security hardening
- ✅ Production-ready configuration
See DOCKER_SETUP.md for:
- Production deployment guide
- SSL/TLS configuration
- Backup and restore procedures
- Advanced configuration options
- Troubleshooting guide