Skip to content
/ appng Public

appNG is an open source, horizontally scalable application platform for developing and operating applications efficiently. It can be used to build an Application Platform as a Service (aPaaS).

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header.txt
Notifications You must be signed in to change notification settings

appNG/appng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

appng logo
License Apache%202 blue
appng application

Welcome to appNG

appNG is a web application platform and a web application framework, based on Apache Tomcat and the Spring Framework.

With appNG, you can build your own applications and deploy them to the platform within minutes.

appNG is very well suited to create and operate your own application platform as a service (aPaaS).

Core Features

  • Clear separation of concerns following the MVC paradigm

  • Declarative UI definition using schema-safe XML files

  • Writing business logic by implementing a handful of interfaces

  • Automatic parameter-binding and type conversion

  • Built-in support for paging, filtering sorting

  • Out-of-the-box support for JPA and Spring Data

  • Built-In connection pooling using HikariCP

  • Database schema migrations powered by Flyway

  • Built-In role based access control, which allows using field-based access

  • Easily provide your own SOAP or REST based webservices

  • Fully supports internationalization (i18n)

  • Easy deployment by providing a repository mechanism

  • Configurable caching powered by Hazelcast

  • Cluster support and horizontal scaling

  • Powerful administration tools, including a graphical user interface (GUI), but also a command line interface (CLI) and a REST-client

  • Supports the Bean Validation API

  • Supports indexing and searching, powered by Lucene

  • Customizable templating mechanism

  • Configurable and extendable authentication mechanism (local, LDAP etc.)

  • Provides job scheduling powered by Quartz

  • Provides tooling for common tasks like resizing images, sending emails, geo-locating, report generation etc.

  • Provides a large set of commonly used libraries such as Apache Commons or Jackson

  • Workflow and business process management support by embedding the Camunda BPMN Process Engine

  • Can serve JSP-content that can make use of the appNG tag library

  • Multi-tenancy allows to separate or group applications

  • Rapid protoyping enables you to design your user interface without writing one line of Java code

Getting started

📎

The dollar sign ($) at the beginning of a line denotes the command prompt. Depending on your operating system and shell you might see other signs like %, # or >. This sign is not part of the command to be executed.

Run appNG as standalone container

appNG can be started as docker container for evaluation and testing purposes.

$ docker run -d -p 8080:8080 --name appng aiticon/appng
  • Wait about 30 seconds for appNG to come up

  • Open http://localhost:8080 in your favorite browser

  • Login as user admin with password appNG$42

To see the Tomcat logs:

$ docker logs -f appng

To see the appNG logs:

$ docker exec appng sh -c 'tail -f ${APPNG_HOME}/WEB-INF/log/appNG.log'

Download and run the appNG web-application version

If you run appNG in production you should use the web-application version, which is a standard web application archive (WAR-file).

For further documentation on installing appNG go to the README of the appNG web-application.

Create your first appNG application

Using the appNG Maven Archetype, you can easily create your first own application.

Therefore, the following command must be used (replace mygroupid and myartifactid with the desired values):

$ mvn archetype:generate -DgroupId=mygroupid -DartifactId=myartifactid -DarchetypeGroupId=org.appng -DarchetypeArtifactId=appng-archetype-application -DarchetypeVersion=1.26.5 -DinteractiveMode=false

Next, change into the created project folder and run mvn package.

In the target folder, a file named myartifactid-1.0-SNAPSHOT-<yyyyMMdd-HHmm>.zip should have been generated. This file is the application archive.

Deploying the application

The next step is to deploy the application through a local repository, e.g. the application archives are served from the local file system.

During installation of the appNG standalone version, a local repository has been created at /path/to/appng-standalone-1.26.5/repository/. So the first step is to copy myartifactid-1.0-SNAPSHOT-<yyyyMMdd-HHmm>.zip to this location.

💡

You can also build the application archive directly in the repository folder by using the Maven option -DoutFolder=/path/to/appng-standalone-1.26.5/repository/

