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.
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
For development, you'll need the following components/dependencies:
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.
Two configuration files are used, which will vary based on the installation:
docker/nomos.env
, and docker-compose.conf
. These should be set up before
running the docker-compose
setup.
There is a development configuration at docker-compose.dev.conf
, which can be
used for development.
docker-compose.template.conf
, docker-compose.sample.conf
, or docker-compose.dev.conf
to docker-compose.conf
docker-compose.conf
to enable - or even add - specific functionality./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
On Linux, first install docker
and docker-compose
from your distribution
package manager. 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.
Copy docker/nomos.env.template
to docker/nomos.env
.
Copy docker-compose.dev.conf
to docker-compose.conf
.
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
, 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 locally 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'
The username is vhs
and the password is password
.