Skip to content

Development Guide

Madeline Farina edited this page Mar 17, 2026 · 3 revisions

Local development environment configuration & Build Instructions

The Quickstart section of the README contains primary local dev/build instructions. Instructions for how to customize ANMS when integrating with a local network (i.e, adding custom ADMs) are in the works.

Testing workflows

Contribution guidelines

Any Github user should be able to create a ticket in the ANMS repo; however, once must have write permissions (i.e., be added to the NASA AMMOS Github organization) to be able to add additional ticket information like labels, milestone, project, assignee, etc. If you do not have write access, contact Madeline Farina about being added. If you do have write access, please refer to the Ticket Workflow wiki page for additional contribution guidelines.

Troubleshooting guidance

Note that the User Guide found here can also assist with troubleshooting.

ANMS-UI is not visible at hostname:9030

This signals that the anms-ui docker container is probably experiencing issues getting HTTP requests, which is most likely related to firewall rules, the host or bind address specified in anms-ui/server/shared/config.py or if there is an environment variable overriding this.

Refer to the .env file for port binding overrides, or docker-compose.yml for defaults. Consult with your system admin for any firewall issues.

ANMS-UI is not visible at hostname

Ensure that you are running with the 'full' profile. This is the default option when using the .env file, however some older versions of podman-compose may not parse the COMPOSE_PROFILES ENV variable correctly. If this is the case, specify the profile explicitly in your compose up commands. For example, podman compose --profile full up.

Check the startup logs for any errors. If using podman, some port numbers may need to be remapped using the .env file to higher numbered ports, or the system configuration modified to adjust permissions (not recommended).

If you go to your browser and hostname:9030 (replace hostname with the server's hostname) and you see the ANMS UI, but http://hostname does not render the same page, then Authnz is having an issue. You should look at the docker-compose services list and see what it's status is. You may need to restart it via docker-compose -f docker-compose.yml restart authnz.

OCI runtime error: unable to process ecurity attribute

This and related errors are typically caused by incomplete support or configuration of security settings. In older Docker & Podman releases these tags were ignored on systems where SELinux was not enabled.

If running certain versions of Podman, or sytems with SELinux features enabled, users may need to explicitly configure the appropriate security groups (see User Guide) or disable the security tags entirely. The latter can be done by commenting out the "security_opt" section in the *-compose.yml files.

external volume ammos-tls not found

The create_volume.sh script in the directions above automatically detects if docker or podman is available. If both are available (and are not aliased to each other), you must explicitly specify your chosen container type to ensure the volume is created appropriately.

This can be done by setting the DOCKER_CMD environment variable such as DOCKER_CMD=podman ./create_volume.sh ./puppet/modules/apl_test/files/anms/tls

external volume "sockdir" not found

This error can occur when running docker compose up -d because sockdir is marked as external in the docker-compose.yml file. To resolve, you can either run docker volume create sockdir then retry docker compose up -d, or you can modify the docker-compose.yml file (if you don't need the volume to be pre-created) to remove external: true under the sockdir volume definition:

text
volumes:
  sockdir:  # No 'external: true' here 

Clone this wiki locally