- Reduce development time and effort. Use industry-specific application templates, pre-built functionalities and out-of-the-box 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.
🚀 How to start
✅ Out-of-the-box features
🧩 Integrations
👨💻 Tech stack
💡 Sample applications
💡 Application screenshots
💙 Contribution
📜 Release notes
🤝 Partners
There are two installation options to start application development with Openkoda:
- Building from sources
- Running as a Docker container
Prerequisites:
Git, Java 17+, Maven 3.8+, PostgreSQL 14+
- Create an empty 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.
Docker images are available at Docker Hub : https://hub.docker.com/r/openkoda/openkoda
It can be launched via simple:
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 needs 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
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.
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.
Enhance your application by adding integrations.
- 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
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. Learn more.
Insurance Policy Management
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.
Weather App
A sample 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.
Our enterprise managed cloud allows for easy deployment and scaling of your Openkoda applications. Contact us for more information.