Favicon of Worklenz

Worklenz

Manage client projects, track billable hours, and monitor profitability in one open-source platform. Balance team workloads and share progress with clients.

Take control of your agency operations with a comprehensive, open-source platform designed to handle projects, clients, and finances in one place. Replace scattered spreadsheets with a unified system that helps you track every billable hour, monitor budget versus actual costs, and ensure your projects remain profitable from start to finish.

Key features include:

  • One-click time tracking to capture all billable hours accurately and prevent lost revenue.
  • Real-time profitability alerts and financial insights to monitor burn rates and project costs.
  • Resource allocation and capacity planning to balance team workloads effectively and assign tasks based on availability.
  • Client portal access to keep stakeholders updated on progress without endless status meetings.
  • Custom project workflows and task dependencies to guide projects from planning to delivery.
  • Integrated invoicing and billing to simplify your financial operations.

Whether you need to visualize team utilization or generate detailed reports, this platform provides the clarity required to manage your agency efficiently.

Directory Structure

worklenz
data
postgres
redis
.env
docker-compose.yml

docker-compose.yml

services:
  postgres:
    image: postgres:15-alpine
    container_name: worklenz-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: worklenz
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: worklenz
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    networks:
      - worklenz-network

  redis:
    image: redis:7-alpine
    container_name: worklenz-redis
    restart: unless-stopped
    volumes:
      - ./data/redis:/data
    networks:
      - worklenz-network

  server:
    image: worklenz/server:latest
    container_name: worklenz-server
    restart: unless-stopped
    depends_on:
      - postgres
      - redis
    environment:
      PORT: 3000
      DB_HOST: postgres
      DB_PORT: 5432
      DB_USERNAME: worklenz
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE: worklenz
      REDIS_HOST: redis
      REDIS_PORT: 6379
      JWT_SECRET: ${JWT_SECRET}
      # Adjust the client URL to match your domain/IP
      CLIENT_URL: http://localhost:8080
    ports:
      - "3000:3000"
    networks:
      - worklenz-network

  client:
    image: worklenz/client:latest
    container_name: worklenz-client
    restart: unless-stopped
    depends_on:
      - server
    environment:
      # Adjust the API URL to match your domain/IP
      API_URL: http://localhost:3000
    ports:
      - "8080:80"
    networks:
      - worklenz-network

networks:
  worklenz-network:
    driver: bridge

.env

DB_PASSWORD=your_secure_database_password
JWT_SECRET=your_random_generated_secret_key

Share:

Ad
Favicon

 

  
 

Similar to Worklenz

Favicon

 

  
  
Favicon

 

  
  
Favicon