# Part 1: Setting Up Fedmsg

I was trying to make [Poor man’s CI](https://lubomir.github.io//en/2016-03-08-poor-man-ci.html) work for local development. Since it has been written in a way that it has been put to productions directly. So I started to talk about it in fedora-admin channel, I got a lot of input from [pingou](http://blog.pingoured.fr/) and [lsedlar](https://lubomir.github.io/).

Finally, I tried to divide the task into various parts the first one was making fedmsg work on my system locally. [Fedmsg](http://fedmsg.com/en/latest/) is way in which application talk to each other in Fedora infrastructure. A message contains a lot of information about the changes in the application.

Well setting up was a big problem for me because the version of fedmsg being installed was throwing a segment fault whenever it tried running **fedmsg-tail**. I pinged [Sayan](http://www.sayanchowdhury.com/) regarding this issue, we worked a lot over it finally the solution we found was using **virtualenv** and installing a specific stable version of fedmsg which was :

>         pip install fedmsg==0.16.4

Now, since fedmsg now got properly set up , fedmsg has to take messages from my local [Pagure](http://pagure.io), fedmsg-relay is a service which binds two ports one where the message is being emitted and the other where it has to be listen to.

If a project doesn’t have a fedmsg.d/<somefile>.py  then fedmsg will take inputs from /etc/fedmsg.d/endpoint.py , in my case fedmsg-relay was using the latter location so I modified that file a bit to get message from my local instance.

In a different terminal we can run fedmsg-tail  –really-pretty to see the messages. Any change being done to any repo in local Pagure instance is now being logged.

![Selection_010](https://cdn.hashnode.com/res/hashnode/image/upload/v1622182370185/ZCgNbsOvg.png)

fedmsg

￼

￼

With these changes I was able to configure in such a way that I can see my local instance emitting messages on fedmsg.

#### Tip: Using **virtualenv wrapper** its an amazing tool to manage various **virtualenv**. And most of the projects comes with a convention that **setup.py** has install and develop option.
