- Open-source, MIT license
- Build new applications & replace legacy systems.
- Deliver enterprise and SaaS applications 60% faster thanks to ready-to-use features.
- Unlimited users. No proprietary technologies. No vendor lock-in.
- Pre-built application templates:
- Embedded Insurance
- Claim Management
- Policy Management
- Property Management
- Time Tracking
- Enterprise foundation. Start with authentication, role-based security, advanced user management, multitenancy, multiple organizations support, SQL reporting, REST API, file & resource management, full audit trail, application & data automated backup, and admin dashboard already in place.
- Reduce development time and effort. Use industry-specific application templates, pre-built functionalities and ready to use features.
- Adopt a flexible and scalable approach. Build applications with dynamic entities. Choose from multiple multi-tenancy models.
- Use technology you already know: Java, Spring Boot, JavaScript, HTML, Hibernate, PostgreSQL
- Extend as you wish. Openkoda offers unlimited customization and integration options.
π Quick start
πΎ Installation
β
Features
𧩠Integrations
π¨βπ» Tech stack
π‘ Sample applications
π‘ Application screenshots
π Contribution
π Release notes
π€ Partners
The fastest way to start using Openkoda is to run the system with Docker Compose scripts and a Docker image that contains all the necessary prerequisites: Java, PostgreSQL, and Openkoda.
Make sure Docker Compose is installed on your system.
To download and start the complete system image, simply run this command in your terminal:
curl https://raw.githubusercontent.com/openkoda/openkoda/main/docker/docker-compose.yaml | docker compose -f - up
Once the startup is complete, you can access the Openkoda web application at the following local URL:
https://localhost:8080
Log in as an Administrator using the default credentials: login: admin and password: admin123.
You may find some existing sample application templates in the examples directory in this repository.
Download the selected application package (as a .zip archive), then import the application within the Openkoda web interface by selecting: Configuration > Import/Export from the menu.
Note: If the only message you see after starting the import process is "IMPORT FILE," it may indicate that no components were found in the uploaded package, or the .zip file is corrupted or empty. Double-check that the file is not empty on your local filesystem before uploading.
There are two installation options to start application development with Openkoda:
- Running as a Docker container
- Building from sources
Docker images are available at Docker Hub : https://hub.docker.com/r/openkoda/openkoda
Download the latest version of the Openkoda Docker image from Docker Hub:
docker pull openkoda/openkoda:latest
Please note that in that case Postgres needs to be already in place and SPRING_DATASOURCE_URL
, SPRING_DATASOURCE_USERNAME
, SPRING_DATASOURCE_PASSWORD
env variables need to be adjusted when running docker (see Docker Hub for detailed options)
A simpler option may be to use the Docker Compose scripts located in the: ./docker/docker-compose.yaml
and ./docker/docker-compose-no-db.yaml
- depending on your preference, with or without Postgres as a part of the docker service. Here is a useful one-liner :
curl https://raw.githubusercontent.com/openkoda/openkoda/main/docker/docker-compose.yaml | docker compose -f - up
Prerequisites:
Git, Java 17+, Maven 3.8+, PostgreSQL 14+
- Create an empty PostgreSQL database
- Clone or download this Git repository
- Build application with maven:
mvn -f openkoda/pom.xml clean install spring-boot:repackage -DskipTests
- Initialize the database in a first run:
java -Dloader.path=/BOOT-INF/classes -Dspring.profiles.active=openkoda,drop_and_init_database -jar openkoda.jar --server.port=<http port>
- Run Openkoda
java -Dloader.path=/BOOT-INF/classes -Dsecure.cookie=false -jar openkoda.jar --spring.profiles.active=openkoda --server.port=<http port>
Detailed instructions can be found in the Installation manual.
Openkoda uses strict secure cookies setting to increase security.
If you want to run a development/test instance of Openkoda without https and not using localhost then you need to disable secure cookies setting by:
- Set the SECURE_COOKIE environment variable to false before starting docker compose, eg. SET SECURE_COOKIE=false (windows), SECURE_COOKIE=false (linux)
- You may need to delete your locally cached Openkoda docker images with docker rmi
- Then proceed as described here: https://github.com/openkoda/openkoda?tab=readme-ov-file#docker-compose
If you encounter any issues during the installation or when running Openkoda for the first time, please:
- Review the existing GitHub tickets, as a similar problem may have been reported before.
- If not, raise a new ticket, including steps to reproduce the issue and relevant logsβour development team regularly reviews reported issues.
To significantly reduce development time and effort, Openkoda offers pre-built functionality and out-of-the-box features.
(*enterprise options)
Build your application without losing time on functionality every application always needs. Start with authentication, user management, multitenancy, and admin dashboard already in place.
Start with our pre-built domain-specific Openkoda application templates giving you a solid base to build your custom applications. Get an enterprise foundation with a predefined data model, useful dashboards, and ready-to-use business features.
Extend your application with open-source, scalable, and high-performance Java and JavaScript (back-end), HTML/CSS (front-end), and PostgreSQL (database).
Easily update, rename, and create new tables and attributes in your custom data model using our Development Kit UI. Use our intelligent editor with an autocomplete feature to choose from a variety of data types, create dropdowns, multiselect, or conditional types of fields. All inputs are validated, and your changes are applied immediately to both UI and the database.
Dynamically configure your data screens β decide which attributes should be presented on the entityβs UI screen and which ones should be used as filters.
Create useful dashboards for different user types and different organizations using pre-built widgets. Design custom views by combining widgets, images, and data tables in our drag & drop visual editor.
Craft a unique user experience by customizing HTML/CSS of your Openkoda application.
Define custom business logic from the UI using server-side JavaScript.
Build reports and query your data using SQL. Define your periodic reports directly within Openkoda. Save and share useful reports and summaries across your coworkers.
Use natural language to create reports or query your application data ad-hoc. Iterate and update your prompt to adjust the results. Run AI-generated SQL queries without sharing your data outside the system. Save the report to run periodically or download it to Excel to share with your coworkers.
Visualize report data with a custom chart. Use ChartJs to visualize reports and embed it in dashboards and custom application screens.
Send emails to users, administrators or co-workers. Set up an email address for sending notifications, updates, and other communications.
Programmatically send in-app notifications to a specific user, to users in a specific organization, or globally within the application.
Generate PDF, Word and Excel documents and attachments based on data-driven dynamic placeholders, calculated fields (including multi-row and multi-column tables), and conditional selection of your visual document templates.
Use Custom Events and Event Listeners and automate your business processes and trigger specific actions, like: send a reminder to your client about overdue payment or alert your sales team about specific opportunities. Use Job Scheduler to define how often the system should trigger the event.
Define custom business rules from the UI using server-side Javascript.
Automate your business processes and trigger specific actions, for example: "find contracts about to expire and send notification to the relevant parties, or send reminders for overdue payments", or "generate and send attachments for a new contract".
Connect other applications to an automatically generated secure REST API for standard data model operations and endpoints implemented in your Openkoda application.
Use open-source Java or other standard programming languages to extend your system with custom integrations.
Enhance your application by integrating your application with the systems you already use, like: Slack, Discord, Basecamp, GitHub, Jira, Trello.
Seamlessly connect with other systems and extend functionality with custom integration using intelligent server-side Javascript code editor.
Manage users across multiple organizations: invite new users, define user settings, apply roles globally and within organization context, manage passwords.
Define and manage user roles based on access privileges defined on the application, organization, table, individual object attribute, application view or at any other level. Create a precisely secured environment for your coworkers, customers and partners.
Define your custom access privileges types from UI to configure even more adjusted and secured environment.
Create as many organizations, co-existing within a single Openkoda instance, as you want (organizations in a single database). Personalize the organizations with different logos and color palette.
Introduce physical data separation and increase application scalability with advanced multi-tenancy models: organizations in separate schemas and organizations in separate databases.
High-availability, high-reliability clustering deployment options.
See multitenancy setup for more details
Centralize and efficiently manage all your files and resources stored in a database or local filesystem. Simplify access for your users to your digital assets. Store and manage your documents, images and files within your Openkoda application. Select database or local filesystem for physical storage. Simplify access to your digital assets.
Store and manage your documents, images and files within your Openkoda application. Select database, local filesystem or Amazon S3 for physical storage. Simplify access to your digital assets. Centralize and efficiently manage all your files and resources in one location. Simplify access for your users to your digital assets.
Easily download your filtered data directly to Excel/CSV for further analysis.
Upload your CSV/Excel file to create new and update existing records. Ensure data quality with built-in import validation.
Simplify application management process. Upgrade your system easily by importing new application components (including: dashboards, forms, views, web endpoints, event listeners, schedulers, server side code) from a single ZIP file. Export and move your customizations across Openkoda instances.
The exported ZIP archive with your Openkoda application contains a ready to use Maven project, so that you easily set up your local Java development environment and start extending your application with your favourite IDE.
Automatically track all changes made to any data within the application. Audit trail logs detailed records of modifications, ensuring transparency and accountability for all user actions.
Automatically backup your application and data to ensure security and recovery. Easily schedule and manage the backup process to protect your system against data loss and system failures.
Monitor the actual health and performance of your system with real-time insights. Access detailed system logs to track events, diagnose issues, and ensure optimal operation.
The following integrations are already implemented to enhance your application:
- Java (17+)
- Spring Boot 3.x
- Hibernate
- PostgreSQL
- GraalVM
Openkoda Application Templates are sample applications built with Openkoda.
They represent a standard set of functions for a traditional web application provided by Openkoda Core, as well as business functionalities created specifically for these examples.
Application Templates can be easily extended, taking into account both the data storage schema and any custom functionality.
Learn more in our 5-minute guide.
Timelog is a time tracking solution for companies of all sizes.
It allows employees to record hours spent on specific tasks, while managers generate monthly performance reports.
Insurance Policy Management is a dynamic policy data storage tool with a variety of embeddable widgets for personalized customer and policy dashboards.
Widgets include: message senders, email schedulers, attachment and task lists, notes, and detailed customer/policy information to improve operational efficiency and customer engagement. Learn more.
A simple application that provides weather forecast for selected vacation spots.
Watch the short video to see the building process:
CMS
Organization Settings
Job Request
Event Listener
Forgot Password
Openkoda is an open source project under MIT license. Itβs built by developers for developers.
If you have ideas for improvement, contribute and let's innovate together.
How to contribute:
- Create a fork
- Create a feature branch from main branch
- Push
- Create a Pull Request to an upstream main branch
Openkoda Community: Become a part of Openkoda
YouTube: Learn how to use Openkoda
LinkedIn: Stay up to date
About us: Let us introduce ourselves
Openkoda is constantly evolving. Check out the changelog:
- Support for dynamic privileges management
- Optimize custom dashboard view
- Manually create data reports with sql queries
- Improve dashboard UI
- Filter dynamic entities by their attributes
- Refactor components .zip export
- Update Insurance App components .zip
- Fix issues and bugs
- Dynamic Entities: Now create database tables, perform full CRUD operations and generate forms.
- New Dashboard UI: Enhanced for better readability and smoother navigation flow.
- Files Assignment: Support for dynamically registered entities.
- Organization-Level Email Configuration: Customize email settings at the organization level.
- Bug Fixes: Various fixes for improved app stability and performance.
- Page Builder: Introducing a tool for creating custom dashboards.
- Web Forms Assistance: Streamlined web form creation based on your data model definitions.
- YAML Components Import/Export: Easily manage components such as web forms, endpoints, server code, event listeners, schedulers, and frontend resources.
- Dashboard UI: Upgrades for an improved dashboard interface.
- Updates & Security: Minor adjustments and security fixes.
Openkoda source code is completely free and is available under the MIT license.β
Join us as a partner in transforming the software development market by delivering maximum value to your clients using Openkoda. The goal is to simplify the process of building enterprise applications, allowing developers to focus on core business logic.
Learn more about Openkoda Partner Program.