Next, we use the appNG CLI to install the application and to activate it for the site manager (that has been created during installation).

In /path/to/appng-standalone-1.26.5/appng/WEB-INF/bin, execute the following commands:

$ ./appng install-application -n myartifactid -v 1.0-SNAPSHOT -r Local
$ ./appng activate-application -s manager -a myartifactid

Both commands should return without any message, meaning they where successful.

📎

You can also use the appNG Manager or the appNGizer to install and activate an application. To see a list of available CLI commands, execute ./appng or ./appng -h.

If you configure the appNGizer Maven Plugin for your project, you can automatically install and activate your application after the build.

The final step is to reload the site manager. Therefore, login at http://localhost:8080/manager and click on the reload-icon shown next to the site in the overview. A message "Site has been reloaded." should appear.

After a re-login (see details below), a new navigation item named MYAPPLICATION should appear on the site’s navigation on the left. When clicking it, you see the results of your very first appNG application. Congratulations!

📎

During installation, the application’s role Admin has been added to the appNG’s built-in Administrators group, to which your user belongs to. Since the groups of a user are determined once during login, you need to re-login to apply the newly received permissions.

For the following updates of your application, this step is therefore not necessary.

What’s next?

You should import the Maven project into your favorite IDE. Then start browsing the code to get an idea of how an appNG application works. You should also take a look at the Developer Guide.

You may also want to check out appNGizer at http://localhost:8080/appNGizer. The user manual can be found here: https://appng.org/appng/docs/1.26.6-SNAPSHOT/appngizer/html/appngizer-user-manual.html

Components

Name Type Description

appNG

Web application

The appNG platform.

appNGizer

Web application

Provides the appNG REST API. The appNGizer is part of the appng Git Repository. During the build a separate appNGizer WAR file is packaged.

appng-standalone

Standalone version with bundled Tomcat

Includes the applications: Manager, Authentication and Scheduler and also the appNG Template

appNG Manager

appNG privileged application

Provides a web-based interface to administer appNG and to access other appNG applications.

appNG Authentication

appNG privileged application

Provides different authentication mechanisms for appNG.

appNG Scheduler

appNG privileged application

Provides job scheduling services.

appNG Template

appNG template

The classic XSLT based template, used in conjunction with the appNG Manager.

📎
The appNG and appNGizer web applications run in Apache Tomcat, while appNG applications run on the appNG platform. appNG privileged applications have elevated permissions to access and control the appNG platform. appNG templates define the visual appearance of appNG applications.

Documentation

Component Type Format

appNG

JavaDoc

HTML

appNG

Application Developer Guide

HTML, PDF

appNGizer

Platform installation guide

HTML, PDF

appNGizer

User Manual

HTML, PDF

Download Releases

Component Version Format

appNG

1.26.5

WAR

appNG with Camunda BPMN

1.26.5

WAR

Standalone

1.26.5

ZIP

Download Snapshots

Component Version Format

appNG

1.26.6-SNAPSHOT

WAR

appNG with Camunda BPMN

1.26.6-SNAPSHOT

WAR

Standalone

1.26.6-SNAPSHOT

ZIP

⚠️
Snapshots reflect the current development status. We do not recommend to use snapshots in production and might not be able to help, if you are running cutting-edge appNG. However, if you want to take a look at the latest features, feel free to download a copy and try it out.

Getting help

Please ask your question at Stack Overflow and make sure to add the appng tag to your question.

If you think you found a bug or want to propose a new feature, please create a ticket in our issue tracker.

If you require an Enterprise Support Plan, please contact aiticon GmbH for further information. aiticon also offers trainings, consulting, development and hosting for appNG.

How to contribute

License

appNG is licensed under the Apache License 2.0.

About

appNG is an open source, horizontally scalable application platform for developing and operating applications efficiently. It can be used to build an Application Platform as a Service (aPaaS).

Topics

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header.txt

Stars

Watchers

Forks

Packages

No packages published