Skip to main content

Docker

Build image:

$ docker build --no-cache -t simops-api .

Run:

$ docker run -d --name simops-api simops-api

Run from registry image (mind the image version):

$ docker run -d --name simops-api \
-e NODE_ENV=production -e JWT_SECRET=temp \
-e COGNITO_CLIENT_ID=value -e COGNITO_REGION=value -e COGNITO_USER_POOL_ID=value \
-e DB_USER=postgres -e DB_PASSWORD=value -e DB_NAME=simops \
-p 44315:3050 --restart=always registry.gitlab.com/simo-ps/api:0.1.0-dev

Remove container:

$ docker container rm -f simops-api 2>/dev/null || true

Docker Compose

$ docker compose up -d

Manual start

If you don't want to use the docker compose, commands below can be used instead.

PostgreSQL

Manual start locally:

docker run -d --name simops-db-local \
-p 5432:5432 --restart=always \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=simops \
postgres:16.2

Data persistance (ie: on a VPS; change password):

docker run -d --name simops-db \
-p 5432:5432 --restart=always \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=simops \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v simops-api_simops-db-data:/var/lib/postgresql/data \
postgres:16.2

Postgres version is the one at the moment of writing, you can check docker hub to adapt for lastest version.

With network

Create a network:

docker network create -d bridge --subnet 10.0.0.1/24 simopsnet

Note: Creating a network is optional and could be more difficult to debug.

Start database:

docker run -d --name simops-db-local \
-p 5432:5432 --restart=always --network simops-api_simops \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=simops \
postgres:16.2

Note: database will be empty, no volume/persistance provided.

Start Simops API:

docker run -d --name simops-api \
-p 3050:3050 --restart=always \
--network simopsnet \
simops-api

Troubleshooting

Check if postgres image has correct information set:

$ docker exec simops-db bash -c "printenv | grep POSTGRES_"

Docker compose run:

docker compose -p simops-api \
-f docker-compose.prod.yml run \
-d --name simops-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_DB=simops \
db