How to setup a cs:go offline server on which friends can join
Solution 1:
You can connect with friends with bots added in all modes except classic competitive simply by going to play with friends and sending them an invite. You can do the same in classic competitive by setting up play with bots game and having your friends connect to your ip address thru the developer console (connect xxx.xx.xxx.xx). You need to port forward to 27015 doing it that way.
Solution 2:
An offline server is exactly what the title implies, an offline server where no one from the outside can join under normal settings.
You can find empty servers with bots in them by using the Community Servers option and searching for servers that way and then inviting your friend to that empty server with bots in it.
If you are on the same internal network as a friend: An "offline with bots" game still creates a local server on port 27015. Get your internal IP and your friend should be able to connect to it. Depending on your firewall settings of course.
Solution 3:
You can create an offline server with your friend by creating a private lobby and calling all the friends that you want. Then u can choose going casual or workshop maps. In this case, nobody can log into "your server"! =D