Code Monkey home page Code Monkey logo

free5gc-compose's Introduction

Free5GC Compose

This repository is a docker compose version of free5GC for stage 3. It's inspire by free5gc-docker-compose and also reference to docker-free5GC.

You can change your own config in config folder and docker-compose.yaml

How to use it: bare metal

Prerequisites

Due to the UPF issue, the host must using kernel 5.0.0-23-generic . And it should contain gtp5g kernel module.

On you host OS:

git clone https://github.com/PrinzOwO/gtp5g.git
cd gtp5g
make
sudo make install

Install Docker

Ubuntu

Reference: https://docs.docker.com/install/linux/docker-ce/ubuntu/

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

CentOS

Reference: https://docs.docker.com/install/linux/docker-ce/centos/

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

$ sudo yum install docker-ce docker-ce-cli containerd.io

$ sudo systemctl start docker
$ sudo systemctl enable docker

Add docker group

To let you use docker without root permission.

Reference: https://docs.docker.com/engine/install/linux-postinstall/

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ sudo reboot

Install docker-compose

Reference: https://docs.docker.com/compose/install/

$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose- `uname -s` - `uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Run Up

Because we need to create tunnel interface, we need to use privileged container with root permission.

$ git clone https://github.com/free5gc/free5gc-compose.git
$ cd free5gc-compose
$ make base
$ docker-compose build
$ sudo docker-compose up # Recommand use with tmux to run in frontground
$ sudo docker-compose up -d # Run in backbround if needed

How to use it: vagrant box

You can setup a working environment without the fuss of updating your kernel version just by using a vagrant box.

Please find follow the instructions provided here: https://github.com/abousselmi/vagrant-free5gc

Troubleshooting

Sometimes, you need to drop data from DB(See #Troubleshooting from https://www.free5gc.org/installation).

$ docker exec -it mongodb mongo
> use free5gc
> db.subscribers.drop()
> exit # (Or Ctrl-D)

Another way to drop DB data is just remove db data. Outside your container, run:

$ rm -rf ./mongodb

NF

For my default setting.

NF Exposed Ports Dependencies Dependencies URI
amf 29518 nrf nrfUri: https://nrf:29510
ausf 29509 nrf nrfUri: https://nrf:29510
nrf 29510 db MongoDBUrl: mongodb://db:27017
nssf 29531 nrf nrfUri: https://nrf:29510gg/,
nrfId: https://nrf:29510/nnrf-nfm/v1/nf-instances
pcf 29507 nrf nrfUri: https://nrf:29510
smf 29502 nrf, upf nrfUri: https://nrf:29510,
node_id: upf1, node_id: upf2, node_id: upf3
udm 29503 nrf nrfUri: https://nrf:29510
udr 29504 nrf, db nrfUri: https://nrf:29510,
url: mongodb://db:27017
upf N/A pfcp, gtpu, apn pfcp: upf, gtpu: upf, apn: internet
gnb 32000 amfInterface, ngranInterface, upfInterface, gtpInterface amfInterface: amf, ngranInterface: gnb, upfInterface: upf, gtpInterface: gnb
webui 5000 db MongoDBUrl: mongodb://db:27017

Reference

free5gc-compose's People

Contributors

abousselmi avatar shynuu avatar free5gc-org avatar tim-ywliu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.