Is a network address management service. Powered by Nodejs and Mongodb.
- Deploy with docker-compose
- Important postman.json
- Create a root user
- Create a network
- Add scanner JWT token
- IP Address Management
You can:
- Automated IP address tracking
- API support for CRUD operations
get-ip uses a number of open source projects to work properly:
- node.js - open-source, JavaScript runtime environment
- express - node.js web framework
- mongodb - document-oriented database program
get-ip requires Node.js v7+ to run. Open your favorite Terminal and run these commands.
First:
$ mkdir ./ipamSecond:
$ git initThird:
$ git clone [email protected]:molupini/ipam.gitUsing node + nodemon + docker for fast developing. Making any change in your source file will update immediately.
Before we begin, required environment variables:
$ vi ./.env/app.development.env
# # Express
NODE_ENV=development
JSON_WEB_TOKEN_SECRET=
SEND_GRID_API_KEY=
MONGODB_USER=
MONGODB_PASS_FILE=
MONGODB_URL=
# # Mongo
MONGO_INITDB_ROOT_USERNAME=
MONGO_INITDB_ROOT_PASSWORD=
MONGO_INITDB_DATABASE=
# # Scanner
NETWORK_ADDRESS=all
# or specific networkAddress
NODE_ENV=development
EXPRESS_URL=
JWT_SCANNER=Easily done in a Docker container.
Make required changes within Dockerfile + compose files if necessary. When ready, simply use docker-compose to build your environment. This will create the ipam-express, ipam-mongo and ipam-scanner services with necessary dependencies. Once done, simply import postman.json into Postman:
For dev, docker compose:
$ docker-compose upVerify the deployment by navigating to your server address in your preferred browser. Below is a simple health check.
$ curl http://localhost:3000/healthvFor prod, generate docker builds:
$ docker build -f mongo.Dockerfile -t mauriziolupini/ipam-mongo:prod .
$ docker build -f express.Dockerfile -t mauriziolupini/ipam-express:prod .
$ docker build -f scanner.Dockerfile -t mauriziolupini/ipam-scanner:prod .Commit prod, push docker builds:
$ docker push mauriziolupini/ipam-mongo:prod
$ docker push mauriziolupini/ipam-express:prod
$ docker push mauriziolupini/ipam-scanner:prodGet prod, pull docker builds:
$ docker pull mauriziolupini/ipam-mongo:prod
$ docker pull mauriziolupini/ipam-express:prod
$ docker pull mauriziolupini/ipam-scanner:prodRun prod, either docker run:
docker network create --driver bridge ipam_network
docker run -d --net=ipam_network --name ipam-mongo --hostname ipam-mongo -e "MONGO_INITDB_ROOT_USERNAME=" -e "MONGO_INITDB_ROOT_PASSWORD=" -e "MONGO_INITDB_DATABASE=" -p 37017:27017 mauriziolupini/ipam-mongo:prod
docker run -d --net=ipam_network --name ipam-express --hostname ipam-express -e "NODE_ENV=" -e "JSON_WEB_TOKEN_SECRET=" -e "SEND_GRID_API_KEY=" -e "MONGODB_USER=" -e "MONGODB_PASS=" -e "MONGODB_URL=" -p 3000:3000 mauriziolupini/ipam-express:prod
docker run -d --net=ipam_network --name ipam-scanner --hostname ipam-scanner -e "JWT_SCANNER=" -e "EXPRESS_URL=" -e "NODE_ENV=" mauriziolupini/ipam-scanner:prod
Run prod, or docker swarm see ipam.yml stack file:
docker stack deploy -c ipam.yml IPAMSee [KUBERNETES.md] coming soon.
Simple API operating instructions. Using postman, a collaboration platform for API development. Import postman.json.
Edit environment variable:
url localhost:3000Create user:
Body
{
"emailAddress":"[email protected]",
"userName":"mauriziolupini",
"password":".....",
"mobilePhone":"....."
}
POST {{url}}/users/create
GET {{url}}/users/{{userId}}/confirmConfirm user:
GET {{url}}/users/{{userId}}/confirmCreate network:
Body
{
"networkAddress":"10.0.0.0",
"subnetMask": "255.255.255.0"
}
POST {{url}}/networksPatch network:
{
"cidrExclusion": [
"10.0.0.30-10.0.0.35",
"10.0.0.254/32"
]
}
PATCH {{url}}/networks/{{networkId}}Confirm network:
GET {{url}}/networks/{{networkId}}/confirmCheck-out Address: be sure to seed JWT into scanner before you continue
GET {{url}}/addresses/checkout?author={{networkId}}&fqdn=www.gotobed.io&port=888&populate=trueMIT
- REPLACE REQUEST MODULE USED WITHIN SCANNER AS BEING DEPRECATED
- EXPRESS, RATE LIMIT FOR USERS
- SCANNER, ARP LOOKUP
- SCANNER, EVALUATE WITH NMAP
Want to contribute? Great! See Repo Repo from Maurizio Lupini -Author, Working at ...



