Skip to content

vhs/nomos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6957121 · Feb 1, 2025
Nov 30, 2024
Dec 1, 2024
Dec 31, 2024
Feb 1, 2025
Oct 9, 2023
Dec 31, 2024
Nov 30, 2024
Aug 16, 2015
Dec 30, 2024
Jan 9, 2025
Jan 5, 2025
Nov 30, 2024
Jan 18, 2025
Nov 30, 2024
Nov 30, 2024
Nov 30, 2024
Oct 9, 2023
Nov 30, 2024
Nov 30, 2024
Nov 30, 2024
Nov 30, 2024
Nov 30, 2024
Jan 18, 2025
Sep 21, 2018
Jan 9, 2025
Nov 30, 2024
Jan 16, 2025
Jan 16, 2025
Oct 5, 2023
Oct 5, 2023
Nov 30, 2024
Oct 5, 2023
Dec 1, 2024
Jan 5, 2025
Dec 1, 2024
Dec 1, 2024
Jan 5, 2025
Dec 31, 2024
Nov 30, 2024
Dec 1, 2024

Repository files navigation

Nomos

In greek mythology, Nomos is the personified spirit of law.

This system in a way acts as the rule set for how things are governed, via membership levels and privileges.

Development

See here for complete setup, API, and philosophy: https://github.com/vhs/nomos/wiki

For the old development guide, see: https://github.com/vhs/nomos/wiki/Contributing

Requirements

For development, you'll need the following components/dependencies:

  • Docker/Docker Compose
  • NodeJS/NPM
  • PHP 8.2, and extensions (php-xml, php-curl, php-bcmath, php-zip)

All other development dependencies (such as bower, composer, eslint, husky, php-cs-fixer, phpunit, prettier, etc.) will automatically be installed upon running npm install after checkout.

Development setup guide

Install the requirements: docker and docker-compose, nodejs, php 8.2 (apt-get install php8.2), php extensions (apt-get install php-xml php-curl php-bcmath php-zip)

On Mac/Windows, you probably want Docker Desktop, which is a fancy app that makes and manages a Linux virtual machine that it runs Docker in.

  • Create a docker-compose configuration file:
    • Copy docker-compose.dev.conf to docker-compose.conf
    • You can also use docker-compose.template.conf or docker-compose.sample.conf as a starting place.
    • Edit your new docker-compose.conf to customize what services are enabled
  • Create a docker.env file
    • copy docker/nomos.env.template to docker/nomos.env.
  • run npm install in the root directory
  • Run ./docker-compose.sh as a 1:1 wrapper for docker-compose, or generate a local docker-compose.yml file for direct usage with docker-compose with ./docker-compose.sh config > docker-compose.yml

Grant write permission to all users on the log directory: chmod a+w logs. The reason this is needed is because the back-end PHP code runs as a non-root user inside the container, and by default permissions don't grant write access to non-owners of directories.

Start the service with ./docker-compose.sh up. This should bring everything up, but the webhook service will still be failing, which is expected.

To get the webhook service working, run tools/make-webhook-key.sh in another terminal, which will provide the correct value of NOMOS_RABBITMQ_NOMOS_TOKEN. Then, edit that into docker/nomos.env.

Once you have done this, press Ctrl-C in the terminal with ./docker-compose.sh up, then run ./docker-compose.sh up again.

You're all set! You can get the address to access the Nomos service from your docker host system by running the following in a separate terminal as docker-compose.sh:

$ docker inspect nomos-frontend | jq -r '.[0].NetworkSettings.Networks | to_entries | .[0].value.IPAddress'

Or make your docker-compose.conf include docker-compose/core.ports.yml, to proxy port 80 of your docker network to port 80 on your host machine.

The username is vhs and the password is password.