How to compile HiFi in CentOS 7.x (domain-server and assignment-client)


Thank you much! I will write a more detailed reply soon but here is the basics of what happened.

The script does not install stuff for the Interface which is where SDL, VHACD etc. It scrolls by that because you do not need it.

I use the directory set for installing cmake since earlier on I figured hifi liked it there and no other apps complained either. The alternative was /usr/local as default so I just tell it install to /usr.

I already setup security a little bit with this script as it installs to a separate user “hifi” so it never has root access.

It also starts the servers automatically when the script ends, just connect to http://IP:40100 - if it does not work then you need to make sure that no ports are blocked via a firewall but it usually works out of the box so to speak.

The fun part is now, when you have logged out and back in you can run the command “compilehifi” to update it and “runhifi” to restart it. This commands can use some work and I plan to work on that later.

So to sum it up, once you have logged out and back into your shell, you can run compilehifi and it checks if updates are needed and recompiles and loads the new binary. All of this is automatic.

Hope that answered some of the basics right now @VR_Architect and thanks for testing it out!


My firewall had the port blocked so I ran these and it worked!

firewall-cmd --zone=public --add-port=40100/tcp --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

When we log back in. Do we do that as HiFi account, my admin account, or root? Thanks

Thanks again!


be sure to add

firewall-cmd --zone=public --add-port=40101-40103/udp --permanent

Now you can connect to it for sure


I second that. I’m planning to either: a) host one here via comcast household connection, or b) do an AWS or Rackspace or SimilarThing™, and would love some guidance on just how much protein needs to be in that burger.

Also, I like the StackManger GUI for managing it. Can the StackManager on OS X be fired up to connect to and configure domain-server/assignment-client(s) on Linux? (I figure that’s asking a lot.)


I am in the process of setting up the “droplet” on Digital Ocean. I assume once I get to the point of using Coal’s script, I will be able to figure out how to use it–or it will be self-evident (BIG assumption!). At the moment, however, I would like to ask about two parameters of the Droplet set-up:

1-- Did you guys select Private Networking and Automatic Backups?
2-- Did you go through the added lengths to add an SSH Key?

The only piece of that I think might actually be critical to performance in HiFI, is the Private Networking option.

Thank you!


I have a second, REALLY BASIC question.

Can I simply upload the HIFi StackManager to a Digital Ocean server and use it there exactly as I would on my home machine? I am avoiding StackManager on my home machine for security considerations.


No on GUI stack manager at this time.

Private networking is not necessary unless you plan to have multiple droplets and use the internal private network for non-public comms between.

I don’t use automatic backups personally, but, for ease it offers it might be worth added cost.

2-- Did you go through the added lengths to add an SSH Key?

In my case, yes, but both for reasons of security and convenience. It helps with managing many droplets, but, of course, if all have the same key you’ve given an opening to all if private key falls into wrong hands.


It’s true. I do not know what I am doing : -/
At least I know to power off my shiny-new-empty server before signing off and coming at this again another day!


@SterlingWright I added you on Skype when you sent the request but you were already afk it showed. I have tried to reply to offer you some help so if you are there on Skype… feel free to respond :wink: I can help you get it up and running.


I am running my servers behind Comcast 100mb down / 26mb up and seems to run good so far. Though I have not placed any real load on them yet. Domain: “AlphaCity”


I strongly recommend the encrypted key method for SSH verses login ID’s for security purposes. No need for private networking. There are backups of the domain built into the StackManager; however, you would need somewhere to copy that backup to (like your desktop or a DropBox. Depending on how much you like to build during Alpha when you are updating the StackManager code often, that would depend upon you. Personally, I keep my assets on my hosting account at GitHub or my laptop as I expect the server to get corrupted as part of alpha. Though this has not happened so far.


Thank you, VR, and Omega. I appreciate your feedback.
I have made progress, and Coal is being awesome! I think he is poised to help out a great many more people with less personal effort on his part via some help docs, so Yay for this!

I will come back with a little cheer once I am online. : - )


Sure - but first the funny story, briefly…

  1. Download CentOS 7 64bit DVD iso.
  2. Burn DVD.
  3. Reboot with DVD in drive.
  4. Wipe out Mint 17, install CentOS 7.
  5. Scratch head, struggle, search google for hints on mysteriously missing networking. Turns out, many old, consumer grade, not-ready-for-enterprise-use, 100mb nic cards are no longer supported.
  6. Find Mint 16 install DVD.
  7. Wipe out CentOS 7, install Mint 16, on the only machine I have with a DVD burner, so that I can…
  8. Download CentOS 6.6 64bit DVD 1&2 isos.
  9. Burn DVDs.
  10. Reboot with DVD in drive.
  11. Wipe out Mint 16, install CentOS 6.6. (NIC works! Yay!)
  12. Follow instructions on this forum page, all the way through, successful the whole way… except the last two (the actual building of highfidelity stuff).
  13. Swear a little.

Now the better story. Grabbed a Droplet from DigitalOcean of CentOS 7. Followed all the steps. No problems. I’m logged into it from Interface on Mac, grabbing stuff from marketplace, stuff is working!

So thanks VERY much for the detailed instructions, and for keeping it up to date.

Next experiment is to tar-gz up the stuff that works, scp to my 6.6, and see if it will run. (I’m certain it won’t.)

When that fails, I’ll look into getting a modern NIC card, or maybe replace the entire motherboard with something more likely to work with CentOS 7.


This is taking me days, and I still have not accomplished it. Just getting through the directions goes something like this:

Line 1: Install the EPEL Repo --> (right…what is an EPEL Repo? off to Google I go…)
Line 1 (more): …easy YUM Install --> (great!..what is a YUM? off to Google I go….)

Line 2 (whew! progress!): Install Development Tools --> right, how and what tools? off I go…

Perhaps you get the point. :- )


For me:

  1. Install Centos7 and open firewall ports.
  2. Go to @coal 's other thread and type 1 command to install script
  3. Type compilehifi to execute script, wait 10-20 minutes and all is done!
  4. Type runhifi and thank @coal for a wonderful script

To upgrade weekly:

  1. Type compilehifi
  2. I like to reboot - shutdown -r now
  3. Login and type runhifi


I wonder if I am missing a thread in which there is information the rest of you have, but I have not yet found. Either this, or there are things that are so basic and self-evident to people who have done this before, but completely arcane for someone who has not, that even if I am looking straight at what I need, I do not recognize it as such. It is like reading a foreign language newspaper with a dictionary and set of Rosetta Stone tapes in hand!

I have these three threads related to this topic:

  1. How to compile HiFi in CentOS 7.x (domain-server and
  2. What should i run the stack manager on?
  3. CentOS 7 -Domain Server Compile and Update Script

These are the only ones, right?


This is the one I used.


@SterlingWright I just tried to reply via Skype but here is the basics of it… Once you get your droplet running and run that script, its automated… It does EVERYTHING for you. In the end it even tells you that the domain is up and running. You do not need to use this setup since all you need is the script that is all setup here:

To make it the most simple, all you have to do is just log in to the terminal and run this:

bash <(curl -Ls


As I shared with the most gracious and lovely Coal in skype, and will share with the rest of you as well, had he not stepped in, eventually I would have compiled that whole thing from scratch. Eventually! (I would have felt like a badass!) .

You should all know that I am a badass-in-waiting…Or, at least a badass-wannabe.
: - )



Sigh… I think I need to just go read everything that coal has put into this forum.