//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

=== WebConsole

Apache Karaf provides an optional WebConsole.

This WebConsole provides a graphical web GUI to see and manage your Apache Karaf container.

You can use the WebConsole to:

* manage Apache Karaf features
* manage OSGi bundles
* manage the instances
* manage the confgurations
* manage the log service

The WebConsole is extensible via a plugins system. Some applications can add new pages to the WebConsole.
For instance, Apache Karaf Cellar provides additional pages to administrate cluster groups, nodes, etc.

==== Installation

To enable the Apache Karaf WebConsole, you just have to install the `webconsole` feature:

----
karaf@root()> feature:install http
karaf@root()> feature:install webconsole
----

NB: you have to install a Http Service first as requirement, either `http` or `felix-http` feature.

The `webconsole` feature automatically installs the `http` feature (see the [WebContainer section|webcontainer] for details).

==== Access

The Apache Karaf WebConsole uses the WebContainer port number (see the [WebContainer section|webcontainer] for details)
with the `/system/console` context.

By default, the Apache Karaf WebContainer port number is `8181`.

It means that the Apache Karaf WebConsole is accessible on the following URL: http://localhost:8181/system/console

As the Apache Karaf WebConsole uses the security framework, an username and password will be prompted.

You have to enter an username/password from the `karaf` realm. By default, you can use `karaf`/`karaf`.

See the link:security[Security section] for details.

[NOTE]
====
For security reason, by default, `karaf` user is disabled. To allow the logon, you have to have an user. You can enable
`karaf` user by uncommenting the user in `etc/users.properties`:

----
karaf = karaf,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh
----
====

[NOTE]
====
By default, only users with the `admin` role are allowed to logon to the Apache Karaf WebConsole.
Right now, the WebConsole doesn't use RBAC system as we have for console commands, or MBeans.
====

You can change the security configuration of the webconsole in the
`etc/org.apache.karaf.webconsole.cfg` configuration file:

----
# The JAAS realm name to use for authentication
realm=karaf

# The role required to access the WebConsole
role=admin
----

