{"id":31018697,"url":"https://github.com/kasperip/lukittu","last_synced_at":"2026-02-01T16:00:31.244Z","repository":{"id":251934471,"uuid":"838893543","full_name":"KasperiP/lukittu","owner":"KasperiP","description":"🔐 Lukittu is a simple yet powerful open-source licensing management and distribution software designed to protect your applications.","archived":false,"fork":false,"pushed_at":"2026-01-21T02:26:48.000Z","size":6431,"stargazers_count":71,"open_issues_count":1,"forks_count":13,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-25T13:30:25.036Z","etag":null,"topics":["license-api","license-system","licensing","licensing-system","lukittu","software-licensing"],"latest_commit_sha":null,"homepage":"https://lukittu.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KasperiP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"KasperiP","ko_fi":"KasperiP"}},"created_at":"2024-08-06T14:47:26.000Z","updated_at":"2026-01-21T03:06:21.000Z","dependencies_parsed_at":"2026-02-01T15:14:40.632Z","dependency_job_id":null,"html_url":"https://github.com/KasperiP/lukittu","commit_stats":null,"previous_names":["kasperip/lukittu"],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/KasperiP/lukittu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperiP%2Flukittu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperiP%2Flukittu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperiP%2Flukittu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperiP%2Flukittu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KasperiP","download_url":"https://codeload.github.com/KasperiP/lukittu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperiP%2Flukittu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28981893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T15:35:50.179Z","status":"ssl_error","status_checked_at":"2026-02-01T15:35:38.075Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["license-api","license-system","licensing","licensing-system","lukittu","software-licensing"],"created_at":"2025-09-13T08:22:40.469Z","updated_at":"2026-02-01T16:00:30.736Z","avatar_url":"https://github.com/KasperiP.png","language":"TypeScript","funding_links":["https://github.com/sponsors/KasperiP","https://ko-fi.com/KasperiP"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./.github/lukittu.png\" alt=\"Lukittu GitHub-repository banner\"\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \n[![Build Status](https://img.shields.io/github/actions/workflow/status/KasperiP/lukittu/pipeline.yml?branch=main\u0026style=flat\u0026colorA=4153af\u0026colorB=4153af)](https://github.com/KasperiP/lukittu/actions?query=pipeline)\n[![Discord Shield](https://img.shields.io/discord/1287496974303494214?style=flat\u0026colorA=4153af\u0026colorB=4153af\u0026label=discord\u0026logo=discord\u0026logoColor=ffffff)](https://discord.lukittu.com)\n[![License](https://img.shields.io/github/license/kasperip/lukittu?style=flat\u0026colorA=4153af\u0026colorB=4153af)](https://github.com/KasperiP/lukittu/blob/main/LICENSE)\n[![Contributors](https://img.shields.io/github/contributors/KasperiP/lukittu?style=flat\u0026colorA=4153af\u0026colorB=4153af)](https://github.com/KasperiP/lukittu/graphs/contributors)\n\n\u003c/div\u003e\n\n# [Lukittu](https://lukittu.com)\n\n**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.\n\n## Features\n\n- **Flexible License Management** – Support for various licensing models\n- **Customer Management** – Organize and manage licensees efficiently\n- **Product Release Versioning** – Track and manage different software versions\n- **Advanced Watermarking** – Protect Java applications with unique identifiers\n- **Detailed Analytics \u0026 Logging** – Monitor usage and detect potential abuse\n- **Team Collaboration** – Work with your team seamlessly\n- **Comprehensive API** – Easily integrate Lukittu with your applications\n\n## Hosting Options\n\nLukittu is available in two hosting options:\n\n- **Free Tier** – Essential features for small projects at no cost\n- **Pro Tier (€2.90/month)** – Enhanced features and higher limits for commercial projects\n\nFor detailed pricing and feature comparisons, visit [our website](https://lukittu.com).\n\n\u003e [!IMPORTANT]  \n\u003e 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).\n\n## Local Development\n\nLukittu uses a pnpm workspace monorepo structure with the following packages:\n\n- `apps/web`: The core Next.js application\n- `apps/bot`: Lukittu's Discord bot\n- `packages/shared`: Shared code and utilities\n\nTo get started with the project locally, follow the steps below:\n\n#### 1. Setup Environment Variables\n\nLukittu requires three different `.env` files for each part of the application **on local development**:\n\n- **Web Application:** Copy `apps/web/.env.example` to `apps/web/.env`\n- **Bot Application:** Copy `apps/bot/.env.example` to `apps/bot/.env`\n- **Shared Package:** Copy `packages/shared/.env.example` to `packages/shared/.env`\n\nEach `.env` file contains configuration specific to its respective application component. Fill in all required values in each file before proceeding.\n\n\u003e **Note:** The `DATABASE_URL` must be consistent across all environment files that require it.\n\n#### 2. Install Node.js, Docker, and pnpm\n\nEnsure the following tools are installed on your system:\n\n- **Node.js** v20+ (Download from [nodejs.org](https://nodejs.org/))\n- **Docker** (Install from [docker.com](https://www.docker.com/get-started))\n- **pnpm** v9.11.0+ (Package manager for Node.js, install via [pnpm.io](https://pnpm.io/))\n\n#### 3. Install Dependencies\n\nOnce the environment is set up, install dependencies for all workspaces:\n\n```bash\npnpm install\n```\n\n#### 4. Start Local Databases\n\nTo start the local databases (PostgreSQL \u0026 Redis), use Docker Compose:\n\n```bash\ndocker compose -f docker-compose-local.yml up\n```\n\nThis command will spin up the containers for both PostgreSQL and Redis.\n\n#### 5. Run Database Migrations\n\nRun the necessary database migrations to set up your database schema:\n\n```bash\npnpm --filter @lukittu/shared migrate\n```\n\n#### 6. Start the Application\n\nAfter the migrations are complete, start the local application:\n\n```bash\npnpm dev\n```\n\nThis will run the dev script for all workspaces simultaneously.\n\nTo run commands for a specific workspace, use the `--filter` flag:\n\n```bash\n# Run Next.js development server only\npnpm --filter lukittu-web dev\n\n# Generate Prisma client\npnpm --filter @lukittu/shared generate\n```\n\n#### 7. Access the Application\n\nNavigate to `http://localhost:3000` in your browser, and you should have everything running!\n\n### Troubleshooting\n\n- Ensure Docker is running before starting the databases.\n- Make sure to have all environment variables filled correctly in the `.env` file.\n- If you encounter dependency issues, try running `pnpm install --force` to refresh dependencies.\n\n## Community \u0026 Support\n\nJoin our community Discord server to get help, share ideas, and connect with other developers: [https://discord.lukittu.com/](https://discord.lukittu.com/)\n\n## How to Support the Project\n\nThe best way to support Lukittu is to **give it a star on GitHub** – it’s free and helps us grow the community!\n\n## Documentation\n\nFor 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).**\n\n## Contributing\n\nWe welcome contributions from the community! Whether it’s bug fixes, feature improvements, or documentation updates, your help is appreciated.\n\n### How to Contribute:\n\n1. **Open an issue** – Discuss proposed changes before starting work\n2. **Fork the repository** – Create your own copy to work on\n3. **Create a feature branch** – Organize your changes\n4. **Make your changes** – Implement improvements or fixes\n5. **Submit a pull request** – Share your work with the community\n\nDiscussing changes before implementation ensures efficient collaboration and valuable contributions.\n\n#### Contributors\n\n\u003ca href=\"https://github.com/KasperiP/lukittu/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=KasperiP/lukittu\" /\u003e\n\u003c/a\u003e\n\n## License\n\nLukittu is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperip%2Flukittu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasperip%2Flukittu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperip%2Flukittu/lists"}