i am sorry. I did not care much about the server. One of the first things i depriorized.

And it seems that the server does not have the CPU power to deal with the re-indexing that is triggered all the time because we really moving now.

I have added a language server Protocol tool to bazel-migration. it produces an xml file which resolves the uno calls in our code.

Sadly the C++ resolution does not work on my experimental IDE (i tried lapce). But if i create maybe one that can do this too, there is no need for opengrok at all?

Am 24.09.2026 um 15:26 schrieb Damjan Jovanovic:
Hi

I've lost hope in http://opengrok.openoffice.org/ working when I need it,
and got OpenGrok running on my PC instead.

Also recently FreeBSD finally got Podman working, which now supports
FreeBSD upstream, is compatible with Docker images, and able to run Linux
Docker containers at full performance using its Linux compatibility layer
:-).

After some exploration, I got it working quite easily:

1. Make these directories:
/opt/opengrok/data - empty
/opt/opengrok/etc - empty
/opt/opengrok/openoffice-git - clean working tree with the branch you want
(eg. trunk) checked out

2. Copy the XML below and paste it as
/opt/opengrok/etc/opengrok_custom_config.xml. It was derived from
images/opengrok/opengrok_custom_config.xml in
https://gitbox.apache.org/repos/asf/openoffice-devtools.git but changed to
use 4 spaces per tab (in a way that works):

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_121" class="java.beans.XMLDecoder">
   <object class="org.opengrok.indexer.configuration.Configuration"
id="Configuration0">
     <void property="projects">
       <void method="put">
         <string>openoffice-git</string>
         <object class="org.opengrok.indexer.configuration.Project">
           <void property="name">
             <string>openoffice-git</string>
           </void>
           <void property="path">
             <string>/openoffice-git</string>
           </void>
           <void property="tabSize">
             <int>4</int>
           </void>
         </object>
       </void>
     </void>
     <void id="IgnoredNames0" property="ignoredNames">
       <void id="IgnoredFiles0" property="ignoredFiles">
         <void property="items">
           <void method="add">
             <string>*.log</string>
           </void>
           <void method="add">
             <string>*.tmp</string>
           </void>
           <void method="add">
             <string>*.xls</string>
           </void>
           <void method="add">
             <string>*.jpg</string>
           </void>
           <void method="add">
             <string>*.ods</string>
           </void>
           <void method="add">
             <string>*.otp</string>
           </void>
           <void method="add">
             <string>*.ods</string>
           </void>
           <void method="add">
             <string>*.odt</string>
           </void>
           <void method="add">
             <string>*.zip</string>
           </void>
           <void method="add">
             <string>*.txt</string>
           </void>
         </void>
       </void>
     </void>
  </object>
</java>


3. podman run \
   --name opengrok-aoo \
   -d \
   --restart=unless-stopped \
   -v
/opt/opengrok/etc/opengrok_custom_config.xml:/opengrok/etc/opengrok_custom_config.xml
\
   -v /opt/opengrok/openoffice-git:/opengrok/src/openoffice-git \
   -v /opt/opengrok/data:/opengrok/data \
   -v /etc/localtime:/etc/localtime:ro \
   -e READONLY_CONFIG_FILE=/opengrok/etc/opengrok_custom_config.xml \
   -e SYNC_PERIOD_MINUTES=0 \
   -e NOMIRROR=1 \
   --network=host \
   docker.io/opengrok/docker:latest

On FreeBSD you also need:
   --os linux
   -v /compat/linux/proc:/proc
to enable Linux compatibility, and mount linprocfs from the host's
/compat/linux/proc to the container's /proc.

Note how:
- you can replace "podman" with "docker", they use the same command line
options.
- mounting into /opengrok/data persists data across restarts.
- mounting /etc/localtime is for timezone.
- I needed "--network=host" but "-p 8080:8080" should also work, still
investigating.
- the syncing and mirroring could also be left on.
- podman wants the full URL docker.io/opengrok/docker:latest instead of
opengrok/docker:latest, it's also more secure that way.
- you can monitor logs with "podman logs -f opengrok-aoo".

It works remarkably well and requires no further setup, just visit
http://localhost:8080 and start using it :-). The project will only become
visible after indexing finishes, which took about 15 minutes after first
start for me.

If it takes a long time to start indexing, that's because it uselessly
tries to contact a Perforce server (
https://github.com/oracle/opengrok/discussions/4572). It's possible to
shell into the container and uninstall the Perforce apt packages to skip
that, as described on that bug report.

Don't use your main working tree because it will index binaries and
generated files, and chown all your files to user:group 1111:1111. Use a
separate, clean working tree, with no generated files.

It's also MUCH faster locally :-), due to shorter round-trip times.

Regards
Damjan


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to