Sidebar Background
logo Search
logo Search
Icon

Get Started

Icon

Miscellaneous

Installation Setup

Get Started

View production requirements in Preparation documentation before continuing.

Compose File

services:
    rexi:
        image: oci.registry.sudovanilla.org/rexi:amd64 # or arm64
        restart: always
        ports:
            - 2048:8085
        volumes:
            - ./config.json:/rexi/config.json
            - ./About.md:/rexi/src/components/About.md

Choice of Architecture

The OCI images available for Docker and other container software are available for both amd64 and arm64 system architecture. By default, amd64 is already selected in the compose.yml file as it’s more common to see in servers. This is shown at the end of the OCI image name in the image section.

If your server does not run on either of the architecture, then you’ll need to build the OCI image on the server itself, if that is the case please continue to Building OCI Image.

ArchitectureOCI Image
amd64oci.registry.sudovanilla.org/rexi:amd64
arm64oci.registry.sudovanilla.org/rexi:arm64

Networking and Ports

By default, port host 2048 is used for the Rexi container in compose.yml. You are most welcome to change this port in compose.yml, however please do NOT change the container port which is 8085.

If for unknown reasons the ports aren’t being properly exposed, possibility under a janky Docker setup, you may need to open the network_mode to host. Switching network_mode means it’ll use the container port on the network instead, which would be 8085. This is rare situation and is not necessary for most server environments.

Volumes

Docker volumes are used to persist data generated by and used by Docker containers, all volumes that are already included in compose.yml should not be removed, although you’re welcome to add volumes with caution.

The about text is shown at the homepage, which is stored in the About.md file.

Using volumes, you can also add files which should be used to override components in Rexi, as an example for the footer:

...
- ./overrides/Footer.astro:/rexi/src/components/Footer.astro
...

Configuration File

For your config.json, use the following:

{
    "Global": {
        "PoweredBy": true, 
        "Login": true,
        "Register": true
    },
    "Links": {
        "Footer": [
            {
                "Text": "Documentation",
                "Link": "https://rexi.docs.sudovanilla.org"
            },
            {
                "Text": "Source Code",
                "Link": "https://ark.sudovanilla.org/Korbs/Rexi"
            }
        ]
    },
    "Texts": {
        "Header": {
            "Site": "Company LLC Registry",
            "OCI": "OCI Images",
            "JS": "JavaScript",
            "Linux": "Packages"
        },
        "Footer": {
            "Copyright": {
                "Author": "Company LLC",
                "Year": "2026"
            }
        }
    },
    "Instances": {
        "Zot": {
            "Enable": true,
            "Protocol": "https",
            "Hostname": "oci.registry.example.org",
            "ShowAmount": true,
            "ShowExternalLink": false
        },
        "Verdaccio": {
            "Enable": false,
            "Protocol": "https",
            "Hostname": "js.registry.example.org",
            "ShowAmount": true,
            "ShowExternalLink": false,
            "Badges": "badges.sudovanilla.org",
            "Imgur": "imgur.sudovanilla.org"
        },
        "OpenRepo": {
            "Enable": false,
            "Protocol": "https",
            "Hostname": "linux.registry.example.org",
            "ShowAmount": false,
            "APIKey": "YOUR_OPENREPO_API_KEY",
            "Repos": ["REPO_NAME"]
        }
    }
}

Be sure that you’re pointing to the your instances for Zot, Verdaccio, and OpenRepo. If you’re not using one of these registries, you can simply set the Enable option for it to false.

Launch

Retrieve the OCI image:

docker compose pull

Then launch:

docker compose up -d

Within a few moments, Rexi will be available at http://localhost:2048.

If it still not available yet at the port 2048, then it may still be building or something was mis-configured resulting in error. To check the status, run the log command:

docker compose logs --follow