<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - Running Fuseki with UI</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
    <link rel="shortcut icon" href="/images/favicon.ico" />
    
</head>

<body>

<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>
            </ul>
            <form class="d-flex" role="search" action="/search" method="GET">
                <div class="input-group">
                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
                        <i class="bi-search"></i>
                    </button>
                </div>
            </form>
            <ul class="navbar-nav">
                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>

                <li class="nav-item dropdown">
                    <a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>
                
                
                
                
                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/fuseki2/fuseki-webapp.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            
            <div id="breadcrumbs">
                





<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
    
    
        
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation/fuseki2'>FUSEKI2</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">FUSEKI WEBAPP</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">Running Fuseki with UI</h1>
            
            
<main class="d-flex flex-xl-row flex-column">
  
  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#fuseki-standalone-server">Fuseki as a Standalone Server</a></li>
    <li><a href="#layout">Layout</a></li>
    <li><a href="#fuseki-service">Fuseki as a Service</a></li>
    <li><a href="#fuseki-web-application">Fuseki as a Web Application</a></li>
    <li><a href="#configuring-logging">Configuring logging</a></li>
    <li><a href="#fuseki-with-tomcat9-and-systemd">Fuseki with Tomcat9 and systemd</a></li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <p>Fuseki/UI can be run in a number of ways:</p>
<ul>
<li><a href="#fuseki-standalone-server">As a standalone server</a></li>
<li><a href="#fuseki-service">As a service</a> run by the operation system, for example, started when the machine boots</li>
<li><a href="#fuseki-web-application">As a Web Application</a> inside a container such as Apache Tomcat or Jetty.</li>
</ul>
<p>Fuseki is also packaged as a plain server <a href="fuseki-main.html">&ldquo;Fuseki Main&rdquo;</a>
with no UI for use as a configurable SPARQL server, for <a href="fuseki-docker.html">building as a Docker
container</a>, and as a deployment and development standalone
server. It supports the arguments used by the standalone server.</p>
<p>The configuration file is the same format for all forms of the Fuseki server.</p>
<p>See &ldquo;<a href="fuseki-configuration.html">Fuseki Configuration</a>&rdquo; for information on
how to provide datasets and configure services using the configuration file.</p>
<h2 id="fuseki-standalone-server">Fuseki as a Standalone Server</h2>
<p>This is running Fuseki from the command line.</p>
<p>To publish at <tt>http://<i>host</i>:3030/NAME</i></tt>:</p>
<p>where <code>/NAME</code> is the dataset publishing name at this server in URI space.</p>
<p>TDB2 database:</p>
<pre><code>fuseki-server [--loc=DIR] [[--update] /NAME]
</code></pre>
<p>The <code>--loc</code> directory is either a TDB1 or TDB2 database.
The directory <code>DIR</code> must exist.
If the database in <code>DIR</code> does not exist, then a new database is created. By
default this is a TDB2 database unless the argument &ndash;tdb1 is given.</p>
<p>An in-memory, non-peristent database (always updatable) is:</p>
<pre><code>fuseki-server --mem /NAME
</code></pre>
<p>Load a file at start and provide it read-only:</p>
<pre><code>fuseki-server --file=MyData.ttl /NAME
</code></pre>
<p>where <code>MyData.ttl</code> can be any RDF format, both triples or quads.</p>
<p>Administrative functions are only available from &ldquo;localhost&rdquo;.</p>
<p>See <code>fuseki-server --help</code> for details of more arguments.</p>
<h2 id="layout">Layout</h2>
<p>When run from the command line, the server creates its work area in the
directory named by environment variable <code>FUSEKI_BASE</code>. When run from the
command line, this defaults to the current directory.</p>
<p><a href="fuseki-layout.html">Fuseki layout</a></p>
<p>If you get the error message <code>Can't find jarfile to run</code> then you either
need to put a copy of <code>fuseki-server.jar</code> in the current directory or set
the environment variable <code>FUSEKI_HOME</code> to point to an unpacked Fuseki
distribution.</p>
<p>Starting with no dataset and no configuration is possible.
Datasets can be added from the admin UI to a running server.</p>
<h2 id="fuseki-service">Fuseki as a Service</h2>
<p>Fuseki can run as an operating system service, started when the server
machine boots.  The script <code>fuseki</code> is a Linux <code>init.d</code> with the common
secondary arguments of <code>start</code> and <code>stop</code>.</p>
<p>Process arguments are read from <code>/etc/default/fuseki</code> including
<code>FUSEKI_HOME</code> and <code>FUSEKI_BASE</code>.  <code>FUSEKI_HOME</code> should be the directory
where the distribution was unpacked.</p>
<h2 id="fuseki-web-application">Fuseki as a Web Application</h2>
<p>Fuseki can run from a
<a href="http://en.wikipedia.org/wiki/WAR_%28file_format%29">WAR</a> file.</p>
<p>The war file can be downloaded from the <a href="/download/">project downloads page</a>. It
should then be renamed to the webapp name &ldquo;ROOT.war&rdquo; (this means there no name
in the URL) or &ldquo;fuseki.war&rdquo; (with a name <code>/fuseki/</code>) or some other choice of
name.</p>
<p><code>FUSEKI_HOME</code> is not applicable.</p>
<p><code>FUSEKI_BASE</code> defaults to <code>/etc/fuseki</code> which must be a writeable
directory.  It is initialised the first time Fuseki runs, including a
<a href="http://shiro.apache.org/">Apache Shiro</a> security file but this is only
intended as a starting point.  It restricts use of the admin UI to the
local machine.</p>
<p>When deploying as a web application a more fully featured Admin API is
made available and described on the
<a href="fuseki-server-protocol.html">Fuseki Server Protocol (REST API)</a> page.</p>
<h2 id="configuring-logging">Configuring logging</h2>
<p>When running from a WAR file in a webapp container such as Apache Tomcat, the
logging configuration comes from the file <code>log4j2.properties</code> in the root of the
unpacked war file, e.g. <code>/var/lib/tomcat9/webapps/fuseki/log4j2.properties</code>.</p>
<p>The name of the file is taken from <code>web.xml</code>:</p>
  <context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>log4j2.properties</param-value>
  </context-param>
