- Reduce development time and effort. Use 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.
𧩠Integrations
π How to start
β
Out-of-the-box features
π¨βπ» Tech stack
π‘ Sample applications
π‘ Application screenshots
π Contribution
π Release notes
π€ Partners
Enhance your application by adding integrations.
- Java (17+)
- Spring Boot 3.x
- Hibernate
- PostgreSQL
- GraalVM
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
To significantly reduce development time and effort, Openkoda offers pre-built functionality and out-of-the-box features.
Create database table, CRUD functionality, form, and overview with no need of re-compilation
- App Configurations: Manage email settings, roles, privileges, and HTML templates.
- Audit Screen: Track changes to data for accountability.
- System Logs: Review logs for activity insights and troubleshooting.
- System Health: Get a quick overview of system performance and status.
- Invite users to the organization
- Set roles globally and within the organization context
- Access user profile settings
- Spoof user (available in admin mode)
- Create global or organization-specific roles
- Assign privileges from a list to each role
- Separate organization data
- Implement security rules for data access
- Customize your own dashboard
- Assign organizational roles, such as member or admin, to users.
- Modify HTML templates
- Edit draft versions of resources
- Introduce new public resources
- Manage file overview
- Resize images
- Set files to public access
Respond to application events (e.g., user creation, login, application start) with built-in Openkoda handlers (e.g., messaging, push notifications).
Embedded database backup routines
Export components from current app and easily import them into another Openkoda Core instance
Openkoda supports the following multi-tenancy setups:
- Single Database / Single Schema
- Single Database / Many Schemas
- Multiple Databases / Many Schemas
See multitenancy setup for more details
Schedule jobs to be performed in time intervals Process jobs with event listeners
Synchronize your application with notifications channels: Email Slack Jira GitHub Trello Basecamp
Customize email templates via CMS Schedule emails
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
![openkoda-frontendresource-all](https://private-user-images.githubusercontent.com/14223954/311207985-3e4e5563-53d3-4e7b-9ccf-8a69ea346bc1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzEyMTQsIm5iZiI6MTcyNDIzMDkxNCwicGF0aCI6Ii8xNDIyMzk1NC8zMTEyMDc5ODUtM2U0ZTU1NjMtNTNkMy00ZTdiLTljY2YtOGE2OWVhMzQ2YmMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDA5MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxYzExY2FiNDAxNTdlODE1MzlkYTM5ZTIyMDhjMzE1MTNkZjljZTNmZjI5YTE1M2VjNDU1MTRmNDQxMDdkYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4tjXVPdCBPX6kz4j90Xhx47g1b2R3JPtzgh-kLrQDGg)
Organization Settings
![openkoda-organization-settings](https://private-user-images.githubusercontent.com/14223954/311208029-275135d1-6c99-48fa-9224-008183d02085.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzEyMTQsIm5iZiI6MTcyNDIzMDkxNCwicGF0aCI6Ii8xNDIyMzk1NC8zMTEyMDgwMjktMjc1MTM1ZDEtNmM5OS00OGZhLTkyMjQtMDA4MTgzZDAyMDg1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDA5MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk5Y2M5N2Y4MDQxMWQ5NzhiZDYxMWRiNzBkNGRiZGNhZmVjMzQ2NWFlMGJlOGJkMTQzMjNiYTE1MmVkZTJiODcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3LhPJX9elFya7jCqCuQ7dyiAW_OjeL-3PjB1fMxwpO4)
Job Request
![openkoda-job-request](https://private-user-images.githubusercontent.com/14223954/311232624-2d26ddfd-3bee-4cc3-a4e0-be08d522bc96.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzEyMTQsIm5iZiI6MTcyNDIzMDkxNCwicGF0aCI6Ii8xNDIyMzk1NC8zMTEyMzI2MjQtMmQyNmRkZmQtM2JlZS00Y2MzLWE0ZTAtYmUwOGQ1MjJiYzk2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDA5MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA2YzY2YmZmMjI4NjIwZDI5Yzg0NGJlZTQwZTM3Y2U3ODBlM2U1M2MxNjRkNTVkZGYxY2I2MjlhMzFjMmYzNzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.k-3BDlDIxGrdvlE4VICa6iYv5bgjgfOiYPFwiFQYQOU)
Event Listener
![openkoda-event-listener](https://private-user-images.githubusercontent.com/14223954/311232682-ac5d52b5-5509-4f37-b5b2-b7a3d9aaa631.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzEyMTQsIm5iZiI6MTcyNDIzMDkxNCwicGF0aCI6Ii8xNDIyMzk1NC8zMTEyMzI2ODItYWM1ZDUyYjUtNTUwOS00ZjM3LWI1YjItYjdhM2Q5YWFhNjMxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDA5MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU1N2ViNzYxNmU4MzVjMGFiZTFiMDE5OWIyZWNmZDVmZWI1YzQxODVhMGJjMjY3YThmY2YwYTg5Njc0ZWZjOGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.V0dJC3nf3JP-w-XnGT9_KvtkeqGGP8MPLsHMILtZRx8)
Forgot Password
![openkoda-forgot-password](https://private-user-images.githubusercontent.com/14223954/311232707-f4c78aca-dc1d-4f42-8ba2-903d641a4229.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzEyMTQsIm5iZiI6MTcyNDIzMDkxNCwicGF0aCI6Ii8xNDIyMzk1NC8zMTEyMzI3MDctZjRjNzhhY2EtZGMxZC00ZjQyLThiYTItOTAzZDY0MWE0MjI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDA5MDE1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcwNGRmMjg5OWU4YWU1NGZmZjk2NjdlNmRkNzk2NWRlNzE5Nzg4OGJkNTZkZjMyYTY0ZDRkZmRhZGRmYTNlYjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.dtVw8hfqjvz7Q1iROCU42puyeIqElADuTyhfI4dX2N4)
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.