https://github.com/kasperip/lukittu
π Lukittu is a simple yet powerful open-source licensing management and distribution software designed to protect your applications.
https://github.com/kasperip/lukittu
license-api license-system licensing licensing-system lukittu software-licensing
Last synced: 4 months ago
JSON representation
π Lukittu is a simple yet powerful open-source licensing management and distribution software designed to protect your applications.
- Host: GitHub
- URL: https://github.com/kasperip/lukittu
- Owner: KasperiP
- License: agpl-3.0
- Created: 2024-08-06T14:47:26.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-21T02:26:48.000Z (4 months ago)
- Last Synced: 2026-01-25T13:30:25.036Z (4 months ago)
- Topics: license-api, license-system, licensing, licensing-system, lukittu, software-licensing
- Language: TypeScript
- Homepage: https://lukittu.com
- Size: 6.13 MB
- Stars: 71
- Watchers: 4
- Forks: 13
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README

[](https://github.com/KasperiP/lukittu/actions?query=pipeline)
[](https://discord.lukittu.com)
[](https://github.com/KasperiP/lukittu/blob/main/LICENSE)
[](https://github.com/KasperiP/lukittu/graphs/contributors)
# [Lukittu](https://lukittu.com)
**Lukittu** (a Finnish word meaning _"locked"_) is a modern software licensing service that provides robust APIs to enhance the security and trackability of your applications. It introduces a licensing layer to protect proprietary software from unauthorized sharing and misuse, offering benefits such as enhanced security, usage analytics, easy integration, and flexible licensing. Lukittu is particularly suitable for applications like game scripts and add-ons running on client servers, including platforms like Minecraft, FiveM, and Roblox.
## Features
- **Flexible License Management** β Support for various licensing models
- **Customer Management** β Organize and manage licensees efficiently
- **Product Release Versioning** β Track and manage different software versions
- **Advanced Watermarking** β Protect Java applications with unique identifiers
- **Detailed Analytics & Logging** β Monitor usage and detect potential abuse
- **Team Collaboration** β Work with your team seamlessly
- **Comprehensive API** β Easily integrate Lukittu with your applications
## Hosting Options
Lukittu is available in two hosting options:
- **Free Tier** β Essential features for small projects at no cost
- **Pro Tier (β¬2.90/month)** β Enhanced features and higher limits for commercial projects
For detailed pricing and feature comparisons, visit [our website](https://lukittu.com).
> [!IMPORTANT]
> While self-hosting Lukittu is possible, it is **not recommended** for most users. Lukittu is designed as a SaaS platform with proper security measures and ongoing maintenance. If you choose to self-host, be aware that by default anyone can register and use the platform unless you implement custom modifications. These modifications may complicate receiving updates from upstream. For more information about self-hosting requirements and limitations, please refer to our [self-hosting documentation](https://docs.lukittu.com/hosting/self-hosting).
## Local Development
Lukittu uses a pnpm workspace monorepo structure with the following packages:
- `apps/web`: The core Next.js application
- `apps/bot`: Lukittu's Discord bot
- `packages/shared`: Shared code and utilities
To get started with the project locally, follow the steps below:
#### 1. Setup Environment Variables
Lukittu requires three different `.env` files for each part of the application **on local development**:
- **Web Application:** Copy `apps/web/.env.example` to `apps/web/.env`
- **Bot Application:** Copy `apps/bot/.env.example` to `apps/bot/.env`
- **Shared Package:** Copy `packages/shared/.env.example` to `packages/shared/.env`
Each `.env` file contains configuration specific to its respective application component. Fill in all required values in each file before proceeding.
> **Note:** The `DATABASE_URL` must be consistent across all environment files that require it.
#### 2. Install Node.js, Docker, and pnpm
Ensure the following tools are installed on your system:
- **Node.js** v20+ (Download from [nodejs.org](https://nodejs.org/))
- **Docker** (Install from [docker.com](https://www.docker.com/get-started))
- **pnpm** v9.11.0+ (Package manager for Node.js, install via [pnpm.io](https://pnpm.io/))
#### 3. Install Dependencies
Once the environment is set up, install dependencies for all workspaces:
```bash
pnpm install
```
#### 4. Start Local Databases
To start the local databases (PostgreSQL & Redis), use Docker Compose:
```bash
docker compose -f docker-compose-local.yml up
```
This command will spin up the containers for both PostgreSQL and Redis.
#### 5. Run Database Migrations
Run the necessary database migrations to set up your database schema:
```bash
pnpm --filter @lukittu/shared migrate
```
#### 6. Start the Application
After the migrations are complete, start the local application:
```bash
pnpm dev
```
This will run the dev script for all workspaces simultaneously.
To run commands for a specific workspace, use the `--filter` flag:
```bash
# Run Next.js development server only
pnpm --filter lukittu-web dev
# Generate Prisma client
pnpm --filter @lukittu/shared generate
```
#### 7. Access the Application
Navigate to `http://localhost:3000` in your browser, and you should have everything running!
### Troubleshooting
- Ensure Docker is running before starting the databases.
- Make sure to have all environment variables filled correctly in the `.env` file.
- If you encounter dependency issues, try running `pnpm install --force` to refresh dependencies.
## Community & Support
Join our community Discord server to get help, share ideas, and connect with other developers: [https://discord.lukittu.com/](https://discord.lukittu.com/)
## How to Support the Project
The best way to support Lukittu is to **give it a star on GitHub** β itβs free and helps us grow the community!
## Documentation
For comprehensive documentation on how to use Lukittu, visit: [https://docs.lukittu.com/introduction](https://docs.lukittu.com/introduction). **The documentation source can be found in its own repository [here](https://github.com/KasperiP/lukittu-docs).**
## Contributing
We welcome contributions from the community! Whether itβs bug fixes, feature improvements, or documentation updates, your help is appreciated.
### How to Contribute:
1. **Open an issue** β Discuss proposed changes before starting work
2. **Fork the repository** β Create your own copy to work on
3. **Create a feature branch** β Organize your changes
4. **Make your changes** β Implement improvements or fixes
5. **Submit a pull request** β Share your work with the community
Discussing changes before implementation ensures efficient collaboration and valuable contributions.
#### Contributors
## License
Lukittu is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.