<p>This only applies when running in a webapp container. When run from the command
line, the server looks for <code>log4j2.properties</code> in the current directory and if
not found, uses a built-in configuration.</p>
<p>This logging goes to the standard output.</p>
<h2 id="fuseki-with-tomcat9-and-systemd">Fuseki with Tomcat9 and systemd</h2>
<p><code>systemd</code> may be set to sandbox Tomcat9. The file area <code>/etc/fuseki</code> will not
be writable to Fuseki. To enable this area, add <code>ReadWritePaths=/etc/fuseki/</code> to
the file <code>/etc/systemd/system/tomcat9.service.d/override.conf</code>,
creating the file if necessary.</p>
<p><code>systemd</code> also captures standard out and routes it to the system journal:</p>
<pre tabindex="0"><code>  journalctl -u tomcat9
</code></pre><p>To direct the output to the traditional location of
/var/log/tomcat9/catalina.out use the <code>StandardOutput</code> setting in <code>override.conf</code>:</p>
<pre tabindex="0"><code>    [Service]
   
    # Allow access to the Fuseki area
    ReadWritePaths=/etc/fuseki/
    StandardOutput=file:/var/log/tomcat9/catalina.out
</code></pre>
  </article>
  
  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#fuseki-standalone-server">Fuseki as a Standalone Server</a></li>
    <li><a href="#layout">Layout</a></li>
    <li><a href="#fuseki-service">Fuseki as a Service</a></li>
    <li><a href="#fuseki-web-application">Fuseki as a Web Application</a></li>
    <li><a href="#configuring-logging">Configuring logging</a></li>
    <li><a href="#fuseki-with-tomcat9-and-systemd">Fuseki with Tomcat9 and systemd</a></li>
  </ul>
</nav>
  </aside>
</main>

        </div>
    </div>
</div>

<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>

<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>

<script type="text/javascript">
(function() {
    'use strict'
    
    

    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
    if (links !== undefined && links !== null) {
        for (const link of links) {
            
            link.classList.add('active')
            let parentElement = link.parentElement
            let count = 0
            const levelsLimit = 4
            
            
            
            
            
            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
                if (parentElement.tagName === 'LI') {
                    
                    
                    
                    parentElement.querySelector('a:first-child').classList.add('active')
                }
                parentElement = parentElement.parentElement
                count++
            }
        }
    }
})()
</script>

</body>
</html>
