beetRoot is a rapid Java web development and a complete and secure client-server
framework that is ready to use, starts in less than a second and gives you a working
initial setup for the current version, a transparent and clear way to configure the
framework and its components, and the freedom to choose any web container or just use
the optimized and embedded web container from the start. However, none of this stops
you from customizing the pom.xml
file and extend beetRoot as you wish.
If you know CakePHP for web development, you will like beetRoot. It is based on the same principles and has a full CRUD generator that generates all views, the model specification and controllers (handlers in beetRoot's terminology) based on the database model! The client-server framework supports encrypted communication (SSL) as well as HTTP/HTTPS tunneling, provides an interface for downloading and uploading files and can be extended with your own (distributed) modules.
autumo beetRoot 3.x - Quickstart Video
Use the quickstart guide below, then go to http://localhost:8778 and log in:
- Default user: admin
- Default password: beetroot
When developing, take a look at the
API Docs.
Enter the following commands into your terminal:
Linux, macOS
VERSION=3.1.1
PACKAGE=autumo-beetRoot-$VERSION
curl -LO https://github.com/autumoswitzerland/autumo-beetroot/releases/download/v$VERSION/$PACKAGE.zip
unzip $PACKAGE.zip
rm $PACKAGE.zip
$PACKAGE/bin/beetroot.sh start
Windows
SET VERSION=3.1.1
SET PACKAGE=autumo-beetRoot-%VERSION%
curl -LO https://github.com/autumoswitzerland/autumo-beetroot/releases/download/v%VERSION%/%PACKAGE%.zip
tar -xf %PACKAGE%.zip
del %PACKAGE%.zip
%PACKAGE%\bin\beetroot.bat start
🚀 beetRoot is already largely documented by its basic configuration. Take a look at the comments for each configuration key to get to know the possibilities and the extensive features of beetRoot: cfg/beetroot.cfg.
- Distributions
- Developing with beetRoot
- Running
- Configuration & Passwords
- Database Setup
- PLANT: The CRUD Generator & Columns Configuration
- Default HTML Templates
- Routing
- Handlers
- User, Roles & Authorization
- CRUD Hooks
- Referential integrity
- Language Management
- JSON REST API
- Dispatchers (Distributed Modules)
- Logging
- Mailing
- Web App Design & JavaScript
- HTTPS
- Migration Guides
- NanoHTTPD
- Apache commons
- SLF4j
- Log4j2
- H2 Database
- HikariCP
- Eclipse Angus Mail
- Checker Framework Qualifiers
- Google ZXing Java SE Extensions
- JQuery
- ...and some more; see THIRDPARTYLICENSES.html
- Features to add, edit, view, list and delete entities
- Full CRUD generator PLANT for views, models and handlers
- One-to-many database relationships are fully applied in MVC layers
- Many-to-many relationship handling can be easily applied in MVC layers, including drag-and-drop assignments in the UI
- Easy-to-understand HTML template engine
- User roles and access control at controller level and within templates
- URL routing with language support
- Standard CSRF mechanism as well as obfuscated CRUD IDs within HTTP requests
- 2-factor authentication
- Argon2/PBKPD2 password encryption
- Password reset mechanism
- Extensible user settings
- Bean support with transient and unique fields
- User sessions are saved when servers are stopped
- Entities can be deployed via JSON REST API
- Language management (template translations and/or separate templates for each language)
- Tested on Apache Tomcat 9, Eclipse Jetty 10 and Oracle Weblogic 14
- SMS and phone call interfaces
- Mailing including mail templates
- Database connection pooling (HikariCP, with internal and external JNDI data sources)
- Supported databases: H2, MySQL, MariaDB, PostgreSQL and Oracle
- File upload and download
- Full MIME type control
- Dark theme and theme support
- File caching (resources and templates)
- HTTPS protocol and TLS for mail if configured
- Logging implementations other than log4j2 are supported
- Optimized console logging with colored sections (if required)
- Runs standalone as well as in common servlet containers like Apache Tomcat and Jetty on the URL root path as well as behind a servlet path without any changes to HTML templates etc.
- Secure client-server communication when beetRoot is installed in a servlet container separate from the beetRoot server and such communication is required to control backend processes
- Hierarchical resource loader; e.g. request German language, if not found, use configured default language, then use no language at all; “search until you find something useful” is the algorithm for everything. Also, load resources from the file system (first), then as a resource inside packages (JAR, WAR) if they were not found before.
- And more stuff...
Enjoy!
Your donation helps to develop autumo beetRoot further. Thank you!
Copyright 2024, autumo Ltd., Switzerland